css中::before ::after的用法

article/2025/11/3 23:13:09
一、介绍

::before和::after是伪元素,(css3中为了与伪类做区别,伪元素采用双冒号的写法;但因为兼容性的问题,所以现在大部分还是统一的单冒号,比如:first-line、:first-letter、:before、:after等,但新的在CSS3中引入的伪元素就不允许用单冒号的写法。)

“:before” 伪元素可以在元素的内容前面插入新内容。
“:after” 伪元素可以在元素的内容之后插入新内容。

::before或::after都必须和content属性结合使用,content不能没有,内容至少为空;伪元素的display默认为inline,可以自己改.

二、用法

1.利用content的值:
(1)content:“字符串”;

可以统一在字前面或后面加一些字符
在这里插入图片描述

p:after{~~删除线格式~~ content:":";
}<body><p>请输入姓名</p><p>请输入年龄</p><p>请输入性别</p>
</body>

(2)content:url(…)

可以在字前面加一些小的图标,通过定位把位置调合适
在这里插入图片描述

p::before{content:url(footer3.png);position: relative;top:17px;}
<body><p>微信</p>
</body>

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

attr() 函数返回选择元素的属性值。
在这里插入图片描述

a::after{content:"(" attr(href) ")";}
p:after{content:attr(class);}
<p><a href="https://wx.qq.com/">微信</a></p>
<p class="hello"></p>

2.实现三角形
在这里插入图片描述

#top-triangle{width:0px;height:0px;border:20px solid transparent;border-bottom:20px solid pink;}
#right-triangle{width:0px;height:0px;border:20px solid transparent;border-left:20px solid pink;}
#bottom-triangle{width:0px;height:0px;border:20px solid transparent;border-top:20px solid pink;}
#left-triangle{width:0px;height:0px;border:20px solid transparent;border-right:20px solid pink;}<body><div id="top-triangle"></div><p></p><div id="bottom-triangle"></div><div id="right-triangle"></div><div id="left-triangle"></div>
</body>

3.实现对话框效果:
在这里插入图片描述

		.left,.right{position: relative;    /*后面移动会盒子位置*/display: table;min-height: 40px;text-align: center;background-color: #9EEA6A;margin: 0;border-radius: 7px;}.left{left:10px;}.left::before,.right::after{position: absolute;display: inline-block;content: "";width: 0px;height: 0px;border: 8px solid transparent;top: 15px;		/*移到中间*/}.left::before{border-right-color: #9EEA6A;left: -16px;}.right::after{border-left-color: #9EEA6A;right: -16px;}.left p,.right p{padding:0px 10px;}.right{right:-150px;}<div class="left"><p>你好啊</p></div><div class="right"><p>好久不见~</p></div>

4.实现箭头
在这里插入图片描述

		.box{position: relative;width: 200px;height: 50px;background-color: pink;}.box::before{position: absolute;content:"";width: 12px;height: 12px;border: 1px solid black;border-bottom-color: transparent;border-right-color: transparent;transform: translate(-50%, -50%) rotate(-45deg);left: 20px;top: 50%;}
<body><div class="box"></div>
</body>

5.清除浮动
原理:利用:after和:before在元素内部插入两个元素块,从而达到清除浮动的效果。

.outer:after { clear:both; 	/*清除浮动*/content:'';display:block; /*显示伪元素*/width:0;		height:0;		/*不占位置*/visibility:hidden; 	/*允许浏览器渲染它,但是不显示出来*/
}

6.画分割线:画一条分割线
在这里插入图片描述

<style>* {padding: 0;margin: 0;}.spliter::before, .spliter::after {content: '';display: inline-block;border-top: 1px solid black;width: 200px;margin: 5px;}</style>
</head>
<body><p class="spliter">分割线</p>
</body>

http://chatgpt.dhexx.cn/article/QvKaLWpV.shtml

相关文章

:before、:after伪元素的用法 !

:after 伪元素在元素之后添加内容。:before伪元素在元素之前添加内容。 这个伪元素允许创作人员在元素内容的最后面插入生成内容。默认地&#xff0c;这个伪元素是行内元素&#xff0c;不过可以使用属性 dispiay 改变这一点。 &#xff1a;before和&#xff1a;&#xff1a;be…

CSS中的:before和 :after

1. &#xff1a;before和 &#xff1a;after CSS中的:befor、:after都会创建一个伪元素&#xff0c;其中:befor创建的伪元素是所选元素的第一个子元素&#xff0c;:after创建的伪元素是所选元素的最后一个子元素。 :befor、:after创建的伪元素**默认样式为内联样式**。 &…

::before和::after伪元素的用法

一、介绍 css3为了区分伪类和伪元素&#xff0c;伪元素采用双冒号写法。 常见伪类——:hover,:link,:active,:target,:not(),:focus。 常见伪元素——::first-letter,::first-line,::before,::after,::selection。 ::before和::after下特有的content&#xff0c;用于在css渲…

after::和before::的用法

:after和:before的作用及使用方法 1. :before 和 :after 的主要作用是在元素内容前后加上指定内容&#xff0c;示例&#xff1a; HTML代码&#xff1a; <p>你好</p> CSS代码&#xff1a; p:before{content: Hello;color: red; } p:after{content: Tom;color: red;…

before 和after的用法

转载自&#xff1a;lur88 一、介绍 css3为了区分伪类和伪元素&#xff0c;伪元素采用双冒号写法。(:before和:after是在CSS2中提出来的&#xff0c;CSS3中的写法是::before和::after) 常见伪类——:hover,:link,:active,:target,:not(),:focus。 常见伪元素——::first-letter,…

before和after的用法

一、介绍 css3为了区分伪类和伪元素&#xff0c;伪元素采用双冒号写法。(:before和:after是在CSS2中提出来的&#xff0c;CSS3中的写法是::before和::after) 常见伪类——:hover,:link,:active,:target,:not(),:focus。 常见伪元素——::first-letter,::first-line,::before…

css中的before与after

before与after是css中的两个伪元素。所谓的伪元素就是一个虚假的元素&#xff0c;并插入到目标元素内容的之前与之后&#xff0c;我们一般可以通过css来控制它。其实before与after的编码是非常的简单的&#xff0c;就像我们在css中对他进行操作&#xff0c;比如设置他的背景颜色…

jquery中beforeSend和complete的使用 --- 提高用户体验设置请求头

beforeSend方法的用户主要有下面几个&#xff1a; 第一&#xff1a;用于在发送ajax请求之前设置请求头 即作为前端&#xff0c;如果我们希望在发送数据之前设置请求头&#xff0c;就可以像下面这么做&#xff1a; beforeSend: function(request) {request.setRequestHeader(&…

list对象转map stream /去重( 根据属性转Map或者分组)

根据某属性转换成Map &#xff0c; List<Student>转成Map<String, Student> 由List<Student>转成以Student的id当成Key&#xff0c;而Student当成Value的Map操作&#xff0c;即Map<String, Student>形式 List<Student> list new ArrayList<…

stream对象转map

方法1 直接指定key-value 方法2 按某字段分组

java常用的对象转map的几种方式

创建对象User package com.xqc;import java.util.Date;public class User {/**** ID*/private Integer id;/**** 用户名*/private String userName;/**** 岗位ID*/private Long jobId;/*** 生日*/private Date birthday;/**** 薪水*/private Double salary;public Integer get…

Java对象转Map的解决办法_java对象转map怎么操作?map如何转化成Java对象?

在我们学习Java的时候经常需要用到map转对象&#xff0c;在学校呢&#xff0c;老师教的时候也格外用心&#xff0c;相反&#xff0c;对象转map讲得就很精简了&#xff0c;让大多数的小伙伴不能理解透彻&#xff0c;但是&#xff0c;Java对象转map有的时候也需要用到&#xff0c…

Java对象和Map互相转换的6种方式

前言 开发小伙伴们通常会需要使用到对象和Map互相转换的开发场景&#xff0c;本文主要介绍6种方式&#xff0c;欲知详情&#xff0c;请问下文分解。 实体类&#xff1a; Data class User {Long id;String name;Integer age; }1、hutool工具 官网&#xff1a;https://www.hutoo…

linux vim 强制退出 不保存

linux vim 强制退出不保存T

Docker安装及若干问题解析

按照i春秋的教程我从https://blog.csdn.net/qq_27818541/article/details/73647797这个博客获得了指导。 博客上已经注明了&#xff0c;下面两个方式任选其一&#xff0c;我这个呆子两种方法都试了。。&#xff0c;重要的文字就应该用其他颜色的笔标出来... 全部步骤用完之后&a…

小程序转发链接打开异常(链接有中文)

小程序转发出去的链接参数里面有中文的话&#xff0c;点击打开页面异常,因为链接参数异常&#xff0c;导致接口获取数据异常&#xff0c;然后页面无法正常显示 这是因为中文在转发的时候让http协议自动进行了url转码&#xff0c;转成了一串这种形式的字母%e8%bd%ac%e7%a0%81%e6…

微信小程序 转发 分享功能(二)

关于小程序的转发&#xff1a; 最简单的就是点击小程序右上角菜单“转发”按钮直接分享&#xff0c;不过这种分享有点不太友好&#xff0c;实用性也不强。 当然&#xff0c;你可以自定义分享内容&#xff0c;包括标题&#xff0c;简介&#xff0c;图片及分享的小程序页面路径。…

微信小程序转发中文出现乱码

微信小程序转发中文出现乱码 在开发项目的过程中出现转发bug&#xff0c;转发给其他用户时点开界面出现乱码 界面参数由父界面传输 原因 在网上查了一圈&#xff0c;是说微信小程序的编码方式并非UTF8&#xff0c;所以导致出现乱码 解决方案 使用Js的decodeURI&#xff0…

微信小程序转发动态消息的问题

最近项目中需要用到微信小程序转发动态消息的功能&#xff0c;遇到了一些坑&#xff0c;最终测试成功了&#xff0c;现在分享给大家。 微信官方的动态消息参考文档在这里&#xff1a;https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/share/updatabl…

关于小程序转发分享功能,并实现计数埋点方式

小程序分享 前言思路关于分享关于计数埋点 效果使用page分享全局分享单页分享 使用Component组件分享全局分享单页面分享 计数埋点 前言 之前做的分享都是单页面分享&#xff0c;现在发现公司需要做所有页面的分享&#xff0c;然后指定页面和全局不一样&#xff0c;并且实现记…