视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
你必须了解的三个CSS小技巧
2020-11-27 18:51:53 责编:小采
文档

各种浏览器之间的竞争的白热化意味着越来越多的人现在开始使用那些支持最新、最先进的W3C Web标准的设备,以一种更具交互性的方式来访问互联网。这意味着我们终于能够利用更强大更灵活的CSS来创造更简洁,更好维护的浏览器前端代码。现在让我们来看一看一些也许你还不知道的让人兴奋的CSS 功能。

在CSS中用attr()显示HTML属性值

attr()功能早在CSS 2.1标准中就已经出现,但现在才开始普遍流行。它提供了一个巧妙的方法在CSS中使用HTML标签上的属性,在很多情况下都能帮你省去了以往需要Javascript处理的过程。

要想使用这个功能,你需要用到三种元素:一个:before:after CSS伪类样式, .content属性,和一个带有你想使用的HTML属性名称的attr()表达式。例如,想去显示<h3>标题上的data-prefix属性的值,你可以写成这样:

h3:before {
 content: attr(data-prefix) " ";
 }

 <h3 data-prefix="Custom prefix">This is a heading</h3>

显然,这个例子并没有展示它有多大用处,只是展示了它的基本用法。让我们来试一个更有用的例子,attr()的一个极好的应用就是当用户打印页面时将页面链接显示出来。为了实现这个,你可以这样写:

@media print {
 a:after {
 content: " (link to " attr(href) ") ";
 }
 }

 <a href="example.com">Visit our home page</a>

一旦你知道了这个技巧,你就会吃惊于很多时候它能给你的工作带来的方便!

提示:在新版的CSS3标准中,attr()功能被扩展,可以用在各种CSS标记中。在CSS2.1中attr()总是返回一个字符串。在CSS3中attr()可以返回多种不同的类型。

使用counter()在列表中自动添加序号

另外一个在CSS 2.1在就已经支持的功能是counter(),使用它,你能方便的在页面标题,区块和其它各种连续出现的页面内容上添加序号。有了它,你就不必于只能使用<ol>来实现这个效果,你可以更灵活的在页面上使用自定义数字序列。

counter-reset定义和用法

counter-reset 属性设置某个选择器出现次数的计数器的值。默认为 0。

利用这个属性,计数器可以设置或重置为任何值,可以是正值或负值。如果没有提供 number,则默认为 0。

注释:如果使用 "display: none",则无法重置计数器。如果使用 "visibility: hidden",则可以重置计数器。

注释:如果已规定 !DOCTYPE,那么 Internet Explorer 8 (以及更高版本)支持 counter-reset 属性。

counter-reset可能的值

描述
none默认。不能对选择器的计数器进行重置。
id number

id 定义重置计数器的选择器、id 或 class。

number 可设置此选择器出现次数的计数器的值。可以是正数、零或负数。

inherit规定应该从父元素继承 counter-reset 属性的值。


关键就是它真的很简单:在:before伪类里的content属性加入counter():

body {
 counter-reset: heading;
 }

 h4:before {
 counter-increment: heading;
 content: "Heading #" counter(heading) "."; 
 }

如果你想知道更多关于这个counter归零和自增方法的知识,请参考关于这个主题的Mozilla
Developer Network页面。里面有个极好的如何使用嵌套counter的例子。

使用calc()做算术

最后,但不是最不重要的,让我们来说说calc()功能。calc是英文单词calculate(计算)的缩写,是css3的一个新增的功能,用来指定元素的长度。这个函数能让你执行简单的算术计算,例如计算元素的长宽,免去了你写不易维护的Javascript代码。这个函数支持所有简单的基本算术运算,包括加减乘除。

表达式中有“+”和“-”时,其前后必须要有空格,如"widht: calc(12%+5em)"这种没有空格的写法是错误的;表达式中有“*”和“/”时,其前后可以没有空格,但建议留有空格。浏览器对calc()的兼容性还算不错,在IE9+、FF4.0+、Chrome19+、Safari6+都得到较好支持,同样需要在其前面加上各浏览器厂商的识别符,不过可惜的是,移动端的浏览器大部分还不支持,目前仅有“firefox for android 14.0”支持。

比方说,你想创建一个元素,使它的宽度占满它的父元素,但还要留出一部分像素宽做其它用处:

.parent {
 width: 100%;
 border: solid black 1px;
 position: relative;
 }

 .child {
 position: absolute;
 left: 100px;
 width: calc(90% - 100px);
 background-color: #ff8;
 text-align: center;
 }

漂亮吧,不是吗?

我们可以越来越清楚的发现,CSS已经成熟到在某些方法可以替代javascript,极大的简化了web开发人员的工作。如果你还不开始利用这些功能,那只能说是在犯傻。

下载本文
显示全文
专题