伪元素初解

作者: 小pxu | 来源:发表于2016-05-14 16:11 被阅读54次

一、伪元素与伪类

1. 常见的伪类

:active      <!--向被激活的属性添加样式-->
:hover       <!--当鼠标悬浮于元素上方时,向元素添加样式-->
:link        <!--向未被访问的链接添加样式-->
:visited     <!--想已被访问的链接添加样式-->
etc.

2. 伪元素

::before       <!--在元素之前添加内容-->
::after        <!--在元素之后添加内容-->
::first-letter <!--向文本的第一个字母添加特殊样式-->
::first-line   <!--向文本的首行添加特殊样式-->
::selection    <!--向选中的内容添加样式-->

二、伪元素(这里只说::before和::after)

1. 了解

  • 创建一个虚假元素插入到元素的前或者后
  • 它不在文档流中,无法使用正常的DOM操作;
  • 它可以用css去操控
  • 在技术上来说,与添加一个span标签等价
  • :before/:after写法也可以被浏览器解析,但是为了区别于伪类,还是建议用两个冒号书写
  • 注意:因为其很难使用DOM操作,所以需要交互的部分不要使用伪元素去生成

2. ::before/::after基本语法

  • css样式中必须加入content属性

  • content属性以表示该伪元素中的内容;若无内容则用空字符串表示

      .p1::before{
          content: "我是一个:before";
      }
      .p1::after{
          content: "我是一个:after";
      }
    

3. 效果分析

  • 可以看到伪元素效果在技术上与span等价

  • 伪元素在浏览器检解析中的位置是在父元素内容的前后



      *{
          margin: 0;
          padding: 0;
      }
      .p1::before{
          content: "我是一个:before";
          background-color: skyblue;
      }
      .p1::after{
          content: "我是一个:after";
          background-color: skyblue;
      }
      span{
          background-color: skyblue;
      }
      p{
          width: 400px;
          background-color: pink;
          text-align: center;
      }
      
      <!--html-->
      
      <p class="p1">我是一个p1</p>
      <p class="p2">
          <span>我是一个:before</span>我是一个p2<span>我是一个:after</span>
      </p>
    

4. 再来个例子

  • 伪元素常配合定位来生成父级的某些附加部分,如下图米奇的耳朵



      *{
          margin: 0;
          padding: 0;
      }
      div{
          width: 100px;
          height: 100px;
          border: 2px solid black;
          border-radius: 50%;
          position: relative;
          left: 200px;
          top: 200px;
      }
      div::before{
          content: "";
          width: 40px;
          height: 40px;
          background-color: black;
          border-radius: 50%;
          position: absolute;
          left: -14px;
          top: -24px;
      }
      div::after{
          content: "";
          width: 40px;
          height: 40px;
          background-color: black;
          border-radius: 50%;
          position: absolute;
          left: 74px;
          top: -24px;
      }
      
      <!--html部分-->
      
      <div class="head"></div>

相关文章

  • 伪元素初解

    一、伪元素与伪类 1. 常见的伪类 2. 伪元素 二、伪元素(这里只说::before和::after) 1. 了...

  • 细说CSS伪类和伪元素

    原文 博客原文 大纲 1、伪元素2、伪类元素3、伪元素和伪类元素的区别4、伪类和伪元素的使用 1、伪元素 伪元素在...

  • 伪元素和伪类

    本文将介绍伪元素和伪类选择器的一些知识,以及在VUE中伪元素的动态数据更新; 伪元素和伪类: 伪元素:在内容元素的...

  • css 实现分割线的N种方法

    1.伪元素+transform:translateX(-100%); 伪元素 结合 定位 2.伪元素+flex (...

  • 巧用伪元素和伪类让我们的html结构更清晰合理

    css3为了区分伪类和伪元素,伪元素采用双冒号写法。 伪元素: [ 伪元素用于向某些选择器设置特殊效果,简单来说,...

  • CSS基础之伪类伪元素&样式优先权

    伪类&伪元素 首字样式控制 —— 使用伪元素::first-letter 首行样式控制 —— 使用伪元素::fir...

  • 伪元素和伪类

    伪元素和伪类 什么是伪元素? CSS 在渲染文档的时候,伪元素可以通过 css 给 HTML 添加一个元素(叫标签...

  • 初识伪元素

    初识 这篇文章是第一次系统的了解伪元素的一个记录,以前也知道伪元素,但是处于一知半解的状态。又碰巧前段时间被人问起...

  • CSS伪类和伪元素

    1. 什么是伪类和伪元素1.1. 伪类1.2. 伪元素1.3. 伪类与伪元素的区别 2. 使用 1. 什么是伪类和...

  • 伪元素before&after以及制作三角箭头

    1.:before伪元素和:after伪元素是干嘛用的 它们会在内容元素的前后插入额外的元素,:before伪元素...

网友评论

    本文标题:伪元素初解

    本文链接:https://www.haomeiwen.com/subject/dvoprttx.html