伪类用于指定要选择的元素的特殊状态,向其添加特殊的效果,比如:

input {
width: 515px;
height: 50px;
padding: 10px 20px;
border: 1px #fff solid;
font-size: 16px;
box-shadow: 0 0 21px rgba(97, 104, 124, .15);
vertical-align: middle;
}
input:focus{
border-color: #2bb3ee;
}

效果:

给input元素添加一个:focus伪类,当input元素获得焦点时改变其边框颜色,常用于表单输入的美化。

常见的伪类有 :active, :hover, :focus, :first-child, :disabled, :visited, :last-child, :nth-child() 等。

:active 伪类用于匹配被激活的元素,比如点击一个链接时,鼠标按下到松开之间的时间这个链接时激活的。

:hover 伪类用于匹配“悬停”或说“虚指”但是没有被激活的元素,常见案例是鼠标悬停于元素上面触发。需要注意的是:对于触摸屏的设备来说,伪类:hover不一定起作用,所以对于一些很重要的内容,最好不要设计成悬浮才显示!

:focus 伪类用于匹配获得焦点的元素,在设计表单输入时常用,让获得焦点的元素更加突出,使使用者能更快找到输入地方。

:first-child, 用法如 span:first-child 用于匹配所有元素的第一个<span>,听起来有点难理解,举个栗子:

CSS:
span:first-child{
color:red;
} html:
<div>
<span>1</span>
<span>2</span>
</div>

在这里,<span>1</span>会被匹配到,“1”变成红色

:first-child伪类有一个很容易用错的地方就是:

CSS:
span:first-child{
color:red;
} html:
<div>
<a>0</a>
<span>1</span>
<span>2</span>
</div>

在上面的例子中,实际上span:first-child没有匹配到<span>1</span>,因为该例子里面,<span>的父元素<div>的第一个子元素是<a>,所以没有任何元素被匹配到,那如果要匹配<span>1</span>怎么办?用

span:first-of-type就可以了,这个坑在实际应用中还是很容易踩到的,应该注意一下。

:disabled 用于匹配被禁用的元素,比如给所有不可用的按钮(如未填写完时注册按钮不可用)disabled状态添加样式,让它变成灰色。

:visited 用于给已访问过的链接添加特殊的样式。

:last-child,:nth-child()用法和:first-child用法差不远。

伪元素允许给元素的某些部分添加样式。

所有伪元素有  ::before, ::after, ::first-letter, ::first-line, ::selection,其中 ::selection是属于CSS3新增的

伪元素用两个冒号是CSS3中的规定,用于区别 伪类,其实也是可以使用单冒号的,可以兼容过老版本的浏览器

值得注意的是,在伪类和伪元素结合使用时,如div::after:hover是不起效果的,div:hover::after则是有效的

::before 会在当前元素前面插入一个子元素作为伪元素。通过“content”属性来添加一些内容,比如加个箭头、标号什么的。

添加字符串:

CSS:
a:before{
content:"链接:";
} HTML:
<a href="https://home.cnblogs.com/u/maderlzp/">浮生若梦</a>

效果如:链接:浮生若梦

可以利用content的attr()调用当前元素的属性,如:

CSS:
a:before{
content:"("attr(href)")";
} HTML:
<a href="https://home.cnblogs.com/u/maderlzp/">浮生若梦</a>

效果图:

还可以使用url()引用媒体元素

CSS:
a:before{
content:""url(https://pic.cnblogs.com/face/1149666/20170419104717.png)"";
} HTML:
<a href="https://home.cnblogs.com/u/maderlzp/">浮生若梦</a>

效果图:

伪元素 ::after和 ::before用法差不多

比如下图中红框部分效果就可以用 ::after做的

代码如下:

CSS:

a{
position: relative;
top: 41px;
left: 50px;
}
a span::after{
content: '';
position: absolute;
width: 10px;
height: 10px;
bottom: -5px;
left: 27px;
border: 1px solid;
border-color: #E7E9EE #E7E9EE transparent transparent;
-webkit-transform: rotate(135deg);
transform: rotate(135deg);
background: #fff;
}
a:hover span{
display: block;
}
a span{
display: none;
position: absolute;
font-style: normal;
color: #414a60;
width: auto;
top:-38px;
left:-5px;
min-width: 44px;
height: 31px;
line-height: 30px;
padding: 0 10px;
white-space: nowrap;
border: 1px #E7E9EE solid;
text-align: center;
background: #fff;
z-index: 11;
box-shadow: 0 2px 8px rgba(0, 0, 0, .08);
-webkit-box-shadow: 0 2px 8px rgba(0, 0, 0, .08);
} HTML:
<a><b>李雷</b><span>韩梅梅,你在哪里?</span></a>

鼠标悬停显示对话

还可以用来清除浮动、和css3的动画效果做出更多好看的页面等,这就需要发挥自己想象力了

:first-letter 选择器用于选取指定选择器的首字母。

:first-line 选择器用于选取指定选择器的首行。并且 ::first-line 伪元素只能应用在块容器中。

::selection 选择器匹配被用户选取的选取是部分。

::selection 选择器只能应用少量 CSS 属性:color, background-color, cursor, outline, text-decoration, text-emphasis-color和text-shadow。

CSS:

::selection
{
color:#00ff00;
}

应用上面的样式时,选取到的文字就会变成原谅色~~

关于伪类“:pseudo-class”和伪元素“::pseudo-element”的常见应用的更多相关文章

  1. js进阶 10-10 可见伪类选择器和内容伪类选择器的作用

    js进阶 10-10  可见伪类选择器和内容伪类选择器的作用 一.总结 一句话总结:分组来描述.内容伪类选择器就是  四个  包含.可见的伪类选择器就是可见和不可见.查找功能,也就是内容伪类选择器非常 ...

  2. 前端(六)—— 伪类选择器:a标签的伪类、内容伪类、索引伪类、取反伪类

    a标签的伪类.内容伪类.索引伪类.取反伪类 一.a标签的四大伪类 :link:未访问状态 :hover:悬浮状态 :active:活跃状态 :visited:已访问状态 四大伪类也可用于其他标签 &l ...

  3. CSS3 01. CSS3现状、属性选择器、伪类选择器、结构伪类、伪元素选择器、颜色、文本阴影shadow、盒子模型、私有化前缀

    CSS 3 现状 兼容性差,需添加私有前缀/移动端优于PC端/不断改进中/渐进增强原则/考虑用户群体/遵照产品的方案 : CSS3手册 需要阅读其--阅读及使用指引 []表示全部的可选项 || 或者 ...

  4. HTML+CSS教程(五)外联样式、组选择器、圆角边框、样式优先级、伪类、盒子模型、元素溢出

    一.外联样式 通过link标签引入外部css文件夹中的xxx.css文件到head标签中 例: 二. 1.组选择器 选择器名称1,选择器名称2,选择器名称3,…{属性:属性值;属性;属性值} 例: & ...

  5. 用HTML写伪类选择器,结构伪类选择器,伪元素选择器样式

    html,css lorem乱序铭文 Lorem ipsum dolor sit amet, consectetur adipisicing elit. Nesciunt, nihil? Lorem ...

  6. CSS 伪类和伪元素--pseudo

    总结在前: 0. 参考资料 1. 伪类和伪元素是不同的两种东西. 2. 伪类和伪元素都属于CSS选择器. 3. CSS引入伪类和伪元素是为了实现基于文档树之外的信息,i.e. 段落的第一行,的格式化. ...

  7. css中伪类和伪元素的区别

    转载:http://www.cnblogs.com/ihardcoder/p/5294927.html CSS3伪类和伪元素的特性和区别   前端er们大都或多或少地接触过CSS伪类和伪元素,比如最常 ...

  8. (4)《Head First HTML与CSS》学习笔记---文本的CSS规则和盒模型;div与span;<a>元素的链接色;伪类

    1.每个font-family包含一组共同特征的字体.共五个字体系列: sans-serif----这个系列包括了没有衬线的字体,与serif相比,通常认为这个系列更容易在计算机上识读. serif- ...

  9. CSS 中的伪类和伪元素

    伪类(Pseudo classes) 由于状态的变化是非静态的,所以元素达到一个特定状态时,它可能得到一个伪类的样式:当状态改变时,它又会失去这个样式.由此可以看出,它的功能和 class 有些类似, ...

  10. CSS笔记之伪类与伪元素

    伪类分为两种:UI伪类 与 结构化伪类 UI伪类:a:link{}    a:hover{}   a:active{}  a:visited{} input[type='text']:focus{} ...

随机推荐

  1. isspace 对含有中文 的字符串进行检查的时候表现不正常!?

    #include <stdio.h> #include <stdlib.h> #include <string.h> #include <ctype.h> ...

  2. AngularJS 项目里使用echarts 2.0 实现地图功能

    项目中有一页是显示全国地图, echarts官网的地图实例里,有一个模拟迁徙的实例,比较符合项目需求.所以大部分配置项是参考此实例. angular 就不过多介绍了, Google出品的mvc(或者说 ...

  3. bzoj千题计划258:bzoj3123: [Sdoi2013]森林

    http://www.lydsy.com/JudgeOnline/problem.php?id=3123 启发式合并主席树 #include<cmath> #include<cstd ...

  4. bzoj千题计划226:bzoj2763: [JLOI2011]飞行路线

    http://www.lydsy.com/JudgeOnline/problem.php?id=2763 这也算分层图最短路? dp[i][j]到城市i,还剩k次免费次数的最短路 #include&l ...

  5. 用phpStorm的数据库工具来管理你的数据库

    phpStorm是一个功能强大的IDE,不仅对PHP提供了支持,而且对前端HTML.CSS.JavaScript的支持也是非常不错的.此外,phpStorm还集成了很多实用的功能,下面就phpStor ...

  6. HDU 1869 六度分离 最短路

    解题报告: 1967年,美国著名的社会学家斯坦利·米尔格兰姆提出了一个名为“小世界现象(small world phenomenon)”的著名假说,大意是说,任何2个素不相识的人中间最多只隔着6个人, ...

  7. Django之初始庐山真面目

    Django可以说是基于Python语言的一款非常成熟的框架,其功能之强大,应用之广泛,开发之便捷,可以说每一个细节都值得一赞 最重要的是,Django其实是我们学习Python过程中非常重要的部分之 ...

  8. State Estimation for Robotics (Tim Barfoot) exercises Answers

    Here are some exercises answers for State Estimation for Robotics, which I did in June, 2017. The bo ...

  9. 【CTF WEB】XSS-https://alf.nu/alert1

    XSS练习平台 https://alf.nu/alert1 Warmup 1");alert(1)// Adobe 1");alert(1)// JSON </script& ...

  10. mount过程分析之一(基于3.16.3内核)【转】

    转自:https://blog.csdn.net/zr_lang/article/details/39963253 一直想写有些关于文件系统的博文,但是由于近一年来实在太忙,所以没有时间写.前几日赶上 ...