博客列表 >CSS 选择器、伪类与伪元素

CSS 选择器、伪类与伪元素

司马青衫
司马青衫原创
2020年06月16日 10:02:54602浏览

CSS 选择器、伪类与伪元素

CSS 简单选择器

  • 元素选择器 根据标签设定样式
  • 类选择器 根据类名称设定样式
  • id 选择器 根据 id 名称设定样式

示例代码

  1. <body>
  2. <p>元素选择器</p>
  3. <p class="class-p">类选择器</p>
  4. <p id="id-p">id选择器</p>
  5. </body>
  1. <style>
  2. p {
  3. color: aqua;
  4. }
  5. .class-p {
  6. color: blue;
  7. }
  8. #id-p {
  9. color: brown;
  10. }
  11. </style>

运行结果

总结

  • 简单选择器会存在覆盖现象 后面覆盖前面 优先级高覆盖优先级低的
  • 例如同样都是 p 标签,带 class 与 id 的都会被新的样式覆盖

CSS 上下文选择器

  • 后代选择器 以空格分开标签 前面标签为祖先 后面标签为需要设定样式的标签
  • 父子选择器 以>分开标签
  • 同级相邻选择器 以+分开标签 设定两个相邻标签的后面一个标签的样式
  • 同级所有选择器 以~分开标签 设定前面一个标签之后的所有后面标签的样式

示例代码

  1. <body>
  2. <h2><strong>后代选择器</strong>--父子选择器</h2>
  3. <p><strong>同级相邻</strong>选择器</p>
  4. <h3>同级所有选择器</h3>
  5. <p><strong>同级所有</strong>选择器</p>
  6. <span>同级所有测试</span>
  7. <p><strong>同级所有</strong>选择器</p>
  8. </body>
  1. <style>
  2. h2 strong {
  3. color: aqua;
  4. }
  5. body > h2 {
  6. color: blueviolet;
  7. }
  8. h2 + p {
  9. color: brown;
  10. }
  11. h3 ~ p {
  12. color: coral;
  13. }
  14. </style>

运行结果

CSS 结构伪类选择器:不分组

  • :first-child
  • :last-child
  • :nth-child(n)
  • :nth-last-child(n)

示例代码

  1. <body>
  2. <div class="div1">
  3. <h2>匹配第一个子元素</h2>
  4. <p>匹配第二个子元素</p>
  5. <p>匹配倒数第二个子元素</p>
  6. <p>匹配最后一个子元素</p>
  7. </div>
  8. <div class="div2">
  9. <p>匹配奇偶元素</p>
  10. <p>匹配奇偶元素</p>
  11. <p>匹配奇偶元素</p>
  12. <p>匹配奇偶元素</p>
  13. </div>
  14. <div class="div3">
  15. <p>匹配指定位置</p>
  16. <p>匹配指定位置</p>
  17. <p>匹配指定位置</p>
  18. <p>匹配指定位置</p>
  19. <p>匹配指定位置</p>
  20. <p>匹配指定位置</p>
  21. </div>
  22. </body>
  1. <style>
  2. .div1 > :first-child {
  3. color: coral;
  4. }
  5. .div1 > :nth-child(2) {
  6. color: cornflowerblue;
  7. }
  8. .div1 > :nth-last-child(2) {
  9. color: chartreuse;
  10. }
  11. .div1 > :last-child {
  12. color: crimson;
  13. }
  14. .div2 > :nth-child(2n) {
  15. color: darkblue;
  16. }
  17. .div2 > :nth-child(2n-1) {
  18. color: darkcyan;
  19. }
  20. .div3 > :nth-child(n + 4) {
  21. color: lightblue;
  22. }
  23. .div3 > :nth-child(-n + 2) {
  24. color: lightcoral;
  25. }
  26. </style>

运行结果

CSS 结构伪类选择器:分组

  • 元素按类型进行分组
  • 分组后按索引进行选择
  • :first-of-type
  • :last-of-type
  • :nth-of-type(n)
  • :nth-last-of-type(n)

示例代码

  1. <body>
  2. <div class="div3">
  3. <span>分组结构伪类测试</span>
  4. <p>分组结构伪类第一个</p>
  5. <p>分组结构伪类</p>
  6. <p>分组结构伪类第三个</p>
  7. <span>分组结构伪类测试</span>
  8. <p>分组结构伪类</p>
  9. <p>分组结构伪类倒数第二个</p>
  10. <p>分组结构伪类最后一个</p>
  11. <span>分组结构伪类测试</span>
  12. </div>
  13. </body>
  1. <style>
  2. .div3 p:first-of-type {
  3. color: blue;
  4. }
  5. .div3 p:last-of-type {
  6. color: blueviolet;
  7. }
  8. .div3 p:nth-of-type(3) {
  9. color: brown;
  10. }
  11. .div3 p:nth-last-of-type(2) {
  12. color: lightcoral;
  13. }
  14. </style>

运行结果

CSS 伪类

  • :target
  • :focus
  • ::selection

示例代码

  1. <body>
  2. <a href="#login-form">登录</a>
  3. <form id="login-form">用户名<input type="text" /></form>
  4. </body>
  1. <style>
  2. form {
  3. display: none;
  4. }
  5. #login-form:target {
  6. display: block;
  7. }
  8. input:focus {
  9. color: red;
  10. background-color: yellow;
  11. }
  12. input::selection {
  13. color: white;
  14. background-color: black;
  15. }
  16. </style>

运行结果

CSS 伪元素

  • :not()
  • ::before
  • ::after

示例代码

  1. <body>
  2. <div class="list">
  3. <ul>
  4. <li>列表项1</li>
  5. <li>列表项2</li>
  6. <li>列表项3</li>
  7. <li>列表项4</li>
  8. </ul>
  9. </div>
  10. </body>
  1. <style>
  2. ul > :not(:nth-child(2)) {
  3. background-color: seagreen;
  4. }
  5. .list > ::before {
  6. content: "下面是列表";
  7. }
  8. .list > ::after {
  9. content: "上面是列表";
  10. }
  11. </style>

运行结果

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