美文网首页
初识CSS—选择器

初识CSS—选择器

作者: HDhandi | 来源:发表于2018-06-03 20:46 被阅读0次

1. class与id的使用场景

  • 一个页面中可以有多个同样的class,可以用于不同标签但是样式相同的元素上。
  • 一个页面中只允许有一个id,id具有唯一性,多用于标记页面分级的块级标签上。

2.css选择器常见的有几种

基础选择器
  • 通用选择器,选择页面上的所有元素
  • (# id id选择器,选择对应id的元素)
  • .class class选择器,选择对应class的一个或多个元素
  • element 标签选择器,选择对应标签名的一个或多个元素
组合选择器
  • E,F,... 多元素选择器,用逗号隔开的表示选择多个元素,E,F或更多都是并列关系,他们同时被选取

  • E F 后代选择器,用空格隔开的表示选取E的后代中的F元素

  • E>F 子元素选择器,表示选取E的直接后代中所有F元素,与上一条的区别在于是不是子元素。

  • eg:div>p 此例中只会选择class为p1的p元素,p2不会被选取

    <div>
        <p class="p1"></p>
        <div>
          <p class="p2"></p>   
        </div>
    </div>
    
  • E+F 直接相邻选择器,表示选取E元素之后相邻的同级F元素

  • E~F 普通相邻选择器,表示选取E元素后面的同级F元素,不论相邻与否。

属性选择器
  • E[attr] 选取具有该属性的元素。eg.p[name] 选取所有有name属性的p元素。
  • E[attr=value] 选取所有attr属性的属性值为value的元素 eg.p[name="p1"] * 会选取所有name属性为 p1 的p元素

4.伪类选择器

  • E:first-child 选取作为父元素第一个子元素的E元素(实际形式是F E:first-child 区别于 E>:first-child)
  • E:last-child 选取作为父元素最后一个个子元素的E元素
  • E:nth-child() 选取作为父元素第n个子元素的E元素,n从1开始取,n为1的时候等价于first-child 选择器
  • E:hover/link/active/visited 选取E元素的某一状态,给对应状态添加样式
伪元素选择器
  • E:first-letter 选取E元素的第一个字母。eg.

     p:first-letter{color:red}  //n的颜色是红色
    <p>nihao</p>
    
  • E:before/after E元素的前面或后面的元素,一般用于在E元素的前面或后面插入元素,可用来清除浮动,或添加元素。

3. 选择器的优先级,复杂场景如何计算优先级

它们之间的顺序排列如下:

  • @import > 内联样式 > id选择器 > 类选择器、伪类选择器、属性选择器 > 标签选择器、伪元素选择器

  • 在复杂的场景(即在应用了各种的css选择器的组合两条或更多的css规则冲突时),会先比较优先级较高的选择器个数,如果还相同则继续向下,比较优先级较低的选择器的个数,以此类推。

4. a:link, a:hover, a:active, a:visited 的顺序

他们的顺序是 a:link, a:visited,a:hover,a:active(鼠标按下去时的状态)
至于为什么这么拍,首先,他们都是伪类选择器,相同的选择器优先级别当然相同,所以自然而然会排在后面的覆盖前面的样式。a:hover如果在a:visited后面的话,那么当该链接访问过后,就会一直保持访问后的样式,鼠标滑上去即hover样式怎么也不会生效,因为被覆盖了。至于a:active,放在前面的话那么样式不会生效,active生效的场景,hover也会生效,hover就会覆盖active。

5. 常见选择器实例
  header  //选择id为header的元素
  .header  //选择class为header的所有元素
  .header .logo //选择class为header的所有元素后代中class为logo的所有元素
  .header.mobile // 选择class为header和mobile的所有元素 eg. <p 
   class="header mobile"></p>
  .header p,.header h3 //选取class为header的所有元素的后代中 p 元素和 h3 元素
  #header .nav>li //id为header元素中后代中class为nav的元素的所有 li 子元素
  #header a:hover  //id为header元素中的所有a标签的hover状态
  #header .logo~p //id为header的元素后代中class为logo的元素的所有同级的p元素
  #header input[type="text"] //id为header的元素后代中有属性type且其值为text的所有input元素
6.伪类选择器
  • E:first-child 选取作为父元素第一个子元素的E元素
  • E:last-child 选取作为父元素最后一个个子元素的E元素
  • E:nth-child() 选取作为父元素第n个子元素的E元素,n从1开始取,n为1的时候等价于first-child 选择器
  • E:hover/link/active/visited 选取E元素的某一状态,给对应状态添加样式
  • E:enabled 选取表单中可用的元素
  • E:disabled 选取表单中禁用的元素
7. div:first-child、div:first-of-type、div :first-child和div :first-of-type的作用和区别
  • div:first-child 选取作为父元素第一个子元素的div元素

  • div:first-of-type 选取父元素中第一个出现的div元素(后面的div就不选取了)

  • div :first-child 选取所有div元素中第一个子元素

  • div :first-of-type 选取所有div元素中第一个出现的各类元素 eg.

    <div>
      <h3></h3>  //选中
      <p></p>     //选中
      <div></div>  //选中
      <div></div>
      <p></p>
      <p></p>
    </div>
    div :first-of-type //选取的如标示
    
8. 代码实践
  <style>
  .item1:first-child{
    color: red;
  }
  .item1:first-of-type{
    background: blue;
  }
  </style>
   <div class="ct">
     <p class="item1">aa</p>
     <h3 class="item1">bb</h3>
     <h3 class="item1">ccc</h3>
   </div>

.item1:first-child 选取作为父元素第一个子元素的class为item1的元素,自然aa的颜色要变红
.item1:first-of-type 选取作为父元素第一个出现的各类class为item1的元素,aa所在的p元素第一次出现,bb所在的h3元素第一次出现,都被选中,cc所在的h3在bb后面,因为h3标签出现过一次,所以不再被选中。

相关文章

  • python-爬虫

    初识爬虫 网页基础 BeautifuleSoup 解析数据 提取数据 Tag 对象 CSS选择器 爬虫进阶

  • CSS选择器

    CSS 元素选择器CSS 选择器分组CSS 类选择器详解CSS ID 选择器详解CSS 属性选择器详解CSS 后代...

  • CSS初识—CSS选择器

    1.class 和 id 的使用场景? id:定位到页面上唯一的元素,页面上不能出现id相同的元素 class:定...

  • CSS选择器

    目录: CSS派生选择器 CSS元素选择器 CSS Id 和 Class选择器 CSS 属性选择器 CSS 派生选...

  • css选择器

    css选择器】 1.css属性选择器 2.css伪类选择器 3.css层次选择器

  • 初识CSS—选择器

    1. class与id的使用场景 一个页面中可以有多个同样的class,可以用于不同标签但是样式相同的元素上。 一...

  • 初识css选择器

    class 和 id 的使用场景?class指定标签的类名, 把需要相同样式的元素归类于一个name下,需要此样式...

  • 初识CSS ①选择器

    1、标签选择器 标签选择器其实就是html代码中的标签。 选择器{ css样式代码; } 下图的css样式代码的作...

  • CSS 选择器

    CSS 选择器 CSS 基本选择器及其扩展 CSS 基本选择器 通配符选择器 * 元素选择器 使用标签的名称...

  • Sublime 学习web的css

    html + css + js css引用 css外部样式 css优先级 css的选择器 标签选择器 类选择器 i...

网友评论

      本文标题:初识CSS—选择器

      本文链接:https://www.haomeiwen.com/subject/jhfssftx.html