CSS
选择符:id
选择器(#myid
)、类选择器(.myclassname
)、标签选择器(div, h1, p
)、相邻选择器(h1 + p
)、子选择器(ul > li
)、后代选择器(li a
)、通配符选择器(*
)、属性选择器(a[rel="external"
])、伪类选择器(a:hover, li:nth-child
)…
这个问题应该来说是两个问题,分别是选择器和属性的问题,或许可能是考核一个人对 CSS
选择器的了解程序以及对 CSS
属性的掌握程度吧。对于这个问题,个人觉得并不会要求把所有的都回答出来,要真都回答出来了,那就可能是背课文了。
这是早之前我整理的一份有关选择符的图,大家可以感受一下。
- 那么对于哪些属性可以继承这个问题,这又是一个很大的话题了,可能需要对
CSS
的所有属性都进行一次归整才会有一个相对比较完整的结果。这里我就提一个在原文答案中提到的可继承属性中的 font-size 这个属性。 font-size
的确是可继承的,但并不是所有的HTML
元素都会在body
定义了font-size
后,把这个文字大小作用在自身标签上,比如h1、h2
等一系列标题元素的标签,还有input
以及button
之类的控件元素。h1
系列的标题元素标签在浏览器默认样式中是使用了em
作为单位的,会根据父级的font-size
而改变(讲真,这到底算不算继承呢,?)input
系列的控件元素,是直接有浏览器默认文字大小,并且是px
作为单位的(这个又是因为已经被定义过了属性,但实际上应该算是继承了吧,只是权重值不够高,无法覆盖了body
的font-size
)
在这个问题中,提到了一个优先级:
优先级(就近原则):
!important > [ id > class > tag ]
- 不知道是不是跟下一个问题搞混了,但是这里应该是少了一个 style 属性吧。
!important > style 属性 > id > class > tag
并且我没看懂为什么原文的答案这里有一个中括号,是想说代表这个是可选的呢,还是怎么样呢。