百分之四十的人都做错的一道 CSS 面试题
时间:2023-03-21 20:39:51
科技观察
一道40%人都答错的CSS面试题是的,今天就来一探究竟。一个爱学习的前端人
正确答案:文字应该是蓝色的。这是一道关于css选择器权重的面试题。今天就来学习如何计算css选择器权重。如果两组选择器针对同一个元素,为同一个属性设置了不同的样式,这个使用的是哪种样式,需要通过选择器权重来决定使用哪种样式?样式继承的具体顺序应该是:selectandset!important>highweight>sameweightandlowposition>frominherited。选择器的优先级可以分为四个部分:千:如果在样式属性中声明,这部分得一分。百位:如果选择器中包含id选择器,则该位得一分。十位:包含类、属性选择器和伪类的选择器得一分。个位:如果选择器包含标签、伪元素选择器,这个地方得一分。例子:#headerp.content.active/*选择器权重的计算过程:千位:0。style中没有定义样式,所以千位为0,百位:1。有一个id选择器。十位:2。有两个类选择器。单位:1。包含一个标签。最终权重值为:0121*/例1:p标签中的文字应该是什么颜色?
爱学习的前端人
正确答案:红色。分析:上面只有p标签选择了对应的p元素,body是p的父元素,属于继承,继承的权重最低,所以文字为红色。例2:a标签文字是继承父级样式还是使用浏览器默认颜色?
Frontend正确答案:蓝色。分析:a标签虽然没有样式,但是浏览器会内置默认颜色。使用调试工具可以看到:根据权重规则计算:a:-webkit-any-link->0011body->0001,所以浏览器会优先使用内置的默认文字颜色。例3:40%的面试题目是错误的。一个爱学习的前端人 正确答案:蓝色。解析:.boxh1#title/*选择器权重计算过程:千位:0。style中没有定义样式,所以千位为0,百位:1。有一个id选择器。十位:1.有1个类别选择器。单位:1。包含一个标签。最终权重值为:0111*/#boxh1.title/*Selector权重计算过程:thousands:0.style中没有定义style,所以千位为0,百位为:1,有一个id选择器。十位:1.有1个类别选择器。单位:1。包含一个标签。最终的权重值为:0111*/上面两个选择器的权重都是0111,当css选择器权重相同时,继承后面的样式。所以h1标签会继承下面的样式为蓝色。以上三个例题都是很典型的例子,可以和例子一一对应。好好理解上面的cssweight介绍,内容比较有说服力。