HTML中 :before 和 :after 的用法

article/2025/11/3 15:20:32

1.  :before 和 :after 的主要作用是在元素内容前后加上指定内容,示例:

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>p::before {content: "你好,";}p::after {content: "!!!"}</style>
</head><body><p>火星人</p>
</body></html>

效果如图:

 

以上代码是:before和:after的基本用法,但是这两种伪类还有很多更方便的用法。

2. :after清除浮动

   元素设置浮动以后,其父元素以及父元素的兄弟元素的布局都会受到影响,如父元素的背景边框(如宽度,高度,背景颜色)不能正常显示,父元素的兄弟元素位置布局错误等,

   为了避免这种浮动带来的影响必须要清除浮动,:after就是其中的一种方法。

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>服饰展</title><style>* {margin: 0;padding: 0;box-sizing: border-box;/* 盒子宽度和高度包括了padding 和 border  */}.gallery {width: 910px;margin: 15px auto;padding: 5px;background: rgb(76, 116, 190);}.gallery>div {position: relative;float: left;padding: 5px;}.gallery>div>img {width: 290px;transition: .1s;transform: translateZ(0);}.gallery>div:hover {z-index: 1;}.gallery>div:hover>img {transform: scale(1.6, 1.6);/* X轴Y轴被拉长 */transition: .3s transform;border: 1px solid rgba(236, 236, 236, 1.00);}/* 元素设置浮动以后,其父元素以及父元素的兄弟元素的布局都会受到影响,如父元素的背景边框不能正常显示,父元素的兄弟元素位置布局错误等 */.cf:after {display: block;content: "";clear: both;/* line-height: 0; */}h1:first-child {text-align: center;font-style: italic;color: antiquewhite;font-size: 35px;}body {background-image: url(imgs/雪景.jpg);background-repeat: repeat-x;}</style>
</head><body><div class="gallery cf"><div><img src="imgs/服饰1.jpg" height="242"></div><div><img src="imgs/服饰3.jpg" height="242"></div><div><img src="imgs/服饰4.jpg" height="244"></div><div><img src="imgs/服饰5.jpg" height="244"></div><div><img src="imgs/服饰6.jpg" height="244"></div><div><img src="imgs/服饰7.jpg" height="244"></div></div>
</body></html>

此时显现的界面为

若没有这段代码来清除浮动,则界面如下

 

背景高度会影响。 

3. :before和:after 用来写小三角形

  在日常的工作中会经常遇到小三角形这样的小图标,可以用添加图片的方式实现,但是更方便的是用:after  :before伪类来实现。

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>.demo:after {content: '';display: inline-block;width: 0;height: 0;border: 16px solid transparent;border-left: 16px solid #3ba518;position: relative;top: 2px;left: 10px;}</style>
</head><body><div class="demo">三角形</div>
</body></html>

 效果如图所示:

 4. 用:after和:before 写一个对话框

 

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>.left,.right {min-height: 40px;position: relative;display: table;text-align: center;border-radius: 7px;background-color: #17d035;}.right {/*使左右的对话框分开*/top: 40px;left: 60px;}.left>p,.right>p {/*使内容居中*/display: table-cell;vertical-align: middle;padding: 0 10px;}.left:before,.right:after {/*用伪类写出小三角形*/content: '';display: block;width: 0;height: 0;border: 8px solid transparent;position: absolute;top: 11px;}/*分别给左右两边的小三角形定位*/.left:before {border-right: 8px solid #17d035;left: -16px;}.right:after {border-left: 8px solid #17d035;right: -16px;}</style>
</head><body><div class="left"><p>花花的粉丝名是啥</p></div><div class="right"><p>是火星人啊</p></div></body></html>

 

 

    上面的对话框是模仿微信的样式写的,用:before和:after写很方便哦 。

这是我借鉴这篇博客的  详情请看这里

   


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

相关文章

:before和:after的使用方法

伪元素可以让我们很方便的加入一个样式&#xff0c;比如在字体前加一个icon&#xff0c;或者加一个下换线&#xff0c;可以不占一个元素的位置&#xff0c;使用起来也很方便&#xff0c;现在介绍一下使用的方法。 注意&#xff1a;:before和:after中的content是必加项 <!DO…

@Before和@After的区别

通常我们使用JUnit的时候&#xff0c;会有一些方法需要提前或最后执行&#xff0c;则需要如下几种方式进行注解

css中::before ::after的用法

一、介绍 ::before和::after是伪元素&#xff0c;&#xff08;css3中为了与伪类做区别&#xff0c;伪元素采用双冒号的写法&#xff1b;但因为兼容性的问题&#xff0c;所以现在大部分还是统一的单冒号&#xff0c;比如:first-line、:first-letter、:before、:after等&#xf…

: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;图片及分享的小程序页面路径。…