6.1 ::after/::before

第六章:CSS——伪类元素 - 图1
实现红框中的代码:

  1. <span class="icon"></span><span class="words">主页</span>
  1. .icon {
  2. display: inline-block;
  3. width: 24px;
  4. height: 24px;
  5. background: url(https://qgt-document.oss-cn-beijing.aliyuncs.com/P3-2-HTML-CSS/1.2/source/first-page.png) no-repeat center;
  6. background-size: contain;
  7. vertical-align: top;
  8. margin-right: 8px;
  9. }
  10. .words {
  11. font-size: 18px;
  12. line-height: 24px;
  13. }

使用伪元素进行书写:

  1. <span>主页</span>
  1. /* 在span之前添加行内元素 */
  2. span::before {
  3. content: '';
  4. /* 将添加的行内元素定位,并设置大小、背景 */
  5. position: absolute;
  6. left: 0px;
  7. width: 24px;
  8. height: 24px;
  9. background: url(https://qgt-document.oss-cn-beijing.aliyuncs.com/P3-2-HTML-CSS/1.2/source/first-page.png) no-repeat center;
  10. background-size: contain;
  11. }

伪元素就是利用css 代码在标签内部前面,或者后面添加一个行内元素,这个行内元素你可以理解为span 。 其中conten:" "为占位符号。


6.2 清除浮动

常用方法:在父类名中加上clearfix

CSS中添加:

  1. .clearfix::after{
  2. content: '';
  3. display: block;
  4. clear: both;
  5. }

HETL中添加:

  1. <!-- 添加清除浮动类名 -->
  2. <div class="father-one clearfix">
  3. <div class="son-one">son-one</div>
  4. <div class="son-two">son-two</div>
  5. <div class="son-three">son-three</div>
  6. </div>

6.3 事件伪类

定义:鼠标移动到某个区块上的时候,该区块发生CSS样式的变化,即为事件伪类。

hover————鼠标移动上去

使用

  1. li:hover{
  2. background-color: #47A0FC;
  3. color: white;
  4. }

该代码的作用是当鼠标移动懂li标签的内容时,li标签的背景变为蓝色,字体颜色变为白色。

一个标签上可以添加多个hover,如果两次标签添加的属性相同,则后面的会覆盖前面的。

通过父元素改变子元素
  1. div:hover>span{
  2. background:blue;
  3. }

active————鼠标点击时

使用

  1. ul>li:active{
  2. /* 要改变的效果 */
  3. color: black;
  4. }

该代码的作用是当鼠标点击li标签的内容时,li标签字体颜色变为黑色。 注意书写时,hover需要写在active之前才会生效。

foucus————获取焦点后

focus:获取焦点的伪类,一般用于具有焦点的元素,比如input,比如我们可以让 input 获取到焦点以后,改变input的边框颜色。


6.4 列表伪类

1.匹配父元素中的第一个子元素——first-child

例如:

  1. ul>li:first-child{
  2. background-color: #3687FC;
  3. color: #FFFFFF;
  4. }

2.匹配父元素中的最后一个子元素——last-child

例如:

  1. ul>li:last-child{
  2. background-color: #3687FC;
  3. color: #FFFFFF;
  4. }

3.匹配父元素中第n个子元素——nth-child(n)

例如:

  1. ul>li:nth-child(2){
  2. background-color: #3687FC;
  3. color: #FFFFFF;
  4. }

括号中的数字还可以写odd(奇数)、even(偶数)。