CSS选择器的理解

简介: CSS选择器的理解

       css是“层叠样式表”,是一种标准的样式表语言用于描述网页的表现形式(例如网页元素的位置、大小、颜色等)。


       CSS 的主要作用是定义网页的样式(即美化网页),对网页中元素的位置、字体、颜色、背景等属性进行精确控制。不仅可以静态地修饰网页,还可以配合 JavaScript 动态地修改网页中元素的样式。


一、常用选择器


       常用选择器是最易见到的选择器。


       1)元素选择器


       作用 : 选中对应标签中的内容;例:p{} , div{} , span{}


       2)类选择器


       语法 : .class属性值{}


       作用 : 选中对应class属性值的元素;例子:.A{}


       3)id选择器        


       语法 : #id属性值{}


       作用 : 选中对应id属性值的元素;例子:#A{}


       4)通配符选择器


       语法 : *{}


       作用 : 让页面中所有的标签执行该样式,通常用来清除间距;


二、群组选择器

       是同时对几个选择器进行相同的操作。


       语法 : 选择器1,选择器2,选择器3...{}


       作用 : 同时选中对应选择器的元素;例子:div,p,h3,.li2{ font-size: 30px; }


三、关系选择器


       是能够根据其它元素的关系选择适合的元素选择器。


       1)后代选择器


       后代选择器也叫包含选择器,祖先元素直接或间接的包含后代元素。

<style>
  /* 后代选择器(包含选择器),选择到的是box下面的所有后代p */
     .box p{
      width: 200px;
      height: 200px;
      background-color: yellow;
    } 
</style>
  <div class="box">
    <p>0000</p>
    <div>
      <p>11111</p>
      <p>22222</p>
    </div>
    <div class="box2">
      <p>333</p>
    </div>
    <p>444</p>
  </div>

      2)子代选择器

       父元素直接包含子元素,子元素直接被父元素包含。

<style>
   /*子选择器选中的是.box下所有的儿子p
   .box>p{
      width: 200px;
      height: 200px;
      background-color: yellow;
    } 
</style>
  <div class="box">
    <p>0000</p>
    <div>
      <p>11111</p>
      <p>22222</p>
    </div>
    <div class="box2">
      <p>333</p>
    </div>
    <p>444</p>
  </div>


     3)相邻兄弟选择器

       是指在另一个元素之后可以选择的元素,两者具有相同的父元素。

<style> 
   /* 相邻兄弟,会选择到box后面紧挨着的p,那么就是内容为111的p标签 */
    .box+p{
      width: 200px;
      height: 200px;
      background-color: yellow;
    } 
</style>
 <p>000</p>
  <div class="box">盒子1</div>
  <p>111</p>
  <p>222</p>
  <p>333</p>
  <div>
    <p>44444</p>
  </div>
  <p>5555</p>


       4)通用兄弟选择器

       给指定选择器后面的所有选择器选中的所有标签设置属性。

<style>
   /*通用兄弟选择器,会选择到.box后面所有的兄弟p,那么就是除了内容为'44444'以外的所有p*/
   .box~p{
      width: 200px;
      height: 200px;
      background-color: yellow;
    }
</style>
  <p>000</p>
  <div class="box">盒子1</div>
  <p>111</p>
  <p>222</p>
  <p>333</p>
  <div>
    <p>44444</p>
  </div>
  <p>5555</p>


四、属性选择器

       是通过元素的属性及属性值来选择元素的。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>属性选择器</title>
    <style>
        /* 第一种用法:选择含有指定属性的元素。
                语法:[属性名]{} */
        /*选择属性名title,设置字体颜色红色  */
        [title]{
            color:red;
        }
    </style>
</head>
<body>
    <h1 title="a">《出塞》</h1>
    <h2 title="ab">唐·王昌龄</h2>
    <p title="abc">秦时明月汉时关,</p>
    <p title="abab">万里长征人未还。</p>
    <p title="c">但使龙城飞将在,</p>
    <p>不教胡马度阴山。</p>
</body>
</html>

       其他用法:

            <a href="http://www.baidu.com" target="_blank" class=" links item first" id="first" title="link">1</a>
      <a href="" class="links active item" title="test website" target="_blank" lang="zh">2</a>
      <a href="sites/file/test.html" class="links item" title="link-1 aa" lang="zh-cn">3</a>
      <a href="sites/file/test.png" class="links item" target="_balnk" lang="zh-tw">4</a>
      <a href="sites/file/image.jpg" class="links item" title="link-23 aa">5</a>
      <a href="mailto:baidu@hotmail" class="links item" title="website link" lang="zh">6</a>
      <a href="/a.pdf" class="links item" title="open the website" lang="cn">7</a>
      <a href="/abc.pdf" class="linksitem" title="close the website" lang="en-zh">8</a>
      <a href="abcdef.doc" class="links item" title="http://www.sina.com">9</a>
      <a href="abd.doc" class="linksitem last" id="last">10</a>
      <style>
            /* 属性选择器的权重是0010   */
      /* 写法1 某某[属性] 选择到a标签且有title属性的变*/
      /* a[title]{
        background: yellow;
      } */
      /* a[lang][target]{
        background: yellow;
      } */
      /*重点: 写法2: 某某[属性=属性值] 选择到有某某标签有指定属性且属性值必须一摸一样的也有的多一个空格都不行 */
      /* a[lang="zh"]{
        background: yellow;
      } */
      /* a[title="this is a link"]{
        background: yellow;
      } */
      /* class名字是item的,且有属性lang且属性值必须一模一样是zh-cn的 */
      /* .item[lang="zh-cn"]{
        background: yellow;
      } */
      /* id是last且有title属性且有class属性,属性值只能是links的变 */
      /* #last[title][class="links"]{
        background: yellow;
      } */
      /* 写法3: 某某[属性^=属性值] */
      /* a标签有class属性且属性值是li开头的 */
      /* a[class^=" li"]{
        background-color: yellow;
      } */
      /* a[title^="this"][lang]{
        background-color: yellow;
      } */
      /* 写法4 某某[属性$=属性值] */
      /* a标签有class属性且属性值结尾是t的变 */
      /* a[class$="t"]{
        background-color: yellow;
      }  */
      /* a[href$=".pdf"]{
        background-color: yellow;
      }
      a[href$=".doc"]{
        background-color: red;
      }
      a[href$=".png"]{
        background-color: green;
      } */
      /* 写法5 某某[属性*=属性值] */
      /* 选择到a标签且有href属性且只要有字母b就可以 */
      /* a[href*="b"]{
        background-color: green;
      } */
      /* 写法6 某某[属性~=属性值] */
      /* 选择到的是a标签且有class属性,且属性值有完整的itme词的变 */
      /* a[class~="item"]{
        background-color: green;
      } */
      /* 写法7 某某[属性|=属性值] */
      /* 这个是选择到有a标签,且有属性title,且属性值只有1个是link的或者属性值有多个但是得是link-开头的变 */
      a[title|="link"]{
        background-color: green;
      }
       </style>


五、伪类选择器


       是选择器的一种,它用于选择处于特定状态的元素。


       1)常用的伪类选择器


       :first-child()   第一个子元素


       :last-child()    最后一个子元素


       :nth-child()   选中第n个元素


       2)否定伪类


       :not()  将符号条件的元素去除


       3)元素的伪类


       :link        表示未访问过的a标签

       :visited    表示访问过的a标签

       :hover        鼠标移入后元素的状态

       :active        鼠标点击后,元素的状态


六、伪元素选择器


       是用于向某些元素设置特殊效果。


       常见的几个伪元素:


               ::first-letter    表示第一个字母


               ::first-line       表示第一行


               ::selection     表示选中的元素


               ::before         元素开始的位置前


               ::after            元素结束的位置后


相关文章
|
3月前
|
前端开发
CSS:高级选择器
CSS:高级选择器
52 1
|
3月前
|
前端开发 JavaScript
CSS:基础选择器
CSS:基础选择器
53 1
|
24天前
|
存储 移动开发 前端开发
高效的 HTML 与 CSS 编写技巧,涵盖语义化标签、文档结构优化、CSS 预处理、模块化设计、选择器优化、CSS 变量、媒体查询等内容
本文深入探讨了高效的 HTML 与 CSS 编写技巧,涵盖语义化标签、文档结构优化、CSS 预处理、模块化设计、选择器优化、CSS 变量、媒体查询等内容,旨在提升开发效率、网站性能和用户体验。
36 5
|
1月前
|
前端开发 JavaScript UED
深入理解与应用 CSS 伪类选择器
【10月更文挑战第23天】通过以上对 CSS 伪类选择器的深入探讨,我们可以更好地理解和应用它们,为网页设计和开发带来更丰富、更灵活的样式效果。同时,要注意在实际应用中根据具体情况合理选择和使用伪类选择器,以达到最佳的设计效果和用户体验。
48 2
|
3月前
|
前端开发 JavaScript 容器
谁动了我的选择器?深入理解CSS选择器优先级
该文章详细解释了CSS选择器的工作原理,包括不同种类选择器的权重计算规则,并通过实例说明了如何解决样式冲突问题,确保所需的样式能够正确应用到目标元素上。
|
3月前
|
前端开发
前端基础(四)_CSS层叠样式表_什么是css_css样式的引入方式_样式表的优先级_样式选择器
本文详细介绍了CSS(层叠样式表)的基本概念、语法规则、引入方式、样式表的优先级和样式选择器。文章解释了CSS的作用,展示了如何在HTML中通过行内样式、内部样式和外部样式引入CSS,讨论了不同CSS选择器的优先级和如何确定最终的样式应用。此外,还强调了使用`!important`规则时的优先级高于行内样式。
107 1
|
2月前
|
前端开发
CSS常见的选择器
CSS常见的选择器
25 0
|
3月前
|
前端开发 JavaScript
【CSS】选择器
【CSS】选择器
|
4月前
|
前端开发
CSS3选择器
【8月更文挑战第23天】CSS3选择器。
35 1
|
4月前
|
前端开发
CSS中的层级选择器&伪类选择器和伪元素选择器
CSS中的层级选择器&伪类选择器和伪元素选择器