我是如何实用:before :after
本文地址http://www.cnblogs.com/Bond/p/3972854.html
最近一直做移动端,没和IE6打交道了,瞬间感觉世界变美好了。移动端虽然还是各种坑,但是比起修复IE6那还是轻松多了,移动端很多效果可以用CSS3来做,感觉一切都和谐的。
:before :after 也许大家认识它是从清楚浮动开始的。它在我眼里就是两个标签,而且非常实用好用,常用它你会发现,你可以省去很多冗余的标签。也许以前你用的是三个标签,而现在你只需要一个标签就能搞定。
总结下最近是如何实用它两的。
关闭按钮,这个只需一个标签,完全用css3实现,×用:before 和:after

.close{
position: absolute;
width: 30px;
height: 30px;
background-color: rgba(0, 0, 0, .5);
border-radius: 50%;
right: -10px;
top: -15px;
}
.closee:after, .close:before {
content: "";
background-color: #FFFFFF;
height: 2px;
width: 22px;
border-radius: 2px;
position: absolute;
left:;
top:;
right:;
bottom:;
margin: auto;
transform: rotate(45deg);
-webkit-transform: rotate(45deg);
}
.close:before {
transform: rotate(-45deg);
-webkit-transform: rotate(-45deg);
}
这种和上面的类似,直接一个标签,里面用:before和after来搞定

这种可以用:before和:after来做,不过相对就麻烦,但是用:before和:after可以控制两条线之间的角度。 如果想简单,假设两条线之间的角度是90,那么可以直接用border加旋转,或者是用阴影加上旋转就可以搞定。

/*→箭头 》》》》》》 用border来做,用阴影方法类似*/
.r:after {
position: absolute;
right: -10px;
top:;
bottom:;
margin: auto 0;
content: "";
display: block;
height: 6px;
width: 6px;
border-top: 2px solid #c6c6c6;
border-right: 2px solid #c6c6c6;
transform: rotate(45deg);
}
像这种文字前后都有图片,那个图片看似可以用css3来写,不过貌似不规则,没办法只能切图片。 文字前后均有这个直接用:before和:after 是多么美好

/* 背景斜线 */
p:before,p:after{
position: absolute;
content: "";
width: 23px;
height: 1em;
background: url('XXXXX.png') left bottom no-repeat;
background-size: 17px 10px;
}
p:before {
left:;
top: 13px;
}
微博上的箭头,那个小三角。可以用:before来做。不过新浪微博肯定不是那样做的,在pc端要考虑兼容性问题,他是直接放在一个span标签中的,可是我们在移动端那就不用怕,直接用:before吧.这样可以少一个span标签。 关于三角的实现方法也多。纯css可以,里面内容用◆,color设置为相应的颜色即可。

这种文字居中,居中之后后面还有一个图片。后面的图片直接用:after 可以减少一个标签

这种和上面类似,文字如果在h1标签中,那么那个箭头直接用:afterjiu 就搞定了

<p class="XX">关注XXX,我们将引导你 <br>获得XXXXXXXXX</p>
.text {
position: relative;
color: #333333;
font-size: 16px;
text-align: center;
line-height: 26px;
font-weight: bold;
margin: 32px 0 28px;
}
.text :after {
content: "";
position: absolute;
width: 52px;
height: 52px;
right: -2px;
top: 6px;
background: url('Xxxx.png') no-repeat;
background-size: 32px auto;
}
说了:before 和:after用起来多么爽,我不得不说下box-shadow,
之前的》》》》》 可以用box-shadow来做

这个效果一个标签搞定,外面圆一个,里面长方形用:before 三个点用:after 加上box-shadow

三个点这样做
p{
width: 100px;
height: 100px;
border-radius:50%;
background:#666666;
box-shadow:105px 0 #666666,
210px 0 rgba(200,200,200,.4);
}
下面这个加载动画,N个小圆点,其实就是一个点加上N个box-shadow。每个box-shadow位置不同,透明度不同而已,只需一个标签即可搞定。

css3是多么的强大,自己平时也没系统地学习css3, 买了本《css3图解》,以后慢慢研究。
看两个碉堡的css3
http://css-tricks.com/examples/ShapesOfCSS/
http://www.cnblogs.com/lhb25/p/create-simpsons-characters-pure-css.html
腾讯的企鹅 美团的小娃娃 他们都用纯css来画过,有兴趣可以去研究下,css3不是一般的强大。
我是如何实用:before :after的更多相关文章
- partial class 说明
C# 2.0 可以将类.结构或接口的定义拆分到两个或多个源文件中,在类声明前添加partial关键字即可. 例如:下面的PartialTest类 class PartialTest { string ...
- 三星galaxy s4问题解决及快捷操作
http://blog.csdn.net/pipisorry/article/details/38474827 三星galaxy s4更改锁屏方式时出现故障 屏幕锁定设置除password以外,其它锁 ...
- 三星galaxy S4快捷功能
你不知道的s4那些快捷操作全面挖掘 1.截屏:S4有三种截屏方法: 一种是常见的同一时候按住home键和电源键大概2秒左右时间. 另外一种是打开手势感应,设定→我的设备→动作与手势→手掌动作→截取屏幕 ...
- 【转】哦,mysql 的其它发行版本Percona, mariadb
原文:http://geek.csdn.net/news/detail/130146 2016年11月25日,沃趣科技"智慧应用 数据先行"2016产品发布会暨新三板挂牌庆祝会在杭 ...
- C#基础知识之Partial class
C# 2.0 可以将类.结构或接口的定义拆分到两个或多个源文件中,在类声明前添加partial关键字即可. 例如:下面的PartialTest类 class PartialTest { string ...
- C#基础知识之Partial
C# 2.0 可以将类.结构或接口的定义拆分到两个或多个源文件中,在类声明前添加partial关键字即可. 例如:下面的PartialTest类 class PartialTest { string ...
- TabActivity中的Tab标签详细设置
参考链接: http://www.iteye.com/topic/602737 这个写的很不错,我是跟着一步步写下来的,不过到最后也遇到了麻烦,就是不能将Tab标签的文字和图片分开,始终是重合的,而且 ...
- vue2.x核心源码深入浅出,我还是去看源码了
平常的工作就是以vue2.x进行开发,因为我是个实用主义者,以前我就一直觉得,你既然选择了这个框架开发你首先就要先弄懂这玩意怎么用,也就是先熟悉vue语法和各种api,而不是去纠结实现它的原理是什么. ...
- Sublime Text实用小技巧
1.输入"!"或"html:5",然后按Tab键: html:5 或!:用于HTML5文档类型 html:xt:用于XHTML过渡文档类型 html:4s:用于 ...
随机推荐
- Hibernate的fetch (转)
fetch ,可以设置fetch = "select" 和 fetch = "join" 用一对多来举例: fetch = "select" ...
- Android 使用定时器在指定日期及时间执行任务
public class MainActivity extends Activity { private Handler handler = new Handler(){ @Override publ ...
- postgresql 字符串拼接"||“的使用
不过注意这里的只有postgresql可以使用,其他数据库不明. select name || remark as newname from mytable where name like '%tes ...
- 数据库sharding(scale up to scale out)
sharding是将一个大数据库按照一定规则拆分成多个小数据库的一门技术. 当我们的应用数据量越来越多,访问量越来越大的时候,我们会作何选择?继续提升数据库服务器的性能还是采用一项技术让数据库平滑扩展 ...
- Sql2008的行列转换之行转列
今天在工作的时候遇到了行列转换的问题,记得去年有一段时间经常写,但是许久不用已经记不太得了.好记性不如烂笔头,忙完之后赶紧记录一下. 关键字:PIVOT(行转列),UNPIVOT(列转行) 先说说 P ...
- Js中的appenChild,insertBefore--createDocumentFragment
平时项目中会有一些流程,或者是评论相关的东西,这些一般只会是在页面初次加载一部分,剩余部分搞一个更多的标签,当点击更多的时候,ajax请求把所有数据加载完(当然这里也有分页的实现方法,本篇不作讨论), ...
- C++ Union妙用(将列表初始化用于数组元素)
Union是个不被注意的关键字,意为联合体,这是个诡异的名字.若不是为了继承C语言,它也不会出现在C++中(虽说,union在C++中得到了扩充,完成了接近类的功能).它的作用主要是节省内存空间,在嵌 ...
- WebRTC 音视频开发之路
早在2014年就通过WebRTC实现了PC客户端的实时视频语音,那时P2P连接的建立使用的WebRTC自带的libjingle库,使用peerconnection的API实现的.后来在做远程桌面,文件 ...
- ubuntu zend-eclipse-php debugger调试
1 下载zendDebugger http://www.zend.com/en/products/studio/downloads?src=downloadb 在这个页面中找到zend debugge ...
- css3动画使用技巧之—JQ配合css3实现轮播之animation-delay应用
<!DOCTYPE html> <html> <head> <title>css3动画使用技巧之—JQ配合css3实现轮播之animation-dela ...