after、before伪元素用法总结
来源:互联网 发布:债券交易员 知乎 编辑:程序博客网 时间:2024/05/21 08:45
前言
阅读本文前需要对before、after伪元素的基础概念有一定了解,若对此还很模糊,请先参考W3C CSS伪元素。
正文
重点概念回顾
伪元素即”虚假的元素”,可通过CSS来控制,但无法在HTML源码中查看,也无法通过DOM来操作。
伪元素必须设置content属性,否则无效。
伪元素插入的位置是元素内容的首部或尾部。
插入的伪元素默认为内联元素。
应用场景
常规用法
根据伪元素定义,可以得到最常规、朴素的用法,即在元素内容前后插入新内容。
<style>div:before { content: "Hello";}div:after { content: "!";}</style><div id="p">World</div>
最终渲染结果为 Hello World!
content属性内容除了字符串外,还可以通过url()渲染图像。
div:before { content: url("img.jpg"); display: block; width: 300px; height: 300px;}
由于伪元素默认为内联元素,在渲染图像时需要显式地将它声明为块级元素。
此外还可以
div:before { content: attr(id);}
通过attr()函数来获取元素某个特性的值。
清除浮动
利用伪元素来清除浮动是常规浮动清除的三种方式之一,也是最常用、最为推荐的一种方式。
直接上示例代码
<style> .parent { background: pink; } .clearfix:after { content: ""; display: block; clear: both; } .child { background: #fd7654; float: left }</style><div class="parent clearfix"> <div class="child">test</div></div>
我们通过设置父元素的after伪元素可以很方便地对它进行浮动清除。
为元素设置边框
有时候我们想为元素设置某一方向的边框,但又不希望因此改变盒子的高度或宽度。实际上,我们完全可以利用伪元素来实现这一需求。
微信团队开源的WeUI大量使用了这一特性,这里将以WeUI的[九宫格](“https://weui.io/#grid“)为例,建议读者同时对照着源码来学习。
观察 class=”weui-grids” 的div元素,它设置了两个伪元素,我对其中的重点属性做了拷贝。
.weui-grids:before { content: " "; position: absolute; left: 0; top: 0; right: 0; border-top: 1px solid #D9D9D9;}.weui-grids:after { content: " "; position: absolute; left: 0; top: 0; border-left: 1px solid #D9D9D9; bottom: 0;
首先,为了方便理解,我们可以将伪元素看成一个普通的、空内容的内联元素,并设置position,使它脱离文档流。
接下来,我们通过设置top、right、bottom、left 四个位置属性,使伪元素在某一位置上拉长。如设置
{ left: 0; top: 0; right: 0;}
将使得伪元素在元素顶部水平拉长,默认为元素宽度的100%。
同理,设置
{ left: 0; top: 0; bottom: 0;}
将使得伪元素在元素左边竖直拉长,默认为元素高度的100%。
最后,只要恰当地设置伪元素的boder属性,我们就实现了脱离了文档流的元素边框。
这里需要注意,由于任何元素都只有before、after两个伪元素,所以对于同一元素,只能同时设置两个方向的边框。
总结
本文首先对伪元素的重点概念进行了回顾,然后根据作者的日常实践,总结了伪元素的三种用法。分别是
1. 常规用法
2. 清除浮动
3. 设置边框
由于作者水平有限,若文章存在错误,或你对文章内容有更好地补充,欢迎指正或提出建议,感激不尽。
- after、before伪元素用法总结
- ::before和::after伪元素的用法
- ::before 和 ::after 伪元素用法
- CSS ::before 和 ::after 伪元素用法
- ::before和::after伪元素的用法
- ::before和::after伪元素的用法
- 伪元素:after和:before
- 伪元素::after和::before
- 伪元素::after和::before
- 伪元素::before和::after
- 伪元素::after和::before
- 伪元素::after和::before
- Before和:After伪元素
- CSS伪元素 :before :after
- 伪元素 之:after,:before
- 伪元素:before和:after
- 伪元素:before和:after的精彩用法
- ::before和::after的用法 css伪元素
- 【bzoj2120: 数颜色】带修改莫队
- 如何通过Maven打包工程
- Centos之Node.js安装-yellowcong
- BZOJ4514:数字配对(费用流+数学)
- 宽屏幕适配,屏幕长亮,禁止截屏
- after、before伪元素用法总结
- 微信官方提供的生成二维码接口得到的是当前公众号的二维码
- 前端的CSS JS问题
- The Unreasonable Effectiveness of Recurrent Neural Networks
- 用一句话可帮你销售更多
- Highcharts折线图折线不显示
- join 子句中其中一个表达式的类型不正确。对“GroupJoin”的调用中的类型推理失败。
- 源码|静态工厂返回声明的返回类型的子类型的实例
- 泛型在生成key-value的灵活使用