css上下文选择器的类型有什么

青灯夜游
青灯夜游 原创
2022-01-20 10:43:08 1425浏览

css上下文选择器有四种类型:1、后代选择器,可选择当前元素的所有后代元素;2、父子选择器,可选择当前元素的所有子元素;3、同级相邻选择器,可选择拥有共同父级且相邻的元素;4、同级所有选择器,可选择拥有共同父级的后续所有元素。

本教程操作环境:windows7系统、CSS3&&HTML5版、Dell G3电脑。

css的上下文选择器

上下文选择器就是构成了"父子"或层级关系的一组元素,通过他们的关系设置样式

  • html 文档,看上去就像一颗倒置的”树”,所以是有层级结构的

  • 每一个元素, 在文档中, 都有自己的位置,即上下文关系

  • 所以, 完全可以根据元素的上下文关系,来获取到它们

一个元素的四种角色

序号角色描述
1祖先元素拥有子元素,孙元素等所有层级的后代元素
2父级元素仅拥有子元素层级的元素
3后代元素与其它层级元素一起拥有共同祖先元素
4子元素与其它同级元素一起拥有共同父级元素

四种上下文选择器

序号选择器操作符描述举例
1后代选择器空格选择当前元素的所有后代元素div p, body *
2父子选择器>选择当前元素的所有子元素div > h2
3同级相邻选择器+选择拥有共同父级且相邻的元素li.red + li
4同级所有选择器~选择拥有共同父级的后续所有元素li.red ~ li

示例

1.png

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>上下文选择器</title>
    <style>
      .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;
      }
      /* 后代选择器 */
      .container div {
        border: 1px solid coral;
      }
      /* 父子选择器,只有外层的div受影响 */
      body > div {
        border: 3px solid green;
      }
      /* 使用后代选择器模拟父子选择器 */
      /* body div.container {
        border: 3px solid green;
      } */
      /* 同级相邻选择器 */
      /* 选择与第5个相邻的,即后面的"一个"元素 */
      /* .item.center + .item {
        background-color: lightgreen;
      } */
      /* 同级所有选择器 */
      /* 选择与第5个后面的,有共同父级的所有兄弟元素 */
      .item.center ~ .item {
        background-color: lightgreen;
      }
    </style>
  </head>
  <body>
    <div>
      <div>1</div>
      <div>2</div>
      <div>3</div>
      <div>4</div>
      <div class="item center">5</div>
      <div>6</div>
      <div>7</div>
      <div>8</div>
      <div>9</div>
    </div>
  </body>
</html>

(学习视频分享:css视频教程

以上就是css上下文选择器的类型有什么的详细内容,更多请关注php中文网其它相关文章!

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。