这次给大家带来伪元素::before与::after使用详解,使用伪元素::before与::after的注意事项有哪些,下面就是实战案例,一起来看一下。
前言
众所周知::before与::after两个伪元素其实是CSS3中的内容,然而实际上在CSS2中就已经有了这两者的身影,只不过CSS2中是前面加一个冒号来表示(:before和:after)。今天主要讲讲这两个伪元素该如何使用。
一、与普通元素一样可以给其添加样式
比如说我想在文字前面添加一个图标,如果我用普通元素写的话我可以这样写:
/*CSS*/ .del{ font-size: 20px;} .del i{ display: inline-block; width: 20px; height: 25px; margin-right: 2px; vertical-align: middle; background: url("imgs/delete.png") no-repeat center; background-size: 100%;} .del span{ vertical-align: middle;}
/*HTML*/ <p class="del"><i></i><span>删除</span></p>
但是放个空的 i 标签总感觉很不爽,直接把它去掉吧!
/*CSS*/ .del{ font-size: 20px;} .del::before{ content: ""; display: inline-block; width: 20px; height: 25px; margin-right: 2px; vertical-align: middle; background: url("imgs/delete.png") no-repeat center; background-size: 100%;} .del span{ vertical-align: middle;}
/*HTML*/ <p class="del"><span>删除</span></p>
这里就直接用::before伪元素代替了空的 i 标签,两者效果相同:
同样利用这一点,我们可以使用::after伪元素解决经典清除浮动的问题:
.clearfix::after{ display:block; clear:both; content:""; overflow:hidden; height:0; }
当然,如果你网站还需要兼容IE8,那还是用:after吧,::after不兼容。
二、在元素中插入文本
有时候我可能需要在许多元素中同时加入相同的文字,那么可以考虑用这两个伪元素。例如:
/*CSS*/ .up:after{ content: '↑'; color: #f00;} .down:after{ content: '↓'; color: #0f0;}
/*HTML*/ <p class="up">上升</p> <p class="down">下降</p>
实现效果如下:
三、在元素中插入图像
实现类似本文第一个例子中的图片加文字效果,也可以使用伪元素直接插入图片而不需要使用背景图,就像这样:
/*CSS*/ .del{ font-size: 20px;} .del::before{ content: url("imgs/delete.png"); display: inline-block; margin-right: 2px; vertical-align: middle; } .del span{ vertical-align: middle;}
但是需要非常注意的是,使用这种方式插入的图片并不能通过控制伪元素的大小来改变图片的大小,只能引入固定大小的图片(这个略坑啊...),所以个人觉得最好还是老老实实用背景图片比较好。
四、插入连续项目编号
可能你会说,加入连续项目编号还不简单吗?直接用有序列表ol不就行了嘛!
是,确实是可以实现,就像这样:
<p>我的爱好:</p> <ol> <li>吃饭</li> <li>睡觉</li> <li>打豆豆</li> </ol>
这是Chrome下的效果:
看起来挺好,没啥问题,那我若想给前面的序号加粗呢?一脸懵逼了...
这时候你说,那我直接在每条文字前手动加标签和数字,然后给标签加上样式不就行了么?
/*CSS*/ ul li{ list-style: none;} ul li span{ font-weight: bold;}
/*HTML*/ <p>我的爱好:</p> <ul> <li><span>1.</span>吃饭</li> <li><span>2.</span>睡觉</li> <li><span>3.</span>打豆豆</li> </ul>
没错,现在是三条,要是是三十条,三百条,怎么办?一条条加?(很傻很天真...)
这时候若用纯CSS的方式,还得用到伪元素:
/*CSS*/ ul li{ list-style: none; counter-increment: number;} //number相当于是个变量,随便取名就好,在伪元素中调用 ul li::before{ content: counter(number)"."; font-weight: bold;} //注意这里不同于JS,counter(number)与"."之间不需要加任何东西,直接连接就好
/*HTML*/ <p>我的爱好:</p> <ul> <li>吃饭</li> <li>睡觉</li> <li>打豆豆</li> </ul>
效果如下:
那我如果不想要阿拉伯数字,我就想用中文数字可以么?
可以!伪元素很好很强大!
ul li{ list-style: none; counter-increment: number;} ul li::before{ content: counter(number,cjk-ideographic)"、"; font-weight: bold;}
效果如下:
除了这个cjk-ideographic,你还可以使用更多CSS中 list-style-type 属性:(直接贴上w3cshool里面的表格)
相信看了本文案例你已经掌握了方法,更多精彩请关注php中文网其它相关文章!
推荐阅读:
以上是伪元素::before与::after使用详解的详细内容。更多信息请关注PHP中文网其他相关文章!

Wufoo一直在集成方面非常出色。他们与特定应用程序(例如广告系列显示器,MailChimp和Typekit)进行集成,但他们也


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

WebStorm Mac版
好用的JavaScript开发工具

禅工作室 13.0.1
功能强大的PHP集成开发环境

DVWA
Damn Vulnerable Web App (DVWA) 是一个PHP/MySQL的Web应用程序,非常容易受到攻击。它的主要目标是成为安全专业人员在合法环境中测试自己的技能和工具的辅助工具,帮助Web开发人员更好地理解保护Web应用程序的过程,并帮助教师/学生在课堂环境中教授/学习Web应用程序安全。DVWA的目标是通过简单直接的界面练习一些最常见的Web漏洞,难度各不相同。请注意,该软件中

Atom编辑器mac版下载
最流行的的开源编辑器

Dreamweaver CS6
视觉化网页开发工具