CSS基础

CSS是啥?

CSS:层叠样式表(cascading style sheets),一种用来为结构化文档(基本就是HTML)添加样式的语言。

举例来说,要选择一个HTML页面里所有的段落元素,然后将其中的文本改为红色,可以这样写CSS

p {

    color:red;

}

CSS可以给文档添加自定义样式 比如:改变标题和链接的颜色以及大小。

也可以修改布局 比如:将一个单列布局变成双列,包含主要内容区域和存放相关信息的侧边栏区域。

另外还可以用来做一些特效和动画

CSS可以将样式与文章结构分离

CSS基础规则

选择器:选择一个或多个需要添加样式的元素,多个元素之间用,隔开

声明:一个单独的规则,如color:red;用来指定添加样式元素的属性。

属性:指定要改变的元素样式

属性的值:从指定属性的众多外观中选择一个值

规则集包含在{}中

每个声明里要用:将属性与属性的值分隔开

每个规则集里要用;将各个声明分隔开

选择器

选择器有许多不同的类型。上面只介绍了元素选择器,用来选择HTML文档中给定的元素。

元素选择器

也称作标签或者类型选择器。

选择的内容:所有指定类型的HTML元素。

p 选择的就是 <p>

p {

    ...

}

ID选择器

具有特定id的元素

#my-id 选择的就是 元素的属性中id="my-id"的元素 例如 <div id="my-id"></div>

#myid {

    ...

}

类选择器

具有特定类的元素

class="my-class"

.my-class{

    ...

}

属性选择器

拥有特定属性的元素

img[src] {

    ...

}

伪类选择器

特定状态下的特定元素(比如:鼠标指针悬停)

a:hover

a:hover{

    ...

}

层叠与继承

层叠

css代表层叠样式表(cascading style sheets),理解第一个词cascading很重要

css

h1{

    color:red;

}

h1{

    color:blue;

}

html

<h1>This is my heading.</h1>

显示的效果

image-20210818091128899

优先级

浏览器中有选择器的优先级决定规则,基本就是选择器越具体越优先

内联样式 > ID选择器 > 类选择器 > 元素选择器

继承

一些设置在父元素上的属性会被子元素继承,有些不能

css

p {

    color: blue;

}

html

<p>text in p <span>text in span</span></p>

结果

image-20210818091733633

CSS怎么学

Learn to Code - for Free | Codecademy

Learn the Latest Tech Skills; Advance Your Career | Udacity

CSS 教程 (w3school.com.cn)

CSS 教程 | 菜鸟教程 (runoob.com)

免费学习编程 - Python、JavaScript、Java、Git 等 (freecodecamp.org)

前面的挑一个学一遍就行,下面的会陪你一辈子

持续学习查阅资料

CSS - 学习 Web 开发 | MDN (mozilla.org)

这是一个CSS文档库,基本会是程序员最常来的地方

CSS Almanac | CSS-Tricks

另一个css文档库,用有别于mdn的形式组织css知识,还有非常活跃的css社区,里面有各种奇技淫巧。作为MDN的补充非常合适。

image-20210818093419631

CSS常用规则

布局

盒模型

在css中,所有元素都被一个个的盒子包围着,理解这些盒子的基本原理,是我们使用css实现准确布局、处理元素排列的关键。

盒子分为块级盒子和内联盒子

image-20210818095257498

css中组成一个块级盒子需要:

content box :这个区域用来显示内容,大小可以通过设置width和height。

padding box:包含在内容区域外部的空白区域;大小可以通过padding相关属性设置。

Border box:边框盒包裹内容与内边距。大小通过border相关属性设置

Margin box:这是最外面的区域,是盒子和其他元素之间的空白间距。大小可以通过margin相关属性设置。会与其他元素的margin重叠但不叠加

块级盒子block

盒子会在内联的方向上扩展并占据父容器在该方向上的所有可用空间,在绝大多数情况下,盒子会和父容器一样宽

每个盒子都会换行

width和height属性可以发挥作用

内边距padding,外边距margin,和边框border可以将其他元素推开

除非特殊指定,诸如标题和段落等默认情况下都是块级盒子。

display:block;

通过box-sizing属性定义盒子宽高作用的对象

box-sizing默认是content-box 这时候width和height作用在content

当设置box-sizing为border-box时,这时候width与height作用在border

box-sizing=content-box(默认) box-sizing=border-box

如果想要所有元素都使用border-box,设置所有元素继承该属性

html {

    box-sizing: border-box;

}

*,

*::before,

*::after {

    box-sizing: inherit;

}

内联盒子inline

盒子不会产生换行

width与height属性将不起作用

垂直方向的内边距、外边距、以及边框会被应用但是不会把其他处于inline状态的盒子推开

水平方向的内边距、外边距、以及边框会被应用且会把其他处于inline状态的盒子推开

诸如a标签、span标签等默认都是inline

display:inline;

内联块inline-block

内联块是一个不会切换到新行但可以设置width与height属性的

display:inline-block;

文档流

盒模型解释了一个元素块的尺寸;那元素块在整篇文档中的位置是如何确定的呢?

正常文档流

默认的,就是按照盒模型的规则进行排布。

块级元素,按照基于父元素的书写顺序的块流动方向放置

每个块级元素会在上一个元素下面另起一行,他们会被设置好的margin分隔。块级元素是垂直布置的。

弹性布局

弹性盒子在布局中使用最广泛的方式

弹性盒子是一种用于按行或者按列布局元素的一维布局方法。元素可以膨胀以填充额外的空间,收缩以适应更小的空间

image-20210818112600039

在容器上加display:flex属性。默认就可以得到一个横排的布局。

就盒模型而言,此时容器类似于块级元素(display:block),但宽度默认 由子元素 决定。

子元素类似于inline-block元素,可以设宽高,且不换行。其原本的display属性基本被无视了,这是一种隐含的盒模型状态。

image-20210818113042883

弹性模型非常灵活。可以利用flex-direction属性控制子元素的排布顺序

image-20210818113405177

flex容器类似块级盒子,可以设置比子元素所需更大的宽度。

justify-content属性可以确定此时子元素如何分配空间

align-items是子元素在主轴方向的对齐方式

image-20210818114435185

image-20210818114418432

定位

position用来定位盒子在整个页面中的位置

静态定位

position:static默认就是正常文档流中的定位

相对定位

position:relative相对定位在文档流中仍然占据位置,但是可以使用top,left,bottom,right属性进行位置的偏移操作。

绝对定位

position:absolute绝对定位完全脱离文档流。绝对定位的盒子的定位,大小,你完全可以指定。

绝对定位的top,left,已经不是相对于原位置了,而是相对于一个非static定位的父元素容器。

固定定位

position:fixed固定定位,相对于浏览器窗口进行top,left的偏移

z-index

因为非static值的position属性让元素之间可以互相覆盖

CSS提供z-index属性来控制哪个元素覆盖在最上层

默认文档中下面的元素在上层

装饰

文字

文字的字体font-family

文字的颜色color

文字的粗细font-weight

文字的样式font-style

文字的装饰text-decoration

文字的对齐方式text-align

文字的大小font-size

image-20210818130058807

背景

background - CSS(层叠样式表) | MDN (mozilla.org)

背景颜色background-color

背景background-image

背景渐变background-image

background-image: linear-gradient(red, orange);

详细的使用可以参照CSS Gradients | CSS-Tricks

边框

border | CSS-Tricks

border - CSS(层叠样式表) | MDN (mozilla.org)

image-20210818131030839

阴影

box-shadow | CSS-Tricks

box-shadow - CSS(层叠样式表) | MDN (mozilla.org)

image-20210818131205190

text-shadow - CSS(层叠样式表) | MDN (mozilla.org)

image-20210818131637359

交互

鼠标样式cursor

cursor - CSS(层叠样式表) | MDN (mozilla.org)

image-20210818131804759

动画transition

transition - CSS(层叠样式表) | MDN (mozilla.org)

动画animation

animation - CSS(层叠样式表) | MDN (mozilla.org)

CSS精益求精

css调试

利用browser的inspect进行元素审查,查看元素的样式

image-20210818132959819

css扩展

css预处理器

less

提供了变量支持

提供类似函数的功能 mixin

image-20210818133746109

sass

stylus

css革新

未来可能就不需要写css了,之间将css写在js里 css-in-js

代表的有styled-components

image-20210818134001598

tailwindcss

可以收拢css的选择

我们可以不单独的写css文件,只需要指定相应的class就行

image-20210818134254857

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论

热门产品

php编程基础教程.pptx|php编程培训,php,编程,基础,教程,pptx
php编程基础教程.pptx

历史上的今天:04月19日

热门专题

大理科技管理学校|大理科技管理学校,大理科技,大理科技中等职业技术学校,大理科技管理中等职业技术学校,大理科技学校
大理科技管理学校
综合高中|云南综合高中,昆明综合高中,综合高中能考本一吗,综合高中和普通高中的区别,综合高中是什么意思,综合高中能参加全国统一高考吗,综合高中可以考哪些大学,综合高中的学籍是什么
综合高中
云南开放大学|云南开放大学报名,云南开放大学报考,云南开放大学,什么是云南开放大学,云南开放大学学历,云南开放大学学费,云南开放大学报名条件,云南开放大学报名时间,云南开放大学学历,云南开放大学专业
云南开放大学
金诺幼儿园(春城路金诺幼儿园)|昆明官渡区幼儿园,幼儿园报名,官渡区幼儿园,春城路幼儿园,幼儿园招生,学前班,昆明幼儿园,金诺幼儿园,环城南路幼儿园,石井路幼儿园
金诺幼儿园(春城路金诺幼儿园)
易捷尔单招|易捷尔单招,易捷尔单招培训,易捷尔单招报名,易捷尔单招考试,易捷尔单招培训学校,易捷尔单招分数
易捷尔单招
安徽中源管业|安徽中源管业,安徽中源管业mpp电力管,安徽中源管业cpvc电力管,安徽中源管业pe穿线管,安徽中源管业电力管,安徽中源管业排水管,安徽中源管业通信管,安徽中源管业管材
安徽中源管业
云南巨榕教育投资集团有限公司|云南巨榕教育投资集团有限公司,巨榕教育集团,巨榕教育
云南巨榕教育投资集团有限公司
云南综合高中|云南综合高中
云南综合高中

微信小程序

微信扫一扫体验

立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部