千家信息网

怎么使用css伪元素before和after

发表于:2025-02-01 作者:千家信息网编辑
千家信息网最后更新 2025年02月01日,这篇文章主要讲解了"怎么使用css伪元素before和after",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"怎么使用css伪元素before和aft
千家信息网最后更新 2025年02月01日怎么使用css伪元素before和after

这篇文章主要讲解了"怎么使用css伪元素before和after",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"怎么使用css伪元素before和after"吧!

层叠样式表(CSS)的主要目的是给HTML元素添加样式,然而,在一些案例中给文档添加额外的元素是多余的或是不可能的。事实上CSS中有一个特性允许我们添加额外元素而不扰乱文档本身,这就是"伪元素"。

你一定听说过这个词,尤其是当你一直关注着我们的教程。点此浏览原作者的其他文章

事实上,的确有一些CSS家族的成员(CSS选择器)被分类为伪元素比如::first-line, :first-letter, ::selection, :before and :after。但是,就本文而言,我们将把我们探讨的范围限制在:before 和 :after这两个元素上。因此,本文中的"伪元素"将特指这两个伪元素(:before 和 :after),我们将从基础入手,来研究这个独特的主题。

关于语法和浏览器支持

伪元素实际上在CSS1中就存在了,但是我们现在所讨论的:before和:after则发布于CSS2.1中。在最初,伪元素的语法是使用":"(一个冒号),随着web的发展,在CSS3中修订后的伪元素使用"::"(两个冒号),也就是::before 和 ::after—以区分伪元素和伪类(比如:hover,:active等)

然而,无论你使用单冒号还是双冒号,浏览器都将能识别它们。由于IE8只支持单冒号的格式,安全起见如果你想要更广泛的浏览器兼容性那么还是使用单冒号的格式吧!

它是做什么的

简而言之,伪元素将会在内容元素的前后插入额外的元素,因此当我们添加它们时,使用以下的标记方式,他们在技术上是平等的。

:before This the main content. :after

但是这些元素实际上并不在文档中生成。它们将在外部可见,但是你将不会在文档的源代码中找到它们,因此,实际上它们是"虚假"的元素。

使用伪元素

使用伪元素是相对容易的,:before将会在内容之前"添加"一个元素而:after将会在内容后"添加"一个元素。在它们之中添加内容我们可以使用content属性。

举例来说,下面的代码片段将在引用的之前和之后分别添加添加一个引号。

blockquote:before {    content: open-quote;  }  blockquote:after {    content: close-quote;  }

伪元素样式

尽管作为"虚假"的元素,事实上伪元素表现上就像是"真正"的元素,我们能够给它们添加任何样式,比如改变它们的颜色、添加背景色、调整字体大小、调整它们中的文本等等。

blockquote:before {  content: open-quote;  font-size: 24pt;  text-align: center;  line-height: 42px;  color: #fff;  background: #ddd;  float: left;  position: relative;  top: 30px;     }  blockquote:after {  content: close-quote;  font-size: 24pt;  text-align: center;  line-height: 42px;  color: #fff;  background: #ddd;  float: right;  position: relative;  bottom: 40px;  }

指定伪元素尺寸

由于已经设置float,所以无需设置display:black。

blockquote:before {  content: open-quote;  font-size: 24pt;  text-align: center;  line-height: 42px;  color: #fff;  background: #ddd;  float: left;  position: relative;  top: 30px;  border-radius: 25px;  height: 25px;  width: 25px;  }  blockquote:after {  content: close-quote;  font-size: 24pt;  text-align: center;  line-height: 42px;  color: #fff;  background: #ddd;  float: right;  position: relative;  bottom: 40px;  border-radius: 25px;  height: 25px;  width: 25px;  }

关联背景图像

我们也可以替换用图片替换内容而不是只有纯文本。尽管content属性提供了 url()来插入图片, 但是在更多的实例中,我更倾向于使用背景(background)属性从而更好的控制图片。

blockquote:before {  content: " ";  font-size: 24pt;  text-align: center;  line-height: 42px;  color: #fff;  float: left;  position: relative;  top: 30px;  border-radius: 25px;     background: url(images/quotationmark.png) -3px -3px #ddd;     display: block;  height: 25px;  width: 25px;  }  blockquote:after {  content: " ";  font-size: 24pt;  text-align: center;  line-height: 42px;  color: #fff;  float: right;  position: relative;  bottom: 40px;  border-radius: 25px;     background: url(images/quotationmark.png) -1px -32px #ddd;     display: block;  height: 25px;  width: 25px;  }

然而,正如你能够从上面的代码片段中看到的,我们仍旧声明了content属性,而且此时使用了空字符串。content属性是必须的而且应该经常被应用。否则,伪元素无论如何都无法正常工作。

结合伪类

尽管有不同类型的伪X(伪元素、伪类),我们可以使用伪类连同伪元素一起放入一个CSS规则中,例如,如果我们希望当我们的鼠标移到blockqoute上时,引号的背景色能够略微变深。

blockquote:hover:after, blockquote:hover:before {  background-color: #555;  }

添加过渡效果

我们甚至可以在伪元素上应用transition属性来创建优美的颜色过渡效果。

transition: all 350ms;  -o-transition: all 350ms;  -moz-transition: all 350ms;  -webkit-transition: all 350ms;

更多的灵感

为了激发你的灵感,我们已经选择了三个很酷的例子,可以在web设计上给你很多主意。

迷人的阴影(http://www.paulund.co.uk/creating-different-css3-box-shadows-effects)

在这个教程中 Paul Underwood 解释了如何创建更加逼真和吸引人的阴影效果。

使用 伪元素:before 和 :after 。它们两个都是绝对定位,而且使用负z-index来放置到图片后方实现阴影效果。

3D按钮

这是一个非常聪明的实现,利用伪元素结合CSS3 box-shadow 来绘制一个令人吃惊的3D按钮,仅仅使用了CSS和单一的锚文本。伪元素:before 被用来在按钮的左侧添加数字"1"。

叠加图像效果

使用伪元素来仅仅依靠一个图片标签创建一个"凌乱的"叠加图像效果也是可能的。伪元素用于建立一个图片叠加的错觉,通过使用z-index负值使"叠加"的图片在真正的图片后面来实现。

感谢各位的阅读,以上就是"怎么使用css伪元素before和after"的内容了,经过本文的学习后,相信大家对怎么使用css伪元素before和after这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!

元素 图片 内容 冒号 属性 效果 两个 文档 样式 背景 叠加 浏览 事实 事实上 图像 实际 实际上 按钮 文本 更多 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 南京万米网络技术有限公司 手机总遇到访问服务器是怎么回事 dell服务器如何做 软件开发中高风险优先还是低风险 香港哪家服务器性价比高 互联网科技空白领域 网络技术研究院硕士专业目录 常用财务软件数据库 无法解析小米电视服务器地址 民政局网络安全工作实施方案 卫辉软件开发哪家价格实惠 和安服务器 旧金山互联网科技办公 网络安全信息准则有哪些内容 NTP授时服务器客户端 深圳web前端软件开发定制 nginx 静态资源服务器优化 apex换服务器还有数据吗 魔兽怀旧服最新服务器人口数量 安徽网络授时模块服务器 高职软件开发专业好 汕头商城软件开发收费 vs链接数据库中记录点击次数 服务器数据库连接缓慢 连接电脑的服务器的名称 民政局网络安全工作实施方案 学生成绩数据库查询 网络安全游戏教案幼儿园 计算机网络技术模块二课后题 ctf网络安全大赛获奖
0