伪元素::before与::after使用详解

这次给大家带来伪元素::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*/

删除

登录后复制

但是放个空的 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*/

删除

登录后复制

这里就直接用::before伪元素代替了空的 i 标签,两者效果相同:

伪元素::before与::after使用详解

同样利用这一点,我们可以使用::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*/

上升

下降

登录后复制

实现效果如下:

伪元素::before与::after使用详解

三、在元素中插入图像

实现类似本文第一个例子中的图片加文字效果,也可以使用伪元素直接插入图片而不需要使用背景图,就像这样:

/*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不就行了嘛!

是,确实是可以实现,就像这样:

我的爱好:

  1. 吃饭
  2. 睡觉
  3. 打豆豆

登录后复制

这是Chrome下的效果:

伪元素::before与::after使用详解

看起来挺好,没啥问题,那我若想给前面的序号加粗呢?一脸懵逼了…

这时候你说,那我直接在每条文字前手动加标签和数字,然后给标签加上样式不就行了么?

/*CSS*/ul li{ list-style: none;}ul li span{ font-weight: bold;}

登录后复制

/*HTML*/

我的爱好:

  • 1.吃饭
  • 2.睡觉
  • 3.打豆豆

登录后复制

没错,现在是三条,要是是三十条,三百条,怎么办?一条条加?(很傻很天真…)

这时候若用纯CSS的方式,还得用到伪元素:

/*CSS*/ul li{ list-style: none; counter-increment: number;}   //number相当于是个变量,随便取名就好,在伪元素中调用ul li::before{ content: counter(number)"."; font-weight: bold;}  //注意这里不同于JS,counter(number)与"."之间不需要加任何东西,直接连接就好

登录后复制

/*HTML*/

我的爱好:

  • 吃饭
  • 睡觉
  • 打豆豆

登录后复制

效果如下:

伪元素::before与::after使用详解

那我如果不想要阿拉伯数字,我就想用中文数字可以么?

可以!伪元素很好很强大!

ul li{ list-style: none; counter-increment: number;}  ul li::before{ content: counter(number,cjk-ideographic)"、"; font-weight: bold;}

登录后复制

效果如下:

伪元素::before与::after使用详解

除了这个cjk-ideographic,你还可以使用更多CSS中 list-style-type 属性:(直接贴上w3cshool里面的表格)

伪元素::before与::after使用详解

相信看了本文案例你已经掌握了方法,更多精彩请关注【创想鸟】其它相关文章!

推荐阅读:

CSS3做出条纹大背景

CSS3的鼠标移入图片动态提示效果

css中sticker-footer布局如何使用

以上就是伪元素::before与::after使用详解的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2899163.html

(0)
上一篇 2025年3月10日 23:42:38
下一篇 2025年3月10日 23:42:46

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • focus-within的使用详解

    这次给大家带来focus-within的使用详解,使用focus-within的注意事项有哪些,下面就是实战案例,一起来看一下。 CSS的世界真是一个神奇的世界。可能众多前端开发者听说过 :focus 并未听说过 :focus-within…

    编程技术 2025年3月10日
    200
  • CSS双飞翼布局的详解

    这次给大家带来CSS双飞翼布局的详解,实现CSS双飞翼布局的注意事项有哪些,下面就是实战案例,一起来看一下。 双飞翼布局,就是两端固定宽高,中间自适应的三栏布局 先来张图,左边和右边的灰色块是固定宽高的,中间绿色的区域是宽高自适应 方式一:…

    2025年3月10日
    200
  • 双飞翼布局与圣杯布局图文详解

    这次给大家带来双飞翼布局与圣杯布局图文详解,使用双飞翼布局与圣杯布局的注意事项有哪些,下面就是实战案例,一起来看一下。 双飞翼布局和圣杯布局都是实现两边固定中间自适应的三栏布局的方式,最近在整理三栏布局实现方式的笔记,决定但拉出来一篇,记一…

    2025年3月10日 编程技术
    200
  • BFC模式详解

    这次给大家带来bfc模式详解,使用bfc模式的注意事项有哪些,下面就是实战案例,一起来看一下。 详解BFC【 block formatting context】 BFC这个东西说常见的话你可能不觉得,但是你肯定会常用到,也许你在用的时候也没…

    编程技术 2025年3月10日
    200
  • css中px、em和rem使用详解

    相信每位前端工程师们都有这么一个体会,国内的设计师大都喜欢用px,而国外的网站大都喜欢用em和rem,那么三者有什么区别,又各自有什么优劣呢?下面这篇文章小编就来给大家详细介绍关于css中px、em和rem的区别,需要的朋友可以参考借鉴,下…

    编程技术 2025年3月10日
    200
  • 动态加载css详解

    这次给大家带来动态加载css详解,动态加载css的注意事项有哪些,下面就是实战案例,一起来看一下。 一、方法注意事项来源和应用 此动态加载css方法 loadCss,剥离自Sea.js,并做了进一步的优化(优化代码后续会进行分析)。 因为公…

    编程技术 2025年3月10日
    200
  • Vue的todoMVC使用详解

    这次给大家带来Vue的todoMVC使用详解,Vue的todoMVC使用注意事项有哪些,下面就是实战案例,一起来看一下。 这个示例是模仿官网示例样式和功能用我自己的方式写的,基本上没有看官网的源码,只参考自定义指令。让我们一步步来探讨一下。…

    2025年3月10日
    200
  • css中伪类和伪元素之:after

    这篇文章主要介绍了关于css中伪类和伪元素之:after ,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下 CSS中存在一些比较特殊的属性,称之为伪类,它们之中最常用的就是定义链接的伪:link,:visited,:hover…

    编程技术 2025年3月10日
    200
  • 关于CSS中的before和:after伪元素的使用分析

    这篇文章主要介绍了css中的before和:after伪元素使用详解,包括对一些非文本内容的插入操作使用,需要的朋友可以参考下 如果你一直密切关注着各种网页设计的博客,你可能已经注意到了:before和:after伪元素已经在前端开发中获得…

    2025年3月10日
    200
  • 关于CSS伪元素的应用

    利用css伪元素 :before 和 :after 可以在文档前后插入内容而不改变文档原有结构,下面有个不错的示例,大家可以参考下 利用CSS伪元素 :before 和 :after 可以在文档前后插入内容而不改变文档原有结构,再配合 bo…

    2025年3月10日
    200

发表回复

登录后才能评论