zoukankan      html  css  js  c++  java
  • CSS选择器详解

    本文全部基于HTML进行讲解,没有考虑XML,XHTML的情况,请知悉。

    一、元素选择器

    通配选择器

    语法:

    * { sRules }

    说明:

    选定文档所有的元素

    示例:

    * {
      color: red;  
    }
    <div>我是div</div>

    元素选择器

    语法:

    E { sRules }

    说明:

    选定指定的文档元素E

    示例:

    p {
      color
    : red; }
    <p>我是p</p>

    二、类选择器和ID选择器

    类选择器

    语法:

    E.myclass { sRules }

    说明:

    选定class属性包含myclass的文档元素E

    示例:

    .myClass {
      color: red
    }
    <div class="myclass">我是div</div>

    多类选择器

    语法:

    E.myclass.myotherclass { sRules }

    说明:

    选定class属性包含myclass以及myotherclass的文档元素E

    示例:

    .myClass.myotherclass {
      color: red
    }
    <div class="myclass myotherclass">我是div</div>

    ID选择器

    语法:

    E#myid { sRules }

    说明:

    选定id属性值为myid的文档元素E

    示例:

    #myid {
      color: red;
    }
    <div id="myid">我是div</div>

    三、属性选择器

    根据简单属性选择

    语法:

    E[attr] { sRules }

    说明:

    选定具有属性attr的文档元素E

    示例:

    div[id] {
      color: red;
    }
    <div id="myid">我是div</div>

    根据具体属性值选择

    语法:

    E[attr="val"] { sRules }

    说明:

    选定具有属性attr且属性值等于val的文档元素E

    示例:

    div[id="myid"] {
      color: red;
    }

    /* 多个属性-值 */ input[type="text"][class="text1"] {   width: 20px; }
    <div id="myid">我是div</div>
    <input type="text" class="text1" />

    根据部分属性值选择

    语法:

    E[attr~="val"] { sRules }

    说明:

    选定具有属性attr且属性值为一用空格分隔的字词列表,其中一个等于val(包含只有一个值且该值等于val的情况)的文档元素E

    示例:

    div[class~="div1"] {
      color: red;
    }
    <div calss="div1">我是div</div>
    <div class="div1 header">我是div</div>

    语法:

    E[attr^="val"] { sRules }

    说明:

    选定具有属性attr且属性值以val开头的字符串的文档元素E

    示例:

    div[class^="head"] {
      color: red;
    }
    <div calss="headClass">我是div</div>

    语法:

    E[attr$="val"] { sRules }

    说明:

    选定具有属性attr且属性值以val结尾的字符串的文档元素E

    示例:

    div[class$="Class"] {
      color: red;
    }
    <div calss="headClass">我是div</div>

    语法:

    E[attr*="val"] { sRules }

    说明:

    选定具有属性attr且属性值包含val的字符串的文档元素E

    示例:

    div[class*="Div"] {
      color: red;
    }
    <div calss="headDivClass">我是div</div>

    语法:

    E[attr|="val"] { sRules }

    说明:

    选定具有属性attr且属性值以val开头并用连接符"-"分隔的字符串(包含属性值只有val的情况)的文档元素E

    示例:

    div[class|="head"] {
      color: red;
    }
    <div calss="head-class">我是div</div>

    四、关系选择器

    后代选择器

    语法:

    E F { sRules }

    说明:

    选定文档元素E所有的后代元素F,包含所有子孙

    示例:

    /* 选中后代所有的p */
    div p
    {   color: red; }
    <div>
      <p>我是段落1</p>
      <div>
        <p>我是段落2</p>
      </div>
    </div>

    子代选择器

    语法:

    E>F { sRules }

    说明:

    选定文档元素E所有的子代元素F,不包含孙代元素

    示例:

    /* 选中子代的p,但选中不了孙代的p */
    div>p
    {   color: red; }
    <div>
      <p>我是段落1</p>
      <div>
        <p>我是段落2</p>
      </div>
    </div>

    相邻选择器

    语法:

    E+F { sRules }

    说明:

    选定文档元素E之后且同属一个父元素的相邻兄弟元素F

    示例:

    /* 只能选中h1相邻的p */
    h1>p {
      color: red;
    }
    <div>
      <h1>我是h1</h1>
      <p>我是段落1</p>
      <p>我是段落2</p>
    </div>

    兄弟选择器

    语法:

    E~F { sRules }

    说明:

    选定文档元素E之后且同属一个父元素的兄弟元素F

    示例:

    /* 选中h1之后所有的p */
    h1>p {
      color: red;
    }
    <div>
      <h1>我是h1</h1>
      <p>我是段落1</p>
      <p>我是段落2</p>
    </div>

    四、伪类和伪元素选择器

    伪类选择器

    语法:

    a:link { sRules }

    说明:

    设置超链接a未被访问前的样式

    示例:

    a:link {
      color: blue;
    }
    <a href="http://i.cnblogs.com"></a>

    语法:

    a:visited { sRules }

    说明:

    设置超链接a已经被访问后的样式

    示例:

    a:link {
      color: red;
    }
    <a href="http://i.cnblogs.com"></a>

    语法:

    E:focus { sRules }

    说明:

    设置元素E在成为输入焦点(该元素的onfocus事件发生)时的样式

    示例:

    a:focus {
      color: black;
    }
    <a href="http://i.cnblogs.com"></a>

    语法:

    E:hover { sRules }

    说明:

    设置元素E在鼠标悬停时的样式

    示例:

    a:hover {
      color: red;
    }
    <a href="http://i.cnblogs.com"></a>

    语法:

    E:active { sRules }

    说明:

    设置元素E在被用户激活(在鼠标点击与释放之间发生的事件)时的样式

    示例:

    a:active{
      color: green;
    }
    <a href="http://i.cnblogs.com"></a>

    以上五种伪类选择器同时用在a超链接时,各伪类需按特定的顺序书写才能生效,保证各浏览器具有相同的表现。正确的顺序为:link - visited - focus - hover - active

    语法:

    E:lang(lang) { sRules }

    说明:

    选定使用特殊语言的元素E

    示例:

    p:lang(zh-cn) {
        color: #f00;
    }
    p:lang(en) {
        color: #090;
    }
    <p lang="zh-cn">我是中文</p>
    <p lang="en">i am English</p>

     更多关于CSS选择器可看:https://developer.mozilla.org/zh-CN/docs/Web/CSS/Type_selectors

  • 相关阅读:
    对于Dubbo一些面试题自己的答案
    序列化和反序列化的简单理解
    学习Spring-Session+Redis实现session共享
    Java中的String,StringBuilder,StringBuffer三者的区别
    个人对数据结构的理解和总结
    LeetCode 101. Symmetric Tree
    LeetCode 100. Same Tree
    LeetCode 88. Merge Sorted Array
    LeetCode 83. Remove Duplicates from Sorted List
    LeetCode 70. Climbing Stairs
  • 原文地址:https://www.cnblogs.com/laixiangran/p/4966767.html
Copyright © 2011-2022 走看看