css伪类元素加在元素前,CSS伪类:before在元素之前 :after 在元素之后实例讲解

本教程简单的介绍一下关于CSS伪类:before, :after详解,有需要了解的朋友可以参考一下下。

:before 伪元素在元素之前添加内容

这个伪元素允许创作人员在元素内容的最前面插入生成内容。默认地,这个伪元素是行内元素,不过可以使用属性 display 改变这一点。

:after 伪元素在元素之后添加内容

这个伪元素允许创作人员在元素内容的最后面插入生成内容。默认地,这个伪元素是行内元素,不过可以使用属性 display 改变这一点。

复制代码代码如下:

伪类导个航..

/*css部分, 留意其中border, margin, left, right的取值*/

body{background:#EEE;margin:0px;padding:0px;font-size:14px;font-family:Microsoft Yahei;color:#FFF;}

#nav_demo{overflow:hidden;width:520px;margin:100px auto 0px;}

#nav_demo span{float:left;position:relative;padding:0px 10px;height:30px;line-height:30px;margin-left:20px;cursor:pointer;}

.shenzhen{background:#4FA3DA;}

.guangzhou{background:#666912;}

.shanghai{background:#9B44BC;}

.beijing{background:#9B2222;}

.chengdu{background:#804B12;}

.shenzhen:hover{background:#387399;}

.guangzhou:hover{background:#4B4D0E;}

.shanghai:hover{background:#692A81;}

.beijing:hover{background:#711A1A;}

.chengdu:hover{background:#59390E;}

.shenzhen:before,.shenzhen:after,.guangzhou:before,.guangzhou:after{

border-style:solid;

border-width:15px 10px;

content:"";

height:0;

position:absolute;

top:0;

width:0;

}

.shenzhen:before{border-color:#4FA3DA #4FA3DA transparent transparent;left:-20px;}

.guangzhou:before{border-color:#666912 #666912 transparent transparent;left:-20px;}

.shenzhen:after{border-color:transparent transparent #4FA3DA #4FA3DA;right:-20px;}

.guangzhou:after{border-color:transparent transparent #666912 #666912;right:-20px;}

.shenzhen:hover:before{border-color:#387399 #387399 transparent transparent;left:-20px;}

.guangzhou:hover:before{border-color:#4B4D0E #4B4D0E transparent transparent;left:-20px;}

.shenzhen:hover:after{border-color:transparent transparent #387399 #387399;right:-20px;}

.guangzhou:hover:after{border-color:transparent transparent #4B4D0E #4B4D0E;right:-20px;}

#tips{float:right;margin-right:200px;margin-top:20px;color:#8BA612;width:280px;background:#333;border:solid 1px #000;padding:5px 10px;}

#header{position:absolute;top:0px;width:100%;height:30px;line-height:30px;background:#333;border-bottom:solid 1px #000;}

#header span{padding-left:30px;padding-right:10px;}

#header a{text-decoration:none;color:#8BA612;}

#header a:hover{text-decoration:underline;}

#footer{position:absolute;bottom:0px;width:100%;text-align:center;height:30px;line-height:30px;background:#333;border-top:solid 1px #000;}

#footer a{color:#8BA612;text-decoration:none;padding-left:5px;}

#footer a:hover{text-decoration:underline;}

Tips: 你用IE6 IE7, 那就活该你看不到效果...

上面积实例,下面我们来一下介绍一下

复制代码代码如下:

8.29 深圳

9.10 广州

10.15 上海

11.12 北京

12.10 成都

css部份

复制代码代码如下:

/*css部分, 留意其中border, margin, left, right的取值*/

#nav_demo{margin-top:20px;margin-left:20px;font-size:12px;font-family:Microsoft Yahei;overflow:hidden;}

#nav_demo span{float:left;color:#FFF;position:relative;padding:0px 10px;height:30px;line-height:30px;margin-left:20px;cursor:pointer;}

.shenzhen{background:#4FA3DA;}

.guangzhou{background:#666912;}

.shanghai{background:#9B44BC;}

.beijing{background:#9B2222;}

.chengdu{background:#804B12;}

.shenzhen:hover{background:#387399;}

.guangzhou:hover{background:#4B4D0E;}

.shanghai:hover{background:#692A81;}

.beijing:hover{background:#711A1A;}

.chengdu:hover{background:#59390E;}

.shenzhen:before,.shenzhen:after,.guangzhou:before,.guangzhou:after{

border-style:solid;

border-width:15px 10px;

content:"";

height:0;

position:absolute;

top:0;

width:0;

}

.shenzhen:before{border-color:#4FA3DA #4FA3DA transparent transparent;left:-20px;}

.guangzhou:before{border-color:#666912 #666912 transparent transparent;left:-20px;}

.shenzhen:after{border-color:transparent transparent #4FA3DA #4FA3DA;right:-20px;}

.guangzhou:after{border-color:transparent transparent #666912 #666912;right:-20px;}

/* 伪类可以像下边这样叠加使用...*/

.shenzhen:hover:before{border-color:#387399 #387399 transparent transparent;left:-20px;}

.guangzhou:hover:before{border-color:#4B4D0E #4B4D0E transparent transparent;left:-20px;}

.shenzhen:hover:after{border-color:transparent transparent #387399 #387399;right:-20px;}

.guangzhou:hover:after{border-color:transparent transparent #4B4D0E #4B4D0E;right:-20px;}

【第1个条件出现了 – :before, :after伪类可以在不增加html代码量得情况下, 为元素增加效果】

说到了其中的伪类before,after. 正如其单词含义, 就是在作用的元素前, 或者后实现某些效果. 但是在兼容性上会有一些问题, IE8, IE8+, Chrome, Safari, Firefox.

【第2个条件 – border在宽高为0的元素上, 四个方向都是三角形】

很早之前看到过用纯css来实现一个折角的效果. 其实也是用的css中border的特性.

各位可以自己测试下, 给一个宽高都为0的元素加一个很宽的border, 同时, 给border的四个方向分别设置不同的颜色值. 之后会发现, border的上下左右都是三角形(这里是在宽高为0的情况下, 测试用.并不是说边框就是三角形..??~~). 也就是说, border四个方向的边框之间斜面紧密连接的.

【第3个条件 – border-color四个参数可以设置相邻两边透明, 另外两边同色, 即可出现三角形】

之后, border-color的属性值中有一个transparent(透明), 就像margin的定义一样, border-color有四个参数, 分别代表上, 右, 下, 左的颜色值. 这样只要将相邻两边的颜色设置为透明, 另外两边的颜色设置为相同颜色, 就会出现一个三角形.

在之后, 三角形的大小如何控制. 务必留意宽高为0的元素, 其大宽度边框的样子. 上下边框的和是元素实际的高度, 左右边框的和是元素的实际宽度, 所以, 不要惯性思维, 把一个边的宽高当做是实际的宽高. 这样计算的结果就会让人比较不解了..

下边这个很难看的demo是一个宽高为0的元素border

上边框: 80px #387399

右边框: 60px #4B4D0E

下边框: 40px #692A81

左边框: 20px #711A1A

【第4个条件 – 合理控制高度, 宽度】

css代码最上边有句注释, 说是要留意那几个值(border, margin, left, right). 原因在于, 需要让三角形跟内容部分高度一致, 同时还不会被旁边的元素盖住. 这就要计算一下了.

了解上边对border高度宽度的解释, 然后内容部分建议指定高度, 而不是用padding来撑开, 原因在于, 文字部分的高度因字体的不一致而有所不同, 很难精确控制高度. 当然, 如果阁下对字体研究的透彻程度已经达到惨绝人寰的程度, 那也可以试试..

before和after伪类的使用会占据一定的空间, 所以, 需要计算border的实际宽度, 然后将元素之间的间距, 适当增大, 至少增大到border的宽度(避免被后边的元素盖住三角形区域, 当然, 还有其他办法避免这种问题. 这里只是一提).

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/304168.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

云计算的关键特点及挑战

本文节选自《云计算:实现、管理与安全》导言 云计算的关键特点 一个云计算环境有几个关键特点。服务经常提供给特定 的看到因他们的资本支出最小化而获益的消费者和小企业。 这有助于降低在市场进入门槛,因为用来提供这些产品的基础设施由云服务提供商拥…

Mock 框架 Moq 的使用

Mock 框架 Moq 的使用IntroMoq 是 .NET 中一个很流行的 Mock 框架,使用 Mock 框架我们可以只针对我们关注的代码进行测试,对于依赖项使用 Mock 对象配置预期的依赖服务的行为。Moq 是基于 Castle 的动态代理来实现的,基于动态代理技术动态生成…

凝思系统改时间_国产操作系统往事:四十年激变,终再起风云

在这一轮技术浪潮中,无论是底层的开发生态,算力的硬件基础,还是五花八门的商业化落地场景,中国企业都有着毋庸置疑的话语输出能力。而另一个全民皆知、中国ICT产业的长期阵痛——国产操作系统,也在2019世界人工智能大会…

程序员必知的 Python 陷阱与缺陷列表

我个人对陷阱的定义是这样的:代码看起来可以工作,但不是以你“想当然“”的方式。如果一段代码直接出错,抛出了异常,我不认为这是陷阱。比如,Python程序员应该都遇到过的“UnboundLocalError”, 示例:>&…

楚乔传手游 服务器维护,楚乔传手游网络异常进不去游戏怎么办?楚乔传网络异常解决方法...

随着楚乔传的大热,手游楚乔传也应运而生,上线后的楚乔传手游版虽然好玩但也出现了许多的BUG和问题,最近有小伙伴说楚乔传手游下载后,打不开一直显示网络异常,但是网都好的,那么楚乔传手游网络异常怎么办?楚…

说说富士康跳楼事件

发生这么多连续悲剧的原因个人认为,除了富士康管理以及员工群体的问题以外,更大的责任还在于媒体的铺天盖地宣传,导致了极强的示范效应。为什么富士康已经存在那么久,之前没有那么多跳楼的,反倒是宣传以后越来越多呢&a…

聊一聊和Nacos 2.0.0对接那些事

前言 nacos 2.0.0 已经发布了 alpha1, alpha2 和 beta 三个版本了,部分测试报告也已经出来了。Nacos2.0.0-ALPHA2 服务发现性能测试报告Nacos 2.0.0-ALPHA2 配置性能测试报告还是比较值得期待的。前段时间也一直在完善 nacos-sdk-csharp 这个项目。主要就是对接 Nac…

网页访问samba服务器,(smbclient) - 交互方式访问samba服务器

smbclient交互方式访问samba服务器补充说明smbclient命令 属于samba套件,它提供一种命令行使用交互式方式访问samba服务器的共享资源。语法smbclient(选项)(参数)选项-B:传送广播数据包时所用的IP地址;-d:指定记录文件所记载事件的…

家用简单电线路图_家庭配电箱接线图解 家用配电箱安装方法

家居装修对水电的关注不可或缺,家庭电路的铺设更是至关重要的环节,其中家庭配电箱安装涉及到家居用电的安全问题。因此,小编特地对家庭配电箱安装的知识,以及家庭配电箱接线图作出相关整理,帮助大家对家庭配电箱有一个…

决策树算法及实现

在计算机科学中,树是一种很重要的数据结构,比如我们最为熟悉的二叉查找树(Binary Search Tree),红黑树(Red-Black Tree)等,通过引入树这种数据结构,我们可以很快地缩小问…

记录一下(session共享的文章,wcf记录一下学习地址,Firebug)

Firebug现在感觉还不错 http://www.cnblogs.com/jzywh/archive/2008/11/02/sharesession.html http://www.cnblogs.com/igtea/archive/2009/02/03/1382825.html http://www.cnblogs.com/artech/archive/2007/09/15/893838.html

ElasticSearch+NLog实现.net core分布式日志管理

概述Elasticsearch可广泛应用于日志分析、全文检索、结构化数据分析等多种场景,大幅度降低维护多套专用系统的成本,在开源社区非常受欢迎。在系统中,如果将日志作为文件输出,查看系统日志将非常不便;如果将日志保存到数…

双路服务器只显示一半内存,双路服务器只显示一半内存

双路服务器只显示一半内存 内容精选换一换北京时间1月3日,Intel处理器芯片被曝出存在严重的Meltdown和Spectre安全漏洞,漏洞详情如下:漏洞名称:Intel处理器存在严重芯片级漏洞漏洞编号:CVE-2017-5753、CVE-2017-5715、…

react 最佳入门_miaov-React 最佳入门

node 环境搭建快速安装国内镜像npm i -g nrmnrm use taobao简单介绍 ES6let constlet 不可以被重复声明,而 var 可以箭头函数等效匿名函数没有 argumentsthis 指向了函数所在的上下文环境函数的返回值let a () > {}; console.log(a); // undefined, 误认为返回的…

javascript常用技巧

1. οncοntextmenu"window.event.returnValuefalse" 将彻底屏蔽鼠标右键 <table border οncοntextmenureturn(false)><td>no</table> 可用于Table 2. <body onselectstart"return false"> 取消选…

不想再被鄙视?那就看进来! 一文搞懂 Python 2 字符编码

程序员都自视清高&#xff0c;觉得自己是创造者&#xff0c;经常鄙视不太懂技术的产品或者QA。可悲的是&#xff0c;程序员之间也相互鄙视&#xff0c;程序员的鄙视链流传甚广&#xff0c;作为一个Python程序员&#xff0c;自然最关心的是下面这幅图啦我们项目组一值使用Python…

mysql的外键_mysql如何查看外键

展开全部查看mysql外键方式主要是通过第三方工具或者62616964757a686964616fe4b893e5b19e31333431373233是sql语句&#xff0c;主要有以下三种方式1、使用Navicateformysql&#xff0c;打开数据库、查看数据库表、查看设计表、选择外键选项卡&#xff0c;就可以查看外键2、使用…

循环递归,相互结合,释放数据的价值

随着经济的发展&#xff0c;目前各行各业已经积累了海量的数据&#xff0c;并且还在持续增长&#xff0c;可是这些数据非常杂乱还占空间&#xff0c;因此&#xff0c;如何有效利用它们&#xff0c;达到资源不浪费也就成为了相关工作者的首要思考问题。此时&#xff0c;数据分析…

黄聪:Microsoft Enterprise Library 5.0 系列教程(四) Logging Application Block

企业库日志应用程序模块工作原理图: 从上图我们可以看清楚企业库日志应用程序模块的工作原理,其中LogFilter,Trace Source,Trace Listener,Log Formatter的信息都可以在Category配置文件中反映出来,通过配置文件,调用LogWriter类的Writer方法,就可以将包含日志信息的LogEntry实…

Webapi测试工具WebBenchmark v1.3发布

这个版本更新的内容是统一使用BeetleX的Web SPA 插件作为服务的基础支持功能方便后期功能扩展&#xff0c;修复线程池配置太小引起的测试问题&#xff0c;修复统计显示的BUG。安装工具提供win64和linux64两个版本&#xff0c;可以根据自己需要下载对应系统的运行版本。地址是:h…