• CSS选择器详解


    目录

    1. ID选择器
    2. 类选择器
    3. 标签选择器
    4. 伪类选择器
    5. 基于关系的选择器
    6. 属性选择器
    7. 伪对象选择器
    1. 定义样式的三种方式
    2. 这三种方式的优先级
    3. 开发者定义的样式详解

    一、CSS选择器?

    最基础的选择器
    选择器 例子 描述
    #id #firstname ID选择器,选取Id=firstname的元素
    .class .myclass 类选择器,选取class=myclass的所有元素
    element p 标签选择器,选取所有<p>元素
    伪类选择器
    选择器 例子 描述
    :link a:link 匹配所有未被点击的链接,通常用于<a>元素。
    :visited a:visited 匹配所有已被访问的链接。
    :hover a:hover

    选择鼠标指针位于其上的链接。

    提示: :hover 选择器器可用于所有元素,不仅是链接。

    :active a:active

    匹配被用户激活的链接--用户按下按键未松开时的状态。

    为了产生预期的效果,以上四个选择器必须得按照先后顺序排列   :link — :visited — :hover — :active

    :first-child p:first-child 选择每个p元素是其父级的第一个子级(也就是说,只有p元素是第一个子元素时,才会应用样式;  而不是选择每个p元素的第一个子元素。)
    :last-child p:last-child  选择每个p元素是其父级的最后一个子级
    :empty p:empty 选择每个没有任何子级的p元素(包括文本节点)
    :enabled input:enabled 选择每一个已启用的输入元素
    :disabled input:disabled 选择每一个禁用的输入元素
    :checked input:checked 选择每个选中的输入元素
    基于关系的选择器
    选择器 例子 描述
    element,element div,p 选择所有<div>元素和<p>元素
    element element div p 选择<div>元素内的所有<p>元素 (所有子孙元素)
    element>element div>p 选择所有父级是 <div> 元素的 <p> 元素
    element+element div+p 选择所有紧接着<div>元素之后的<p>元素
    属性选择器
    选择器 例子 描述
    [attribute] [target] 选择所有带有target属性元素
    [attribute=value] [target=_blank] 选择所有使用target="_blank"的元素
    [attribute~=value] [title~=flower] 选择标题属性包含单词"flower"的所有元素
    [attribute*=value] [title*=flower] 选择标题属性包含字符串"flower"的所有元素
    [attribute^=value] [title^=flower] 选择标题属性以“flower”开头的所有元素
    [attribute$=value] [title$=flower] 选择标题属性以“flower”结尾的所有元素
    伪对象选择器
    选择器 例子 属性
    :after p:after{content:"hello";} 在每个<p>标签内的最后插入内容“hello” ,通常搭配content来使用
    :before p:before{content:"hello";} 在每个<p>标签内的最前插入内容“hello” 
    :first-letter p:first-letter 选择每一个<p>元素的第一个字母
    :first-line p:first-line 选择每一个<P>元素的第一行

    二、CSS层叠

          1、一个元素的样式,可以通过多种方式定义:1)浏览器默认样式   2)用户自定义的样式  3)开发者定义的样式

          2、上述上中方式之间的优先级:开发者定义样式 > 用户自定义样式 > 浏览器默认样式

          3、而开发者定义的样式又分为三种情况:

              1)定义为单独的CSS文件  :开发中多为这种形式,易维护、扩展   

              2)定义在html页面中的<style></style>标签内  : 这种适用于当前页面独立,样式较少的情况

              3)直接写在元素上的style属性内 :建议仅测试适用,可维护行较差

              Q:如果涉及到相同权重值(见下方第四点)的CSS样式时,到底用哪个呢?

              A:一句话总结:“就近原则”,先离的近,用谁。所以三者优先级顺序: 3> 2 >1       

    三、CSS继承

           CSS继承是一种规则,它允许某些样式不仅应用于元素本身,还可以应用于其后代。

          比如:color就可以被继承 。下面这段代码,<p>标签连同子级<span>标签的文字都会变为红色。

    p{color:red;}
    
    <p>三年级时,我还是一个<span>胆小如鼠</span>的小女孩。</p>

         而border就不能够被继承。下面这段代码,只是给p标签设置了边框为1像素、红色、实心边框线,而对于子元素span是没用起到作用的。

    p{border:1px solid red;}
    
    <p>三年级时,我还是一个<span>胆小如鼠</span>的小女孩。</p>

    四、样式优先级机制

          如果一个标签上应用了不同样式代码,就会涉及到一个优先级(权重值)的问题,到底最后哪些效果才能生效?

     各种选择器的权重值
    选择器 权重值
    id选择器 100
    类选择器 10
    伪类选择器 10
    属性选择器 10
    标签选择器 1
    伪对象选择器 1
    继承 0.1
    通配符(*) 0

          

           

     

         如果是多种选择器一起使用,则需要把各个选择器的权重加起来,才表示最终的权值。例如:    

    p{color:red;} /*权值为1*/
    p span{color:green;} /*权值为1+1=2*/
    .warning{color:white;} /*权值为10*/
    p span.warning{color:purple;} /*权值为1+1+10=12*/
    #footer .note p{color:yellow;} /*权值为100+10+1=111*/

     

         

  • 相关阅读:
    C++中整型变量的存储大小和范围
    A1038 Recover the Smallest Number (30 分)
    A1067 Sort with Swap(0, i) (25 分)
    A1037 Magic Coupon (25 分)
    A1033 To Fill or Not to Fill (25 分)
    A1070 Mooncake (25 分)
    js 获取控件
    C#代码对SQL数据库添加表或者视图
    JS 动态操作表格
    jQuery取得下拉框选择的文本与值
  • 原文地址:https://www.cnblogs.com/lanleiming/p/5233335.html
Copyright © 2020-2023  润新知