css核心基础的总结
Mar 04, 2017 am 10:17 AM今日这篇是整合前面的css补充知识的。
我觉得前面的关于css的知识补充进去有点乱,今日整理整理一下。
层叠样式表
层叠是什么意思?为什么这个词如此重要,以至于要出现在它的名称里。
层叠可以简单地理解为冲突的解决方案。
什么是冲突?
就是同个元素在使用不同的选择器选择中后添加相同的样式。
优先级规则可以表述为
行内样式>ID样式>类别样式>标记样式
在复杂的页面中,某一个元素有可能会从很多地方获取样式,例如一个网站的某一
级标题整体设置为使用绿色,而对某个特殊栏目需要使用蓝色,这样在栏目中就需
要覆盖通用的样式设置。在很简单的页面中,这样的特殊需求实现起来不会很难,
但是如果网站的结构很复杂,就完全有可能代码变得非常混乱,可能出现无法找到
某个元素的样式来自于哪条规则的情况。因此,必须要充分理解css中“层叠”的原理。
计算冲突样式的优先级是一个比较复杂的过程,并不仅仅是上面这个简单的优先级规则
可以完全描述的。但是读者可以把一个大的原则,就是“越特殊的样式,优先级越高”。
而这个怎么样才是特殊且越特殊怎么定位,请接着看以下的内容。
特殊性:
每个选择器都有特殊性,而如果一个元素有两个或多个冲突的属性声明,特殊性高的胜出。
选择器的特殊性由选择器本身的组件确定。特殊性值表述为4个部分,如:0,0,0,0.
一个选择器的具体特殊性如下确定:
对于选择器中给定的各个ID属性值,则在第二个部分加一:0,1,0,0。
对于选择器中给定的各个类属性值、属性选择或伪类,则在第三个部分加一:0,0,1,0。
对于选择器中给定的各个元素和伪元素,则在第四个部分加一:0,0,0,1。
结合符和通配选择器对特殊性没有任何贡献。
但通配选择器特殊性为零 : 即0,0,0,0。
结合符连零都没有。
例子:
h1{color:red;} 为0,0,0,1
p em{color:purple} 为0,0,0,2
.grape{color:purple} 为0,0,1,0
p.b e.a{color:red; } 0,0,2,2
#aa{color:red;} 0,1,0,0
p#aa *[href]{color:red;} 0,1,1,1
而第一个0是为行内样式准备的,因为越前面,代表优先级越高,假如非零数字位置一样,那么先比较前面的数字的大小,
然后再往下比较,直到数字不相对,取数字大那个的优先级高。
所以才有上面的那个大致优先级规则:
行内样式>ID样式>类别样式>标记样式
它们刚刚好可以作为每个部分的代表,也是四个,对号入座。
重要声明 !important ,就是把你所需要的声明标出来,它的优先级最高,不过它要放在声明的值的最后。
继承:
继承的特殊性连零都没有,就是没有特殊性;
这个0特殊性有零与无特殊性有很大的区别,就是0特殊性的选择器可以为后代加样式,
而继承虽然也有给后代加样式,但有限制的,只有有继承能力的才能加到后代元素中,如color等,而margin、padding和border这些属性都不会加到后代里。
相同权重的,按顺序比较,顺序越下他的优先级最高。
较高特殊性强于较低特殊性
所以伪类声明顺序:link-visited-hover-active
LVHA(简写)
当:visited在他们之后时,由于权重一样,所以会看他们的顺序,而:visited在他们之后会胜出。
当不是写统一属性就不会出现这种问题。所以写同一种属性时要注意 !!!!
以上是css的核心基础。
扩充这篇知识之外:
包含块:
包含块的宽就是所包含的元素的父级的宽度,而父级的宽度就是包含在里面的各个元素的
margin-left + border-left + padding-left + width + padding-right + border-right + margin-right=包含块水平宽
width、margin-left、margin-right都可以设置auto;
而margin-left和margin-right同时设置auto,会在居中,但这是有条件的:
1、这个元素必须是块级元素并且没有脱离文档流
2、这个元素有设置宽度
margin-top、margin-bottom设置auto是不会垂直居中,设置成auto,它们只会等于零。
水平总长度的七大属性,这七个属性就是上面计算公式的属性,他们的总和不能大于水平总长度,而margin能为负值,在计算上也不违反这个规则。
注意:只有margin能为负值。
至于margin为负值时什么样的,自己去体验,这个属性看起来挺犯规的。
以上这篇css核心基础总结篇(推荐)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持PHP中文网。
更多css核心基础的总结相关文章请关注PHP中文网!

Artikel Panas

Alat panas Tag

Artikel Panas

Tag artikel panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Apakah maksud pemegang tempat dalam vue

Bagaimana untuk menulis ruang dalam vue

Bagaimana untuk mendapatkan dom dalam vue

Bagaimana untuk memperkenalkan imej ke dalam vue

Dalam bahasa apakah pemalam penyemak imbas ditulis?
