W3C的解释用一句话概括单冒号(:)用于CSS3伪类,双冒号(::)用于CSS3伪元素中。

css伪元素,之所以被称为伪元素,是因为他们不是真正的页面元素,html页面中没有对应的元素,但是其所有用法和表现行为与真正的页面元素一样,可以对其使用诸如页面元素一样的css样式,表面上看上去貌似是页面的某些元素来展现,实际上是css样式展现的行为,因此被称为伪元素。

<1>、用法

这个两个伪元素在真正页面元素内部之前和之后添加新内容,例如:

<p>你好!</p>

<style>

p::before {content: "Hello Word"}

p::after{content: " Word"}

</style>

等价于下面的html结构:

<p> <span>hello Word</span>

你好!

<span> Word</span>

</p>

伪元素::before和::after添加的内容默认是inline元素;这个两个伪元素的content属性,表示伪元素的内容,设置::before和::after时必须设置其content属性,content必须有值,至少是空。否则伪元素就不起作用。

::before和::after下特有的content,用于在css渲染中向元素头部或尾部添加内容。

这些添加不会出现在实际DOM结构中,不会改变文档内容,不可复制,仅仅是在css渲染层加入。所以不要用::before或::after展示有实际意义的内容,尽量使用它们显示修饰性内容。

那么问题来了,content属性的值可以有哪些内容呢,具体有以下几种情况:

  1. 字符串,字符串作为伪元素的内容添加到主元素中.
  2. attr(attr_name), 伪元素的内容跟主元素的某个属性值进行关联,及其内容为主元素的某指定属性的值。
  3. url()/uri(), 引用外部资源,例如图片;
  4. counter(), 调用计数器,可以不使用列表元素实现序号问题。

<2>、特点

伪元素是通过样式来达到元素效果的,也就是说伪元素不占用dom元素节点,引用::before和::after伪元素的主要特点如下:

●伪元素不属于文档,所以js无法操作它;

●伪元素属于主元素的一部分,因此点击伪元素触发的是主元素的click事件;

<3>、优缺点

不只是块级元素才可以有::before和::after大部分的行级元素也可以设置伪元素

优点:

减少dom节点数;

让css帮助解决部分js问题,让问题变得简单;

缺点:

不利于SEO;

无法审查元素,不利于调试;

<4>、使用场景

4.1清除浮动

清除浮动在前端是很常见的问题,可以利用伪元素来清除浮动

<div class="row">

<div class="label"></div>

....

</div>

<style>

.row:after {

clear: both;

content: "\0020";

display: block;

height: 0;

overflow: hidden

}

</style>

class=row的元素内部任何浮动都能清除掉,不用额外添加无意义的元素。

CSS伪元素::before,::after相关推荐

  1. css 伪元素::after与::before的使用

    CSS伪元素是用来添加一些选择器的特殊效果. 一般使用是 类或者id::after , 类或者id::before ::after是在类的后面处理逻辑 ::before 是在先的前面处理逻辑 它们 都 ...

  2. css 商城 两列_如何使用css伪元素实现超实用的图标库(附源码)

    今天我们来复盘一下前端中css伪元素的知识以及如何用css伪元素来减轻javascript的压力,做出一些脑洞大开的图形. 预备知识 伪元素 伪元素是一个附加至选择器末的关键词,允许你对被选择元素的特 ...

  3. 用CSS伪元素制作箭头

    现在让我们开始制作箭头吧! 在开始前,你要知道如何用CSS去画一个三角形,如果还不清楚可以看看这里纯CSS画各种图形 我们用到两个CSS伪元素,before和after,它们属于行内元素,但可以用di ...

  4. [JS 分析] 汽_车_之_家 JS 生成 CSS 伪元素 hs_kw44_configUS::before

    0.参考 https://developer.mozilla.org/zh-CN/docs/Web/CSS/Pseudo-elements https://developer.mozilla.org/ ...

  5. 教你玩转CSS 伪元素

    目录 CSS 伪元素 语法 :first-line 伪元素 :first-letter 伪元素 伪元素和CSS类 多个伪元素 CSS - :before 伪元素

  6. html 的css骚操作,意想不到的 CSS 伪元素 before/after 各种骚操作 - 文章教程

    CSS 伪元素 before/after 我们经常用到,常见的就是画个三角形.绘画背景阴影等,这篇文章将给大家分享还有很多有趣的操作,比如画线画图标等. 画细线 普通的 border 最小高度为1px ...

  7. css伪元素选择器,first-letter、first-line

    全栈工程师开发手册 (作者:栾鹏) css系列教程1-选择器全解 css伪元素选择器 伪元素选择器,用于选择元素内的局部,包括first-letter.first-line等 代码如下: p:firs ...

  8. 用css伪元素制作箭头图标

    用css伪元素制作跳转箭头图标 在一些前端框架中见到过伪元素做的图标,现在一般都自己写了,用伪元素可以代替不少图片 .yui-cell{ position: relative; } .yui-cell ...

  9. web前端css伪元素使用阿里iconfont中Unicode编码

    web前端css伪元素使用阿里iconfont中Unicode编码 在阿里iconfont中创建项目 新建项目 搜索自己想要的图标并添加入库 点击购物车 添加至项目 回到"我的项目" ...

  10. css 伪元素居中对齐

    css 伪元素居中对齐 .demo {display: flex;padding: 40px;}.demo::after {content: '';display: inline-block;back ...

最新文章

  1. android代码混淆笔记
  2. 复习笔记(八)——C++模板
  3. Application Desktop Toolbars 桌面工具栏
  4. oracle表查询不动怎么转储,Oracle常用的转储方法总结
  5. Way to configure the logon navigaion layouts via Business Roles in CRM
  6. php课程实验总结报告_PHP课程总结20161125
  7. 重新认识Docker Compose之Sidecar模式
  8. 51单片机实现c语言字母滚动,基于51单片机的led点阵滚动显示上下左右c语言程序.docx...
  9. html css浪漫页面,程序员的浪漫表白代码(JS+CSS+HTML)附带源码
  10. 服务器系统事件报错4103,IIS信息服务器排错指导
  11. “敏捷项目管理就是胡闹!”
  12. [2018.03.29 T1] 异或
  13. java根据车牌号获取车辆归属地
  14. uniapp 点击动画_uni-app animation动画
  15. 2018拼多多校招笔试贪心编程题小熊吃糖详解
  16. AVR单片机特性简介
  17. Ubuntu 18.04 Wine下安装微信并成功解决疑难杂症
  18. 如何关闭计算机英语作文,英语作文lt;关掉你的电脑gt;
  19. bat文件直接定位到指定目录并等待
  20. NSRunLoop的用法

热门文章

  1. 打卡3本书10句话-24
  2. 传真通讯的数字化发展趋势
  3. matlab 信号 滤波,大仙带你学matlab信号处理和滤波去噪
  4. 为什么PHP项目运行报错502,Nginx+PHP-FPM遇到的502报错
  5. 2007-2008新赛季意甲联赛的完全赛程
  6. python小波去噪_小波去噪
  7. 西部数据----移动硬盘---参数查询手册
  8. 不要把网站推广做成负面推广
  9. AD15原理图批量加粗线宽
  10. 23马原概念提纲速成SCNU