2024-07-09 10:17:55
CSS世界中的规则秩序,是由选择器的优先级决定的。让我们深入了解这些不同类型的优先级,以便在设计时游刃有余。
1. 标记选择器,如body, div, p, ul, li,它们是最基础的元素,具有基础的样式覆盖能力。
2. id选择器</,如id="name", id="name_txt",它们是独一无二的标识,具有最高的优先级,可以精准定位单个元素。
3. 类选择器</,如.myclass,和伪类选择器,如:hover,它们可以批量应用样式,但优先级低于id。
4. 后代选择器和子元素选择器,如#head .nav ul li 和 div > p,它们通过层级关系影响样式,但优先级低于类和标记选择器。
当规则冲突时,css优先级的计算机制如下:
每条规则对应一个四元素数组(0, 0, 0, 0),行内样式加1(0, 1, 0, 0),ID加0,1,0,0,类/伪类加0,0,1,0,元素加0,0,0,1。通过将这些权重相加,形成一个"数字优先级",从左到右比较,数值越大,优先级越高。
1. id选择器</(#myid),犹如王冠上的宝石,独一无二,高高在上。
2. 类选择器</(.myclassname),像精英团队的标志,可以批量应用,但稍逊一筹。
3. 标签选择器(div, h1, p),基础元素,覆盖面广,但不如id和类精准。
4. 子选择器(ul < li)和后代选择器(li a),体现层次关系,适用范围较广。
5. 最后是伪类选择器</(如a:hover和li:nth-child),它们是动态的,为交互和动态样式带来可能性,但相比其他类型,优先级最低。