Blogger Information
Blog 30
fans 0
comment 2
visits 29442
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
CSS 选择器、伪类与伪元素
司马青衫
Original
617 people have browsed it

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>

运行结果

Correcting teacher:WJWJ

Correction status:qualified

Teacher's comments:写的不错,很详细!
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post