CSS3
CSS3
⽹页分成三个部分
结果(HTML)
表现(CSS)
⾏为(javascript)
CSS
层叠样式表
⽹页实际上是⼀个多层的结果,通过CSS可以分别为王爷的每⼀层设置样式
最终我们能看到的只是⽹页最上⾯⼀层
总之⼀句好,CSS⽤于来设置⽹页中元素的样式
CSS基础使⽤
使⽤CSS来修改元素的样式
第⼀种样式(内联样式,⾏内样式):
在标签内部通过style属性来设置元素的样式
问题:
使⽤内联样式,样是只能对⼀个标签⽣效
如果虚妄影响到多个元素必须在每⼀个元素中都复制⼀遍
并且当样式发⽣变化时,我们必须要⼀个⼀个的修改,⾮常的不⽅便
-注意:开发时绝对不要使⽤内联样式
<p >少⼩离家⽼⼤回,乡⾳未改鬓⽑哀</p>
第⼆种样式(内部样式表):
将样式编写到head中的style标签中
然后通过CSS的选择器来选中元素并为其设置各种样式
可以同时为多个标签设置样式,并且修改时只需要修改⼀处即可
内部样式表更⽅便对样式进⾏复⽤
第三种⽅式(外部样式表)最佳实践:
可以将CSS样式编写到⼀个外部的CSS⽂件中
然后通过link标签来引⼊外部的CSS⽂件
外部样式表需要通过link标签进⾏引⼊,意味着只要想使⽤这些样式的⽹页都可以对其引⽤使样式可以在不同页⾯之间进⾏复⽤
将样式编写到外部的CSS⽂件中,可以使⽤到浏览器的缓存机制
从⽽加快⽹页的加载速度,提⾼⽤户的体验
<link rel="stylesheet"href="./style.css">
CSS注释
/*
CSS的注释,注释的内容会⾃动被浏览器忽略
*/
CSS选择器
标签选择器
类选择器
id选择器
通配选择器
class 是⼀个标签的属性,他和id类似,不同的是class可以重复使⽤可以通过classs属性来为元素分组
可以同时为⼀个元素指定多个class属性
通配符选择器:
选中页⾯中的所有元素
复合选择器
交集选择器
选中同时复合多个条件的元素
选择器1选择器2选择3选择器n{}
注意:交集选择器中如果有元素选择器,必须使⽤元素选择器开头选择器分组(并集选择器)
同时选择多个选择器对应的元素
选择器1,选择器2,选择器3,选择器n{}
关系选择器
⽗元素
直接包含⼦元素的元素叫做⽗元素
⼦元素
直接被⽗元素包含的元素是⼦元素
祖先元素
直接或间接包含后代元素的元素叫做祖先元素
⼀个元素的⽗元素也是他的祖先元素
后代元素
直接或间接被祖先元素包含的元素叫做后代元素
⼦元素也是后代元素
兄弟元素
拥有相同⽗元素的元素时兄弟元素
⼦元素选择器:
作⽤:选择指定⽗元素的指定⼦元素
语法:⽗元素 > ⼦元素
后代元素选择器
作⽤:选中指定元素内的指定后代元素
语法:祖先 后代
选择下⼀个兄弟
语法:前⼀个 + 下⼀个
选择下边所有的兄弟
语法:兄 ~ 弟
[属性名] 选择含有指定属性的元素
[属性名=属性值] 选择含有指定属性和属性值的元素
[属性名^=属性值] 选择属性值以指定开头的元素
[属性名$=属性值] 选择属性值以指定结尾的元素
[属性名*=属性值] 选择属性值中含有某些元素的元素
伪类选择器
伪类(不存在的类,特殊的类)
伪类⽤来描述⼀个元素的特殊状态
⽐如:第⼀个⼦元素、被点击的元素、⿏标移⼊的元素…
伪类⼀般情况下都是使⽤:开头
:first-child
以上这些伪类都是根据所有的⼦元素进⾏排序
:
first-of-type
:last-of-type
:nth-of-type()
这⼏个伪类的功能和上述的类似,不同点他们是在同类型元素中进⾏排序:first-child
第⼀个⼦元素
last-child
最后⼀个⼦元素
nth-child(n)
选中第n个⼦元素,属性指定
特殊值:n,n的范围0~∞
2n 或 even,表⽰选中偶数位的元素
2n+1 或 odd,表⽰选中奇数位的元素
:not()否定伪类
将符合条件的元素从选择器中去除
超链接的伪类
未访问过的链接 蓝⾊
已访问过的链接
:link
⽤来表⽰没访问过的链接(正常的链接)
:visited
⽤来表⽰已访问过的链接
由于隐私的原因,所以visited这伪类只能修改链接的颜⾊
:
hover
⽤来表⽰⿏标移⼊的状态
:active
⽤来表⽰⿏标点击的状态
伪元素
表⽰页⾯的⼀些特殊的并不真实存在的元素(特殊的位置)
伪元素的使⽤ :: 开头
::first-letter
表⽰第⼀个字母
::first-line
表⽰第⼀⾏
:
:selection
表⽰选中的内容
::before
表⽰元素的开始位置
::after
表⽰元素的最后位置
before和after 必须结合content属性使⽤,before和after经常使⽤
继承
样式的继承
我们为⼀个元素设置的样式同时也会应⽤到他的后代元素上
继承是发⽣在祖先后代之间的
继承的设计是为了⽅便我们的开发
利⽤继承我们可以将⼀些通⽤的样式统⼀设置到共同的祖先元素上,
这样只需要设置⼀次即可让所有的元素都具有该样式
注意:并不是所有的样式都会被继承
⽐如 背景相关,布局相关等的这些样式都不会被继承
选择器的权重
样式冲突:
当我们通过不同的选择器,选中相同的元素,并且为相同的样式设置不同的值时,此时就发⽣了样式的冲突
发⽣样式冲突时,应⽤哪个样式由选择器的权重(优先级)决定
选择器的权重:
内联样式 1,0,0,0
id选择器 0,1,0,0,
类和伪类选择器 0,0,1,0
元素选择器 0,0,0,1
通配选择器 0,0,0,0
继承的样式 没有优先级
borderbox⽐较优先级时,需要将所有的选择器的优先级进⾏相加计算,最后优先级越⾼,则越优先显⽰(分组选择器是单独计算的)选择器的累加不会超过其最⼤的数量级,类选择器再⾼也不会超过id选择器
如果优先级计算后相同,此时则优先使⽤靠下的样式
可以在某⼀个样式的后⾯添加 !important ,则此时该样式会获取到最⾼的优先级,甚⾄超过内联样式
注意:在开发中这个玩意⼉⼀定要慎⽤!
继承没有优先级
像素与百分⽐
长度单位:
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论