css3的伪(伪类和伪元素)大合集
本文讲css3的伪,不是讲它有多虚伪,而是说它的伪元素样式。不得不说以前虽知html伪元素,但很少用,后得知借助css3伪元素可以发挥极大的便利。故总结css3的伪如下:
CSS中存在一些比较特殊的属性,称之为伪类,它们之中最常用的就是定义链接的伪:link,:visited,:hover,:active等。除了它们,还有一些不被常使用的伪类,有:focus,:first-child,:lang等。
如下将一一介绍各伪类的用法。
CSS 伪类 (Pseudo-classes)实例:
- 超链接
- 本例演示如何向文档中的超链接添加不同的颜色。
- -------------------------------------------
- 超链接 2
- 本例演示如何向超链接添加其他样式。
- :link 选择器对指向未被访问页面的链接设置样式,
- :hover 选择器用于设置鼠标指针浮动到链接上时的样式,
- :active选择器用于设置点击链接时的样式。
- :visited 选择器用于选取已被访问的链接。
- --------------------------------------------------
- 超链接 - :focus 的使用
- 本例演示如何对超链接应用 :focus 伪类(无法在 IE 中工作)。focus选择获得焦点的输入字段,并设置其样式。:focus 选择器用于选取获得焦点的元素。提示:接收键盘事件或其他用户输入的元素都允许 :focus 选择器。
-
当输入框获得焦点时,改变它的背景色:
$("input").focus(function(){
$("input").css("background-color","#FFFFCC");
});当元素获得焦点时,发生 focus 事件。
当通过鼠标点击选中元素或通过 tab 键定位到元素时,该元素就会获得焦点。
focus() 方法触发 focus 事件,或规定当发生 focus 事件时运行的函数。blur失去焦点。
触发 focus 事件
语法
$(selector).focus()
将函数绑定到 focus 事件
语法
$(selector).focus(function) 亲自试一试----------------------------------
- :first-child(首个子对象)
- 本例演示 :first-child 伪类的用法。first-child是父元素的首个子元素。
- text-transform用于转换不同元素中的文本,text-transform 属性控制文本的大小写。
h1 {text-transform:uppercase}大写
h2 {text-transform:capitalize}混写
p {text-transform:lowercase}小写 ---------------------------------------------------------------------------- - :lang(语言)
- 本例演示 :lang 伪类的用法。:lang 选择器用于选取带有以指定值开头的 lang 属性的元素。注释:该值必须是整个单词,即可是单独的,比如 lang="en",也可后跟连接符,比如 lang="en-us"。
- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
CSS里不光有伪类,还有伪元素,比如::first-letter,:first-line,:before和:after。
这个伪元素允许制作人员在元素内容的最后面插入生成内容,需要和content属性一起使用,设置在对象后发生的内容。默认地,这个伪元素是inline行内元素,不过可以使用属性 display 改变这一点。
所有主流浏览器都支持 :after 伪元素,但对于IE来说,只有IE8以上版本支持。
after顾名思义是在元素后面的意思,实质是在元素之后添加内容。
在before/after伪元素选择器中,有一个content属性,能够实现页面中的内容插入。现总结content插入情况如下:
一 插入纯文字
content:"插入的文章",或者content:none不插入内容
html:
- <h1>这是h1</h1>
- <h2>这是h2</h2>
css
- h1::after{
- content:"h1后插入内容"
- }
- h2::after{
- content:none
- }
这是h1h1后插入内容
这是h2
二 嵌入文字符号
可以使用content属性的open-quote属性值和close-quote属性值在字符串两边添加诸如括号、单引号、双引号之类的嵌套文字符号。open-quote用于添加开始的文字符号,close-quote用于添加结束的文字符号。修改上述的css:
- h1{
- quotes:"(" ")"; /*利用元素的quotes属性指定文字符号*/
- }
- h1::before{
- content:open-quote;
- }
- h1::after{
- content:close-quote;
- }
- h2{
- quotes:"\"" "\""; /*添加双引号要转义*/
- }
- h2::before{
- content:open-quote;
- }
- h2::after{
- content:close-quote;
- }
(这是h1)
\这是h2\
三 插入图片
content属性也可以直接在元素前/后插入图片
html:
- <h3>这是h3</h3>
css:
h3::after{
content:url(http://ido321.qiniudn.com/wp-content/themes/yusi1.0/img/new.gif)
}
这是h3(此处有图片)
四 插入元素的属性值
content属性可以直接利用attr获取元素的属性,将其插入到对应位置。
html:
- <a href="http://www.cnblogs.com/ibingbing">这是链接 </a>
css:
- a:after{
- content:attr(href);
- }
这是链接http://www.cnblogs.com/ibingbing
五 插入项目编号
利用content的counter属性针对多个项目追加连续编号.
html:
- <h1>大标题</h1>
- <p>文字</p>
- <h1>大标题</h1>
- <p>文字</p>
- <h1>大标题</h1>
- <p>文字</p>
- <h1>大标题</h1>
- <p>文字</p>
css:
- h1:before{
- content:counter(my)'.';
- }
- h1{
- counter-increment:my;
- }
大标题
文字
大标题
文字
大标题
文字
大标题
文字
counter-increment对部分和子部分进行编号(比如 "Section 1"、"1.1"、"1.2")的方法:
body
{
counter-reset:section;
} h1
{
counter-reset:subsection;
} h1:before
{
content:"Section " counter(section) ". ";
counter-increment:section;
} h2:before
{
counter-increment:subsection;
content:counter(section) "." counter(subsection) " ";
}
所有浏览器都支持 counter-increment 属性。
注释:如果已规定 !DOCTYPE,那么 Internet Explorer 8 (以及更高版本)支持 counter-increment 属性。
counter-increment 属性设置某个选取器每次出现的计数器增量。默认增量是 1。
利用这个属性,计数器可以递增(或递减)某个值,这可以是正值或负值。如果没有提供 number 值,则默认为 1。
注释:如果使用了 "display: none",则无法增加计数。如使用 "visibility: hidden",则可增加计数。
六 项目编号修饰
默认插入的项目编号是数字型的,1,2,3.。。。自动递增,也能给项目编号追加文字和样式,依旧利用上面的html,css修改如下:
- h1:before{
- content:'第'counter(my)'章';
- color:red;
- font-size:42px;
- }
- h1{
- counter-increment:my;
- }
大标题
文字
大标题
文字
大标题
文字
大标题
文字
七 指定编号种类
利用content(计数器名,编号种类)格式的语法指定编号种类,编号种类的参考可以依据ul的list-style-type属性值。利用上述的html,css修改如下:
- h1:before{
- content:counter(my,upper-alpha);
- color:red;
- font-size:42px;
- }
- h1{
- counter-increment:my;
- }
大标题
文字
大标题
文字
大标题
文字
大标题
文字
八 编号嵌套
大编号中嵌套中编号,中编号中嵌套小编号。
html:
- <h1>大标题</h1>
- <p>文字1</p>
- <p>文字2</p>
- <p>文字3</p>
- <h1>大标题</h1>
- <p>文字1</p>
- <p>文字2</p>
- <p>文字3</p>
- <h1>大标题</h1>
- <p>文字1</p>
- <p>文字2</p>
- <p>文字3</p>
css:
- h1::before{
- content:counter(h)'.';
- }
- h1{
- counter-increment:h;
- }
- p::before{
- content:counter(p)'.';
- }
- p{
- counter-increment:p;
- }
1.大标题
1.文字1
2.文字2
3.文字3
2.大标题
4.文字1
5.文字2
6.文字3
3.大标题
7.文字1
8.文字2
9.文字3
在示例的输出中可以发现,p的编号是连续的。如果对于每一个h1后的三个p重新编号的话,可以使用counter-reset属性重置,修改上述h1的css:
- h1{
- counter-increment:h;
- counter-reset:p;
- }
这样,编号就重置了,看看结果:
1.大标题
1.文字1
2.文字2
3.文字3
2.大标题
1.文字1
2.文字2
3.文字3
3.大标题
1.文字1
2.文字2
3.文字3
还可以实现更复杂的嵌套,例如三层嵌套。
html:
- <h1>大标题</h1>
- <h2>中标题</h2>
- <h3>小标题</h3>
- <h3>小标题</h3>
- <h2>中标题</h2>
- <h3>小标题</h3>
- <h3>小标题</h3>
- <h1>大标题</h1>
- <h2>中标题</h2>
- <h3>小标题</h3>
- <h3>小标题</h3>
- <h2>中标题</h2>
- <h3>小标题</h3>
- <h3>小标题</h3>
css:
- h1::before{
- content:counter(h1)'.';
- }
- h1{
- counter-increment:h1;
- counter-reset:h2;
- }
- h2::before{
- content:counter(h1) '-' counter(h2);
- }
- h2{
- counter-increment:h2;
- counter-reset:h3;
- }
- h3::before{
- content:counter(h1) '-' counter(h2) '-' counter(h3);
- }
- h3{
- counter-increment:h3;
- }
1.大标题
1-1中标题
1-1-1小标题
1-1-2小标题
1-2中标题
1-2-1小标题
1-2-2小标题
2.大标题
2-1中标题
2-1-1小标题
2-1-2小标题
2-2中标题
2-2-1小标题
2-2-2小标题
最后,css3伪类和伪元素的区别如下:
伪类用于向某些选择器添加特殊的效果。
伪元素用于将特殊的效果添加到某些选择器。
css3的伪(伪类和伪元素)大合集的更多相关文章
- css3 -- 伪类与伪元素
伪类: 1.结构伪类 A:E : first-child{} E : nth-*(n){} E : first-*(even){} E : first-*(odd){} B:nth-child 是根 ...
- CSS3伪类和伪元素的特性和区别
前端er们大都或多或少地接触过CSS伪类和伪元素,比如最常见的:focus,:hover以及<a>标签的:link.visited等,伪元素较常见的比如:before.:after等. 其 ...
- CSS3伪类和伪元素
作为一个CSS3初学不久者来说,很容易混淆单冒号(:)和双冒号(::)的用法,以为两者可以互换着来使用.我自己之前也混淆过他们,因为两者看起来太相像了,就像孪生兄弟.但实际上,他们的区别还是挺大的,最 ...
- css3怎么分清伪类和伪元素
伪类用于向某些选择器添加特殊的效果. 伪元素用于将特殊的效果添加到某些选择器. 伪类有::first-child ,:link:,vistited,:hover,:active,:focus,:lan ...
- CSS3伪类和伪元素的特性和区别尤其是 ::after和::before
伪类和伪元素的理解 官方解释: 伪类一开始单单只是用来表示一些元素的动态状态,典型的就是链接的各个状态(LVHA).随后CSS2标准扩展了其概念范围,使其成为了所有逻辑上存在但在文档树中却无须标识的“ ...
- ::before ::after CSS3中的伪类和伪元素
::before和::after伪元素的用法 一.介绍 css3为了区分伪类和伪元素,伪元素采用双冒号写法. 常见伪类——:hover,:link,:active,:target,:not(),:fo ...
- 妙味css3课程---1-2、css3中新增的伪类和伪元素有哪些
妙味css3课程---1-2.css3中新增的伪类和伪元素有哪些 一.总结 一句话总结: 1.div:target{}是什么意思? 比如a标签的锚点链接到div,div:target{}就可以找到这个 ...
- CSS3伪类与伪元素的区别及注意事项
CSS中伪类与伪元素的概念是很容易混淆的 今天就来谈谈伪类与伪元素之间的区别 定义 首先先来看看伪类与伪元素的定义 w3c中对于它们是这么解释的 伪类:用于向某些选择器添加特殊的效果 伪元素:用于将特 ...
- CSS3 动态生成内容(在Web中插入内容)====CSS的伪类或者伪元素
# css3 .类:伪类::伪元素 /* CSS3伪元素/伪类 :https://www.w3.org/TR/css3-selectors/#selectors ::selection 伪元素(F12 ...
随机推荐
- MySql向SQLServer迁移常见问题
-- MySql与SQLServer update inner join语法区别-- MySql: UPDATE A LEFT JOIN B ON A.B_ID = B.B_ID SET A.A_NA ...
- RedHat OpenShift QuickStart 1.2
一.在容器中传入/出文件 1. 创建一个初始化项目 oc login -u developer -p developer oc new-project myproject 2. 在容器中下载文件 先通 ...
- tensorflow非线性回归(03-1)
这个程序为简单的三层结构组成:输入层.中间层.输出层 要理清各层间变量个数 import numpy as np import matplotlib.pyplot as plt import tens ...
- tcp连接建立和断开
TCP协议作为传输层主要协议之一,具有面向连接,端到端,可靠的全双工通信,面向字节流的数据传输协议. 1.TCP报文段 虽然TCP面试字节流,但TCP传输的数据单元却是报文段.TCP报文段分为TCP首 ...
- SignalR Connection has not been fully initialized
在使用 SignalR 过程中遇到 SignalR: Connection has not been fully initialized. Use .start().done() or .start( ...
- :before 与 :after
http://justcoding.iteye.com/blog/2032627 网址
- Python开发之Anconda环境搭建
Python的强大之处在于它的应用范围广泛,遍及人工智能.科学计算.web开发.系统运维.大数据及云计算等,实现其强大功能的前提,就是Python具有数量庞大且功能相对完善的标准库和第三方库.通过对库 ...
- 126、Java面向对象之引用传递实例四,修改类成员的属性值
01.代码如下: package TIANPAN; class Message { private String info = "此内容无用"; // 定义String类型属性 p ...
- 7.Varnish
概述 Varnish处理HTTP请求的过程大致分为如下几个步骤: 1> Receive状态:请求处理入口状态,根据VCL规则判断该请求应该Pass或Pipe,还是进入Lookup ...
- JMeter配置JDBC测试SQL Server/MySQL/ORACLE
一.配置SQL Server 1.下载sql驱动,将sqljdbc4.jar放到JMeter安装目录/lib下. 2.启动JMeter,右键添加->配置文件->JDBC Connectio ...