zoukankan      html  css  js  c++  java
  • css选择器的特殊性值

    今天从前端那拿来写好的页面,就开始动工,首先,照旧处理导航栏高亮的问题,

    说到处理高亮的问题,不同的人会有不同的方法,比如:

    //类名为nav的元素下的第n个a元素
    .nav a:nth-of-type(n){
    color:#ff0000;
    }

    或者,为每个导航栏目设置不同的类名,然后在对应页面,为该导航栏设置高亮;

    再或者,导航栏类名都一样的话,用js在每个页面为当前导航栏设置高亮样式或者添加高亮类名(样式提前设定);

    总之,方法是多种多样的。

    就我今天拿到的页面来说,前4个a标签我用了a:nth-of-type(n)进行了处理,由于这位同学对导航栏处理的问题,第5个

    栏目不适合这种方法,于是我就直接为其设置一个单独的类名,并在该栏目页面设置高亮,但是却不奏效。

    第一时间按下F12,审查元素:

    (咳咳,这个文件名用中文大家就别吐槽了)

    上面是全局样式,当然是会放在html文件头部最前面的,后面的样式是我写在栏目当前页的,可以看到,我写的高亮样

    式居然没有奏效,被覆盖了,没有道理啊,应该是高亮样式覆盖之前的样式啊,后来者居上嘛,于是我就这么对它望着,

    1min之后,灵光一闪,选择器权重啊,于是换了种选择器写法(增加权重),于是问题圆满解决。

    其实这得归功于我在很久之前通读过《css权威指南》这本书,我记得里面提到过特殊性值(上文所说的权重)的概念。

    这一概念完美解答了“当为一个元素,设置了多种样式时,哪一种会奏效”的问题。

    其实说到这个问题,大多数人都会回答说外部样式、嵌入样式、内联样式,以及三者的优先级问题。很少会有人提到特殊

    性值,所以这里就体现了书本的重要性。

    下面贴上《css权威指南》第三版的关于这部分的描述(每个版本的面熟可能不尽相同,但是说的都是一个东西)

    我当时看的应该是第四版。

    所以现在你知道了,并不是谁越靠近元素就会使用该样式,最终还是由选择器的特殊性值来决定到底用哪一个样式。

  • 相关阅读:
    verdi issues on license
    geci
    组合数据类型练习
    熟悉常用的Linux操作
    1.大数据概述
    c语言文法分析
    词法分析器#include<stdio.h> #include<string.h> #include<iostream.h> char prog[80],token[8]; char ch; int syn,p,m=0,n,row,sum=0; char *rwtab[6]={"begin","if","then","while","do","end"
    关于编译原理
    可变参数
    函数和指针
  • 原文地址:https://www.cnblogs.com/eco-just/p/9189420.html
Copyright © 2011-2022 走看看