我的编程空间,编程开发者的网络收藏夹
学习永远不晚

CSS中伪元素::before和::after怎么用

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

CSS中伪元素::before和::after怎么用

小编给大家分享一下CSS中伪元素::before和::after怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

::before和::after是什么?

::before和::after可以添加到选择器以创建伪元素的关键字。伪元素被插入到与选择器匹配的元素内容之前或之后。

CSS中伪元素::before和::after怎么用

content属性

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

2)::before和::after必须配合content属性来使用,content用来定义插入的内容,content必须有值,至少是空

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

content可取以下值:

string

使用引号包一段字符串,将会向元素内容中添加字符串

CSS中伪元素::before和::after怎么用

 p::before{
    content: "《";
    color: #000000;
}
p::after{
    content: "》";
    color:#000000;
}

<p>JavaScript高级程序设计</p>

attr()

通过attr()调用当前元素的属性,比如将图片alt提示文字或者链接的href地址显示出来。

CSS中伪元素::before和::after怎么用

a::after {
    content: ' → ' attr(href); 
}

 <a href="https://www.baidu.com/">百度地址</a>

CSS中伪元素::before和::after怎么用

 a::after{
    content: "【" attr(href) "】";
}

<a href="https://www.baidu.com/">百度地址</a>

url()/uri()

用于引用媒体文件。比如:“百度”前面给出一张图片,后面给出href属性。

CSS中伪元素::before和::after怎么用

a::before{
    content: url("img/baidu_jgylogo3.gif");
}
a::after{
    content:"("attr(href)")";
}

<a href="https://www.baidu.com/">百度地址</a>

注意

1)URL不能使用引号。如果你将URL用引号括起来,那么它会变成一个字符串和插入文本“url(image.jpg)”作为其内容,插入的而不是图像本身。

2)content属性,直接使用图片,即使写width,height也无法改变图片大小;

解决方案:如果要解决这个问题,可以把content:''写成空,使用background:url()来添加图片


.wrap:after{
    
    content:"";
    
    background:url("img/06.png") no-repeat center;
    
    display:inline-block;
    
    background-size:100%;
    width:100px;
    height:100px;
}复制代码

3)苹果端伪元素不生效,img、input和其他的单标签是没有:after和:before伪元素的(在部分浏览器中没有,如:苹果端会发现无效),因为单标签本身不能有子元素。

解决方案:给img包一个div可以解决

4)想要动态改变伪元素的图片,可以给当前元素添加伪元素图片的基础样式,再动态class来写伪元素的图片。

::before和::after的应用

配合quotes 属性使用

CSS中伪元素::before和::after怎么用

加括号

 h2{
    quotes:"(" ")";  
}
h2::before{
    content:open-quote;
}
h2::after{
    content:close-quote;
}

<h2>给标题加括号</h2>

加引号

 h3{
    quotes:"\"" "\"";  
}
h3::before{
    content:open-quote;
}
h3::after{
    content:close-quote;
}

<h3>给标题加引号</h3>

不指定,默认

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

<h4>不设置quotes</h4>

装饰标题

CSS中伪元素::before和::after怎么用

h2 {
    display: grid;
    grid-template-columns: minmax(50px, 1fr) auto minmax(50px, 1fr);
    align-items: center;
    text-align: center;
    gap: 40px;
}

h2::before, h2::after {
    content: '';
    border-top: 6px double;
}

<h2>标题</h2>

布局是通过将<h2>元素变成 3 列来实现的。左列和右列是双线,宽度均为minmax(50px, 1fr),这意味着它们的匹配宽度始终不小于50px。标题文本整齐地居中居中。

彩带标题

CSS中伪元素::before和::after怎么用

 h2 {
    position: relative;
    margin: 0 auto 20px;
    padding: 10px 40px;
    text-align: center;
    background-color: #875e46;
}

h2::before, h2::after {
    content: '';
    width: 80px;
    height: 100%;
    background-color: #724b34;

    
    position: absolute;
    z-index: -1;
    top: 20px;

    
    clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%, 25% 50%);

    
    background-image: linear-gradient(45deg, transparent 50%, #5d3922 50%);
    background-size: 20px 20px;
    background-repeat: no-repeat;
    background-position: bottom right;
}

h2::before {
    left: -60px;
}

h2::after {
    right: -60px;
    transform: scaleX(-1); 
}
---------------------------
 <h2>标题</h2>

实现更逼真的阴影

CSS中伪元素::before和::after怎么用

.box{margin:10px;width:300px;height:100px;border-radius:10px;background:#ccc}
.shadow{position:relative;max-width:270px;box-shadow:0 1px 4px rgba(0,0,0,.3),0 0 20px rgba(0,0,0,.1) inset}
.shadow::after,.shadow::before{position:absolute;z-index:-1;content:""}
.shadow::after,.shadow::before{position:absolute;bottom:15px;left:10px;z-index:-1;width:50%;height:20%;content:""}
.shadow::after,.shadow::before{position:absolute;bottom:15px;left:10px;z-index:-1;width:50%;height:20%;box-shadow:0 15px 10px rgba(0,0,0,.7);content:"";transform:rotate(-3deg)}
.shadow::after{right:10px;left:auto;transform:rotate(3deg)}


<div class="box shadow"></div>

替换内容

有些情况下content可以不使用::before或::after。如果content设置为单个图像,那么你可以直接在元素上使用它来替换该元素的 HTML 内容。

如页面上分别有以下三个内容:

CSS中伪元素::before和::after怎么用

加了replace类之后

.replace {
    content: url(img/replace.png);
}

CSS中伪元素::before和::after怎么用

1)具有简单文本的元素。它会被取代。
2)一个包含<img>在其中的元素。它也会被取代。
3)<img>直接一个元素。Firefox不会取代它,但其他浏览器会。

清除浮动

方式一:

.classic-clearfix::after {
    content: '';
    display: block;
    clear: both;
}

方式二:

.modern-clearfix {
    display: flow-root;
}

CSS中伪元素::before和::after怎么用

模拟float:center的效果

float没有center这个取值,但是可以通过伪类来模拟实现。

原理:左右通过::before float各自留出一半图片的位置,再把图片绝对定位上去。

CSS中伪元素::before和::after怎么用

body { font: 14px/1.8 Georgia, serif;}
#page-wrap { width: 60%; margin: 40px auto; position: relative; }
#logo { position: absolute; top: 0; left: 50%; margin-left: -125px; }
#l, #r { width: 49%; }
#l { float: left; }
#r { float: right; }
#l:before, #r:before { content: ""; width: 125px; height: 250px; }
#l:before { float: right; }
#r:before { float: left; }

<div id="page-wrap">
    <img class="lazy" data-src="img/cat.jpg" id="logo">
    <div id="l">
        <p>
            Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo. Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed, commodo vitae, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros ipsum rutrum orci, sagittis tempus lacus enim ac dui. Donec non enim in turpis pulvinar facilisis. Ut felis. Praesent dapibus, neque id cursus faucibus, tortor neque egestas augue, eu vulputate magna eros eu erat. Aliquam erat volutpat. Nam dui mi, tincidunt quis, accumsan porttitor, facilisis luctus, metus
        </p>
    </div>
    <div id="r">
        <p>
            Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo. Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed, commodo vitae, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros ipsum rutrum orci, sagittis tempus lacus enim ac dui. Donec non enim in turpis pulvinar facilisis. Ut felis. Praesent dapibus, neque id cursus faucibus, tortor neque egestas augue, eu vulputate magna eros eu erat. Aliquam erat volutpat. Nam dui mi, tincidunt quis, accumsan porttitor, facilisis luctus, metus
        </p>
    </div>
</div>

CSS中伪元素::before和::after怎么用

以上是“CSS中伪元素::before和::after怎么用”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网行业资讯频道!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

CSS中伪元素::before和::after怎么用

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

深入探讨CSS伪元素before和after的使用方法

CSS伪元素before和after是在HTML元素的前后添加样式的一种方法。这两个CSS伪元素主要用于添加装饰性元素或者给文本添加额外的样式。在本文中,我们将探讨CSS伪元素before和after的使用方法,并提供一些实用示例。一、CSS伪元素before和after的用法语法如下:```选择器:before{ content: ""; 属性:属性值;
2023-05-14

JavaScript前端中的伪类元素before和after如何使用

今天小编给大家分享一下JavaScript前端中的伪类元素before和after如何使用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来
2023-07-05

JavaScript前端中的伪类元素before和after使用详解

before和after也算是css里面最常见的元素了,而我却一直不太了解,再不学一下就真的太不像话了。所以学习一下,需要的朋友们下面随着小编来一起学习吧
2023-02-21

::before/:before和::after/:after怎么用

小编给大家分享一下::before/:before和::after/:after怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!第一部分:基础知识1.与:ac
2023-06-08

css3中的伪类before和after怎么用

本篇内容介绍了“css3中的伪类before和after怎么用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!before/after伪类相当
2023-06-08

css伪元素怎么用

css 伪元素是一种虚拟元素,通过 css 规则指定在已存在元素上添加样式。常见的伪元素包括:::before、::after、::first-letter、::first-line 和 ::placeholder。它们用于在元素之前插入内
css伪元素怎么用
2024-05-23

编程热搜

目录