在我的上一篇博客中, 很多园友提出说对css3"画图"不是很理解, 在跟他们私聊了一段时间以后,加上自己在开始自学css3的时候的疑惑,我觉得大家之所以不是很理解主要是因为对伪元素不太了解,介于画图和CSS3里一些高大上的特效用的比较广泛的伪类元素就是::before 和 ::after, 写这篇博客主要也是为了起到一个敲门砖的作用,所以本篇博客主要是讲::before 和 ::after。那么就让我们一起来聊聊伪元素吧。

2.CSS历史

伪元素实际上在CSS1(CSS1发布于 1996年12月17 日。1999 年1月11日,此推荐被重新修订)中就存在了,只不过在后来的浏览器争霸时代发生了很多的演变。。在最初,伪元素的语法是使用“:”(一个冒号),随着web的发展,在CSS3中修订后的伪元素使用“::”(两个冒号),也就是::before 和 ::after—以区分伪元素和伪类(比如:hover,:active等)。不过索性无论你写一个冒号还是两个冒号,浏览器都将能识别它们。由于IE8(千疮百孔的IE你不懂,现在觉得最应该致敬的是那些做web开发还需要兼容IE6的程序猿们)只支持单冒号的格式,安全起见如果你想要更广泛的浏览器兼容性那么还是使用单冒号的格式吧!

3.伪元素概念

相信到这很多人都不知道伪元素到底是干嘛的?它的作用到底是做什么的,下面就让我们一起来揭开伪元素的神秘的面纱,探索伪元素背后那不为人知的故事。


伪元素直义理解就是"假元素"或者"伪装元素"。其实也可以这么理解, 伪元素实际上就是虚拟的元素,不存在的元素(code形式), 你也无发在文档中找到他们,因此说伪元素是虚拟元素。

4.伪元素作用

尽管作为“虚假”的元素,事实上伪元素表现上就像是“真正”的元素,我们能够给它们添加任何样式,比如改变它们的颜色、添加背景色、调整字体大小、调整它们中的文本等等。CSS 伪元素主要用于向某些选择器设置特殊效果。

5.伪元素用法

好了,标准的博客流程(就是前奏得揍很久,一大堆各种乱八七糟的介绍,其实我也不喜欢这些东西,但是为了向园子的大神们看近,也增加大家对伪元素的理解。 so,我们也走了一遍流程。)已经走完了。下面让我们一起来看看伪元素的用法

5.1简单例子

首先通过一个最最简单的例子, 来告诉大家:before和:after到底是个什么东东。

<style>
.cnblogsDemo1:before {
content: '向钱看';
}
/*****  原文出自 博客园 请叫我头头哥: www.cnblogs.com/toutou  ******/
.cnblogsDemo1:after { content: '向厚看'; } </style> <div class="cnblogsDemo1"> 这里1 </div>

效果:

运行效果是: 向钱看 这里 向厚看, 而且"向钱看"/"向厚看"实际上是不存在的,而且这种虚假的元素在页面(测试的是谷歌浏览器)上.是无法直接复制的, 我们只是通过伪元素实现了这个"向钱看"/"向厚看"。相信看到这里大家对伪元素心里已经有了一个概念了,其实在伪元素里,我们不光可以"向钱看"/"向厚看",我们可以通过伪元素做很多事情。

5.2水滴例子

比如我们简单实现一个水滴(比如百度地图上标记你当前位置的图标)的效果, 实现水滴效果呢我们分为三步走。

5.2.1首先实现画一个圆形

  

<style>
span {
height: 40px;
width: 40px;
display: block;
position: relative;
}
.cnblogsDemo2 {
height: 26px;
width: 26px;
border-radius: 40px;
-webkit-border-radius: 40px; /* Safari and Chrome */
-moz-border-radius: 40px; /* Firefox */
background: #333;
/*****  原文出自 博客园 请叫我头头哥: www.cnblogs.com/toutou  ******/
        }
</style>
<span class="cnblogsDemo2"> </span>

效果:

5.2.2实现画一个三角形

<style>
.cnblogsDemo3 {
height: 0px;
width: 0px;
border: 10px transparent solid;
border-top-color: #333;
border-width: 15px 10px 0px 10px;
}
</style>
<span class="cnblogsDemo3">
</span>
/*****  原文出自 博客园 请叫我头头哥: www.cnblogs.com/toutou  ******/

效果:

5.2.3水滴实现

可能到这里很多园友都感觉到讲圆形和三角形有机结合的话其实就是一个水滴的效果,没错,在有:before和:after的帮助下,我们想实现水滴效果就非常简单了,只需要将二者有效的结合。

<style>
span {
height: 40px;
width: 40px;
display: block;
position: relative;
}
.cnblogsDemo4 {
width: 26px;
} .cnblogsDemo4:before {
content: '4';
height: 26px;
width: 26px;
display: block;
position: absolute;
top: 2px;
left: 0px;
z-index: 1;
line-height: 26px;
background: #333;
border-radius: 40px;
-webkit-border-radius: 40px;
-moz-border-radius: 40px;
color: #fff;
text-align: center;
} .cnblogsDemo4:after {
content: '';
height: 0px;
width: 0px;
display: block;
position: absolute;
bottom: 2px;
left: 3px;
border: 10px transparent solid;
border-top-color: #333;
border-width: 15px 10px 0px 10px;
}
</style>
<span class="cnblogsDemo4">
</span>

效果:

水滴效果其实原理很简单,只是在:before和:after的基础上加一些定位,然后就可以将圆形和三角形有机结合成水滴,这个效果只是灯红酒绿的CSS3世界里最简单的一个实例,只是希望通过这个简单的实例让园友们领略到css3的风韵,从而了解或者喜欢CSS3.

6.总结

css的伪元素还有很多很多,这里就不全部列举了,需要我们一起慢慢去探索。CSS在有效的结合各种东东之后,其实可以实现很多高大上的效果,尤其是现在的[5+3]时代,更是所向披靡。

想了解更多css demo有兴趣的园友可以看我的上一篇博客,只希望这篇博客对大家学习web前端起到一点点推波助澜的效果。

作  者:请叫我头头哥

出  处:http://www.cnblogs.com/toutou/

关于作者:专注于基础平台的项目开发。如有问题或建议,请多多赐教!

版权声明:本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接。

特此声明:所有评论和私信都会在第一时间回复。也欢迎园子的大大们指正错误,共同进步。或者直接私信

声援博主:如果您觉得文章对您有帮助,可以点击文章右下角“推荐”一下。您的鼓励是作者坚持原创和持续写作的最大动力!

玩转CSS3,嗨翻WEB前端,CSS3伪类元素详解/深入浅出[原创][5+3时代]的更多相关文章

  1. css3 伪元素和伪类选择器详解

    转自脚本之家:http://www.jb51.net/css/213779.html 无论是伪类还是伪元素,都属于CSS选择器的范畴.所以它们的定义可以在CSS标准的选择器章节找到.分别是 CSS2. ...

  2. CSS3中的伪类选择器详解

      类选择器和伪类选择器区别 类选择器我们可以随意起名,而伪类选择器是CSS中已经定义好的选择器,不可以随意起名. 伪类选择器以及伪元素 我们把它放到这里 p.aaas{ text-align: le ...

  3. CSS3 结构伪类选择器 详解

    1 CSS3 结构伪类选择器 1.E:root 匹配E元素所在的根元素 即:html 2. E:nth-child(n) (1)匹配E元素的父元素中第n个子元素,(2)且该位置的子元素类型必须是E类型 ...

  4. CSS3选择器(三)之伪类选择器

    伪类选择器对于大家来说最熟悉的莫过于:link,:focus,:hover之类的了,因为这些在平时中是常用到的伪类选择器,那么先和大家一起简单总 结一下CSS中常用的伪类选择器的使用方法,最后把重心放 ...

  5. 史上最全web.xml配置文件元素详解

    一.web.xml配置文件常用元素及其意义预览 <web-app> <!--定义了WEB应用的名字--> <display-name></display-na ...

  6. SAE上传web应用(包括使用数据库)教程详解及问题解惑

    转自:http://blog.csdn.net/baiyuliang2013/article/details/24725995 SAE上传web应用(包括使用数据库)教程详解及问题解惑: 最近由于工作 ...

  7. Java web 入门知识 及HTTP协议详解

     Java  web  入门知识 及HTTP协议详解 WEB入门 WEB,在英语中web即表示网页的意思,它用于表示Internet主机上供外界访问的资源. Internet上供外界访问的Web资 ...

  8. 巨人大哥谈Web应用中的Session(session详解)

    巨人大哥谈Web应用中的Session(session详解) 虽然session机制在web应用程序中被采用已经很长时间了,但是仍然有很多人不清楚session机制的本质,以至不能正确的应用这一技术. ...

  9. [转帖]前端-chromeF12 谷歌开发者工具详解 Network篇

    前端-chromeF12 谷歌开发者工具详解 Network篇 https://blog.csdn.net/qq_39892932/article/details/82493922 blog 也是原作 ...

随机推荐

  1. TSwitch 中文简繁显示支持(XE6 Android)

    说明: XE6 的 TSwitch 做了很多改进,包含多语显示处理,但 XE6 似乎只认定一种中文语系「zh」,它无法处理「zh_TW」.「zh_CN」.「zh_HK」.「zh_SG」等语系,不过可以 ...

  2. python signal(信号)

    信号的概念 信号(signal)--     进程之间通讯的方式,是一种软件中断.一个进程一旦接收到信号就会打断原来的程序执行流程来处理信号. 几个常用信号: SIGINT     终止进程  中断进 ...

  3. 2016暑假多校联合---A Simple Chess

    2016暑假多校联合---A Simple Chess   Problem Description There is a n×m board, a chess want to go to the po ...

  4. Js 风骚的代码

    1.写自动调用的匿名函数 当我们写完一个函数立即调用时,总是 function a(){ } a(); 或许 var a = function(){ } a(); 而高手总是 (function(){ ...

  5. loadrunner录制webservice接口需要用户名密码时的解决方法

    当loadrunner进行webservice测试,进入访问地址,限制要输入用户名密码才能登陆时,添加以下代码: web_set_user("acerpc/admin"," ...

  6. iOS安全笔记

    这一篇文章, 加上里面链接的几篇文章(一个百度的, 两个阮一峰的), 全看完应该了解得差不多了 如何打造一个安全的App?这是每一个移动开发者必须面对的问题.在移动App开发领域,开发工程师对于安全方 ...

  7. 使用Bower作为Web包管理器

    Bower是一个简单易用的Web包管理器,通过它我们可以非常简便的安装各种Web框架和库,同时它也负责管理不同包之间的关系依赖. 安装Bower Bower需要 npm 和 Git 的支持,在安装Bo ...

  8. EasyDropDown – 很棒的下拉菜单,含精美主题

    EasyDropDown 是一个 jQuery 插件,你可以毫不费力地将简陋的 Select 元素设置为可定制风格的下拉菜单,用于表单或者一般的导航.和著名的下拉插件 Chosen 很像,但是具有自己 ...

  9. [deviceone开发]-viewShower和listView

    一.简介 viewshower里嵌套listview,实现复杂的列表效果. 二.效果图 三.相关下载 http://source.deviceone.net/source-detail.html?do ...

  10. Git本地仓库

    原文:http://www.cnblogs.com/wilber2013/p/4189920.html Git基本概念 在Git中,我们将需要进行版本控制的文件目录叫做一个仓库(repository) ...