当前位置: 首页 > news >正文

css3中的伪类before和after常见用法

before/after伪类相当于在元素内部插入两个额外的标签,其最适合也是最推荐的应用就是图形生成。在一些精致的UI实现上,可以简化HTML代码,提高可读性和可维护性。国外这两个伪类应用相当的普及以及兴盛,不过貌似我们这边前端er们普遍缺乏使用这两个伪类的意识,要使用顶多也就是跟风的“清除浮动”应用。

1.基本用法

:before和:after的作用就是在指定的元素内容(而不是元素本身)之前或者之后插入一个包含content属性指定内容的行内元素,最基本的用法如下:

#example:before {
    content: "#";
    color: red;
}

#example:after {
    content: "$";
    color: red;
}

这两个伪类都属于内联元素,但是用display:block;属性可以将其转换成块状元素,比较常见的用法就是样式的一些实现,还有就是清除浮动的效果。。

2.样式修改

代码如下所示:

<div class="quote">
    <span>小户型</span>
</div>
.quote:before,.quote:after{//用这两个伪类实现样式渲染
     content:"";
     display:inline-block;
     width:5%;
     margin:5px 1%;
     border-bottom:1px solid blue;
}

实现效果如下图所示:
这里写图片描述

3.清除浮动

代码如下所示:

<div class="parent">
    <div class="box1"></div>
    <div class="box2"></div>
</div>
<div class="parent2">parent2</div>
//css代码
.box1{
     width:300px;
     height:200px;
     background-color: lightgray;
     float:left;
}
.box2{
     width:300px;
     height:100px;
     background-color: lightblue;
     float:left;
}
.parent2{
     width:400px;
     height: 400px;
     background-color:blue;
     color:#fff;
     text-align:center;
     line-height:400px;
     font-size:30px;
}

因为浮动的问题,实现效果如下所示:
这里写图片描述

如果在上面代码中加上这段代码用来清除浮动则会达到不一样的效果:

.parent:after{
     content:"";
     display:block;//设为块状元素
     clear:both;   //用这个属性来清除浮动
}

达到的效果如下图所示:
这里写图片描述

相关文章:

  • openlayers4获取一个图形的边界
  • Vue.js小例子--tab选项卡切换
  • 使用openlayers3加载png格式图片
  • openalyers为自定义覆盖物overlay添加点击事件
  • absolute和float的区别
  • float定位对内联元素和块状元素的影响
  • javascript实现拖拽弹框高度,可调节弹框大小
  • vue中的template标签
  • SVN文件夹图标显示不正常的解决办法
  • 集中式开发和分布式开发的区别
  • SVN与GIT的优缺点对比
  • cesiumjs加载geojson+建筑物分层设色
  • js数组中关于filter()、map()、some()、every()、forEach()
  • 去除数组中的重复元素
  • --save-dev 和--save的区别
  • 30天自制操作系统-2
  • bootstrap创建登录注册页面
  • C# 免费离线人脸识别 2.0 Demo
  • Centos6.8 使用rpm安装mysql5.7
  • ComponentOne 2017 V2版本正式发布
  • in typeof instanceof ===这些运算符有什么作用
  • maya建模与骨骼动画快速实现人工鱼
  • MQ框架的比较
  • MySQL几个简单SQL的优化
  • OpenStack安装流程(juno版)- 添加网络服务(neutron)- controller节点
  • seaborn 安装成功 + ImportError: DLL load failed: 找不到指定的模块 问题解决
  • socket.io+express实现聊天室的思考(三)
  • SpiderData 2019年2月13日 DApp数据排行榜
  • vue-loader 源码解析系列之 selector
  • 从零开始在ubuntu上搭建node开发环境
  • 工作中总结前端开发流程--vue项目
  • 构造函数(constructor)与原型链(prototype)关系
  • 官方新出的 Kotlin 扩展库 KTX,到底帮你干了什么?
  • 简单数学运算程序(不定期更新)
  • 聊一聊前端的监控
  • 视频flv转mp4最快的几种方法(就是不用格式工厂)
  • 手写双向链表LinkedList的几个常用功能
  • 我从编程教室毕业
  • 正则表达式小结
  • MyCAT水平分库
  • 支付宝花15年解决的这个问题,顶得上做出十个支付宝 ...
  • #includecmath
  • #微信小程序:微信小程序常见的配置传旨
  • $ is not function   和JQUERY 命名 冲突的解说 Jquer问题 (
  • (17)Hive ——MR任务的map与reduce个数由什么决定?
  • (22)C#传智:复习,多态虚方法抽象类接口,静态类,String与StringBuilder,集合泛型List与Dictionary,文件类,结构与类的区别
  • (C#)if (this == null)?你在逗我,this 怎么可能为 null!用 IL 编译和反编译看穿一切
  • (day 2)JavaScript学习笔记(基础之变量、常量和注释)
  • (vue)el-checkbox 实现展示区分 label 和 value(展示值与选中获取值需不同)
  • (带教程)商业版SEO关键词按天计费系统:关键词排名优化、代理服务、手机自适应及搭建教程
  • (二)hibernate配置管理
  • (附源码)spring boot儿童教育管理系统 毕业设计 281442
  • (附源码)ssm户外用品商城 毕业设计 112346
  • (附源码)计算机毕业设计ssm基于Internet快递柜管理系统
  • (每日持续更新)jdk api之FileFilter基础、应用、实战