zoukankan      html  css  js  c++  java
  • CSS 复合选择器

    CSS选择器总结

     CSS复合选择器

    • 复合选择器是由两个或多个基础选择器构成,通过不同的方式组合而成的,目的是为了可以选择更准确更精细的目标元素标签。
    • 复合选择器主要分为四类:交集选择器、并集选择器、后代选择器、子元素选择器

    交集选择器

    • 交集选择器由两个选择器构成,其中第一个为 标签选择器,第二个为 class 类选择器,两个选择器之间不能有 空格,如下图所示:

    •  比如:p.one选择器的意思是:类名为 one 的 段落标签。
    • 用的相对来说比较少,不太建议使用。

    并集选择器

    • 并集选择器(css选择器分组)是各个选择器通过逗号连接而成的,任何形式的选择器(包括标签选择器、class选择器、id选择器等),都可以作为并集选择器的一部分。如果某些选择器定义的样式完全相同,或部分相同,就可以利用并集选择器为它们定义相同的css样式。

    •  并集选择器 和 的意思,即只要通过 逗号 "," 隔开的,所有选择器都会执行后面的样式。通常用于集体选择。

    后代选择器

    • 后代选择器又称为 包含选择器,用来选择 元素 或 元素组的后代,其写法就是把外层标签写在前面,内层标签写在后面,中间用空格分隔。当标签发生嵌套时,内层标签 就成为 外层标签 的 后代。

    •  子孙后代都可以这么选择。或者说,它能选择任何包含在内的标签。

    子元素选择器

    • 子元素选择器只能作为 某元素 子元素 的 元素。其写法就是把父级标签写在前面,子级标签写在后面,中间跟一个 > 进行连接。注意,符号 > 左右两侧各保留一个空格。

    •  注意:这里的子级标签只能是父级标签的 ”亲儿子“,不能是”孙子、重孙“等。

    属性选择器

    • 选取标签中带有某些特殊属性的选择器,称为属性选择器。
    • 获取到 拥有该属性的 元素

    伪元素选择器(CSS3新特性)

    • E::first-letter 选择文本中的第一个单词或字(如中文、日文等);
    • E::first-line 选择文本中的第一行;
    • E::selection 可改变选中文本的样式;
    • E::before
    • E::after

    注意:伪元素选择器是两个 冒号 "::",伪类选择器是一个 冒号 ":"。

     伪元素选择器与伪类选择器的区别:

    • 类选择器、伪类选择器 仅仅是选择对象;
    • 伪元素选择器 本质上是 插入一个元素(标签盒子),不过是一个类似于span、a 等行内元素;

     以上全部内容示例如下:

    <!DOCTYPE html>
    <html lang="en">
         <head>
              <meta charset="UTF-8">
              <title>Document</title>
              <style>
                   /* 标签选择器 */
                   h3 {
                        color: palevioletred;
                   }
    
                   /* id选择器: "#" */
                   #classselect {
                        color: turquoise;
                   }
    
                   /* class 类选择器:"." */
                   .classselect {
                        color: rgb(102, 102, 230);
                   }
    
                   /* 交集选择器: 标签选择器.class选择器 */
                   span.intersection {
                        font-size: 18px;
                        font-weight: 700;
                   }
    
                   /* 并集选择器:"," */
                   h3,#classselect,.classselect {
                        /* 居中 */
                        text-align: center;
                   }
    
                   /* 后代选择器: “空格” */
                   .child h4 {
                        color: rgb(228, 198, 65);
                        font-size: 22px;
                   }
    
                   /* 
                   子元素选择器: ">"
                        子元素选择器 与 后代选择器 的区别:
                             后代选择器 可以选择包含在内的所有子元素,即可以直接跳过儿子去找孙子、重孙等
                   */
                   div > h3 {
                        color: red;
                   }
    
                   /* 属性选择器 */
                   div[title] {
                        background-color: #fff;
                        font-size: 18px;
                   }
                   .attribute[type=text] {
                        display: block;
                        text-align: center;
                   }
                   /* 从左边开始位置匹配 */
                   div[class^=lefthead] {
                        font-size: 14px;
                        background-color: hotpink;
                   }
                   /* 从右边结束位置匹配 */
                   div[class$=rightfooter] {
                        text-align: center;
                        font-size: 14px;
                   }
                   /* 从任意位置匹配 */
                   div[class*=any] {
                        color: limegreen;
                   }
    
                   /* 伪类选择器 */
                   a:hover {
                        color: salmon;
                   }
    
                   /* 伪元素选择器 */
                   .first-letter::first-letter {
                        color: rgb(240, 136, 18);
                        font-size: 50px;
                   }
                   .first-line::first-line {
                        background-color: yellow;
                   }
                   .selection::selection {
                        color: tomato;
                        background-color: white;
                   }
    
                   .before::before {
                        content: "【";
                   }
                   .after::after {
                        content: "】";
                   }
              </style>
         </head>
         <body>
              <h3>标签选择器:h3</h3>
              <div id="idselect">id选择器: #idselect</div>
              <div class="classselect">class选择器:.classselect</div>
              <span class="intersection">交集选择器:span.intersection</span>
              <div class="child">
                   <h3>子元素选择器:div > h3 或 .child > h3 </h3>
                   <div>
                        <h4>后代选择器: .child div h4 或 .child h4</h4>
                   </div>
              </div>
    
              <div>
                   <div class="attribute" title="属性选择器">属性选择器:div[title] 或 .attribute[title]</div>
                   <span class="attribute" type="text">属性选择器: .attribute[type=text] 或 span[type=text]</span>
                   <div class="lefthead-attribute" >从左边开始位置匹配:div[class^=lefthead]</div>
                   <div class="lefthead-attribute" >从左边开始位置匹配:div[class^=lefthead]</div>
                   <div class="attribute-lefthead" >从左边开始位置匹配:div[class^=attribute]</div>
    
                   <div class="rightfooter-attribute" >从右边结束位置匹配:div[class$=attribute]</div>
                   <div class="attribute-rightfooter" >从右边结束位置匹配:div[class$=rightfooter]</div>
                   <div class="attribute-rightfooter" >从右边结束位置匹配:div[class$=rightfooter]</div>
    
                   <div class="attribute-any-position" >从任意位置匹配:div[class*=any]</div>
                   <div class="attribute-position-any" >从任意位置匹配:div[class*=any]</div>
                   <div class="any-attribute-position" >从任意位置匹配:div[class*=any]</div>
    
                   <h3>伪类选择器:一个冒号":"</h3>
                   <a class="hover" href="#">链接伪类选择器: LVHA(:link  :visited  :hover  :active)</a>
                   <div class="first-child">结构伪类选择器:CSS3新特性(:first-child  :last-child  :nth-child(n)  :nth-last-child(n) )</div>
                   <div class="target">目标伪类选择器: (:target)</div>
    
                   <h3>伪元素选择器:两个冒号"::"</h3>
                   <p class="first-letter">伪元素选择器:选中文本中的第一个单词或字符(:first-letter)</p>
                   <div class="first-line">
                        <p>伪元素选择器:选中文本中的第一行(:first-line)</p>
                        <p>伪元素选择器</p>
                   </div>
                   <p class="selection">伪元素选择器:可以改变选中文本的样式;即当鼠标拖动所选文字时,样式会变成自己所设置的</p>
    
                   <div class="before after">
                        before|after:在旧版本中E:before和E:after是伪元素;而在CSS3中两个冒号表示的才是伪元素,所以统一以 E::before和E::after 为准。
                        before和after 是在盒子 div 的内部前面 或 内部后面 插入。
                   </div><br>
    
                   <div>通配符选择器:用" * "表示,匹配页面中的所有标签,会自动清除HTML的默认边距。</div>
              </div>
         </body>
    </html>
    View Code

    页面效果如下:

  • 相关阅读:
    工具推荐-根据IP地址精确定位经纬度(永久免费)
    VMware与Centos系统安装
    Python 之ConfigParser模块
    Python记录日志模块推荐-loguru!
    Excel 两列单元格合并超级链接的VBA 写法
    Shell脚本日志关键字监控+告警
    Python字符串及基本操作(入门必看)!!
    github release 下载文件慢、或者失败的解决方法
    Python字典及基本操作(超级详细)
    为什么使用 Containjs 模块化管理工具效率高?
  • 原文地址:https://www.cnblogs.com/Chestnut-g/p/14273537.html
Copyright © 2011-2022 走看看