博客列表 >css选择器

css选择器

昔年
昔年原创
2020年04月07日 17:21:27438浏览
  1. 简单选择器

    权重:标签 <class属性<id属性

<div class="container">
      <div class="item" id="first">1</div>
      <div class="item">2</div>
      <div class="item" title="php">3</div>
      <div class="item">4</div>
      <div class="item center">5</div>
      <div class="item" title="hello">6</div>
      <div class="item">7</div>
      <div class="item">8</div>
      <div class="item">9</div>
    </div>
<style>
      /* 使用九宫格演示简单选择器 */

      /* 类选择器:选择一类元素,也属于属性选择器的一种,对应元素中的class */
      .container {
        width: 300px;
        height: 300px;
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        gap: 5px;
      }

      /* 类选择器 */
      .item {
        font-size: 2rem;
        background-color: lightskyblue;
        display: flex;
        justify-content: center;
        align-items: center;
      }

      /* 元素选择器 */
      body {
        background-color: lightcyan;
      }

      /* 多个类选择器 */
      .item.center {
        background-color: lightgreen;
      }

      /* id选择器 */
      #first {
        background-color: lime;
      }
      /* id,class可以添加到任何元素,前面的元素限定符默认就是*,所以可以省略 */
      div#first {
        background-color: lime;
      }
      /* 类选择器,class  权重大于  标签 */
      .item#first {
        background-color: lightpink;
      }
      /* id的权重大于class */
      #first.item {
        background-color: violet;
      }

      /* 标签  < class属性 < id属性 */

      /* 属性选择器 */
      .item[title="php"] {
        background-color: lightcoral;
      }

      *#first,
      .item.center,
      .item[title="hello"] {
        background-color: black;
      }
    </style>

2.上下文选择器

后代选择器:选择当前元素的所有后代元素

父子选择器:只选择当前元素的子元素

同邻相邻选择器:拥有共同父级的相邻元素

通邻所有选择器:拥有共同父级的所有元素

<style>
      /* 后代选择器   所有子代的div都受影响*/
      /* .container div {
        border: 1px solid coral;
      } */

      /* 父子选择器   只有外层的div受影响*/
      /* body > div {
        border: 3px solid green;
      } */

      /* 使用后代选择器模拟父子选择器 */
      body div.container {
        border: 3px solid green;
      }

      /* 同级相邻选择器 */
      /* 选择与第五个相邻的,即后面的一个元素 */
      /* .item.center + .item {
        background-color: lightgreen;
      } */

      /* 同级所有选择器 */
      /* 选择与第五个后面的,有共同父级的所有兄弟元素 */
      .item.center ~ .item {
        background-color: lightgreen;
      }
    </style>

3.伪类

3.1不分组匹配

first-child:匹配第一个子元素

last-child:匹配最后一个子元素

nth-child(n):匹配第n个位置的子元素

nth-last-child(n):匹配倒数第n个位置的子元素

<style>
      /* 使用九宫格演示简单选择器 */
      /* body,第一个单元格都变了 */
      /* 为了防止递归,应该在具体父元素上调用伪类 */
      /* :nth-child(1) --- :first-child */
      div > .item:first-child {
        /* background-color: wheat; */
      }

      /* 匹配最后一个 */
      .container > :last-child {
        /* background-color: lightpink; */
      }

      /* 匹配任何一个 */
      /* 索引从1开始计算 */
      .container > :nth-child(3) {
        /* background-color: lightgreen; */
      }

      /* :nth-child(n)  n:n支持表达式 */
      /* 当n在表达式中的时,从0开始的 */
      .container > :nth-child(2n) {
        /* background-color: magenta; */
      }

      /* even:代表偶数 */
      .container > :nth-child(even) {
        /* background-color: magenta; */
      }

      /* 选择奇数 */
      .container > :nth-child(2n-1) {
        /* background-color: lightsalmon; */
      }

      /* even:代表偶数 */
      .container > :nth-child(odd) {
        /* background-color: lightsalmon; */
      }

      /* 只选择前三个 */
      /* n:从0开始 */
      .container > :nth-child(-n + 3) {
        /* background-color: lightgreen; */
      }

      /* 选择倒数第二个 */
      .container > :nth-last-child(2) {
        /* background-color: lime; */
      }

      /* 从第四个开始,选择剩下的所有元素 */
      .container > :nth-child(n + 4) {
        background-color: lightgray;
      }
    </style>

3.2分组匹配

first-of-type:匹配按类型分组的第一个子元素

last-of-type:匹配按类型分组的最后一个子元素

nth-of-type(n):匹配按类型分组的第n个位置的子元素

nth-last-of-type(n):匹配按类型分组的倒数第n个位置的子元素

<style>
      .container span:first-of-type {
        background-color: violet;
      }

      .container span:last-of-type {
        background-color: violet;
      }

      /* span分组的前三个 */
      .container span:nth-of-type(-n+3) {
        background-color: gray;
      }

      .container span:nth-last-of-type(-n + 2) {
        background-color: coral;
      }
    </style>

4.表单状态选择器

<style>
      :root {
        background-color: lightgreen;
      }
      input:enabled {
        background-color: blanchedalmond;
      }

      input:disabled {
        background-color: lightgreen;
      }

      input:required {
        background-color: yellow;
      }

      input:hover {
        background-color: red;
      }

      :link {
        background-color: royalblue;
      }

      :visited {
        background-color: slateblue;
      }
    </style>

总结:今天主要学习的是选择器知识,后面我们使用css改变html样式几乎都是用选择器来处理,。简单选择器和上下文选择器还好,理解起来比较容易。到了伪类选择器可能理解起来相对难,这块在后期的学习以及操作中要多练习,伪类选择器选择元素非常方便这点是其他选择器都没法比的。最后学了点表单状态选择器,这个在以后表单注册登录中应该会用的比较多,比如注册是没有输密码就可以使用这个来提示用户。

声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议