0

0

CSS生成的内容技术

巴扎黑

巴扎黑

发布时间:2017-06-28 14:14:40

|

1526人浏览过

|

来源于php中文网

原创

介绍

该content物业是在CSS 2.1引入生成的内容添加到:before和:after伪元素。所有主流浏览器(Firefox 1.5+,Safari 3.5+,IE 8+,Opera 9.2+,Chrome 0.2+)都支持此功能。此外,歌剧9.5+支持在内容属性的所有元素,而不仅仅是:before和:after伪元素。

在CSS 3生成内容工作草案中,该content属性已添加了更多功能 - 例如,可以在文档周围插入和移动内容以创建脚注,尾注和部分注释。但是没有浏览器实现了扩展的功能content。

在本文中,我们将介绍使用生成的内容的基础知识,然后分析出可以使用它们的具体技术。

几个警告

立即学习前端免费学习笔记(深入)”;

在我们深入了解这个主题之前,值得指出的是生成的内容

只能在启用了CSS的现代浏览器中工作

不通过DOM可用。这是纯粹的表现形式。具体来说,从可访问性的角度来看,当前的屏幕阅读器不支持生成的内容。

生成的内容 - 基础知识

content 是这样使用的:

h2:before {

content: "some text";

}

这将在页面上每个元素的开始之前插入“一些文本” h2。

而不是输入content属性的文本值,还可以使用属性值attr(),如下所示:

a:after {

content: attr(href)

}

这将在a元素href结束后插入每个元素的内容。

请注意,在引用它时需要使用不带引号的属性名称attr()。

您也可以使用counter或使用插入图像生成动态数字url(/path/to/file)。我们来看一些例子。

用计数器编号内容

如果要在重复的元素序列中插入增量值,例如问题1,问题2,问题3,则可以使用计数器增加计数器值,然后使用content以下方式显示计数:

ol {

列表样式类型:无;

计数器重置:分段计数器

}

li:before {

内容:“章”柜台(摊位);

反增量

}

在第一条规则中,使用该counter-reset属性将计数器重置为1 。在第二个规则中,每个li元素都有一个打印出来的字符串,其中X是计数器的当前值。第二条规则中的最后一个属性 - 将计数器的值增加1,然后再转到列表中的下一个元素。Chapter Xsectioncountercounter-incrementsectioncounterli

如果您正在插入计数器的内容,请注意,如果该元素已display:none指定,它们将不会递增。

当然,在不支持此CSS功能的浏览器中,不会显示编号。这样会让您感到困惑,如果您的网页中的某个地方,请参阅第十章以了解更多详细信息。这是生成内容纯粹是装饰性的或内容的实际部分之间的细微差别,它应该写在实际的HTML中。

我已经写了一个演示来说明创建带有生成内容的计数器。有关此主题的更多细节,请阅读David Storey关于使用CSS计数器自动编号的优秀文章。

为多语言内容插入正确的引号

不同的语言使用不同的字符进行引号。英文报价将写为:

“只有有人让你做到这一点,

挪威语的引用是用这种方式写的:

«Hvis du forteller meg nok en vits,såskal jegslådeg til jorden»»

而不是在HTML中使用带有硬编码引号的简单文本,您可以使用该q元素

It’s only work if somebody makes you do it

Hvis du forteller meg nok en vits, så skal jeg slå deg til jorden.

并指定适合您CSS中每种语言的引号

/* Specify quotes for two languages */

Logo Diffusion
Logo Diffusion

利用生成式AI技术,在几秒钟内创建Logo

下载

:lang(en) > q { quotes: '“' '”' }

:lang(no) > q { quotes: "«" "»"}

/* Insert quotes before and after element content */

q:before { content: open-quote }

q:after  { content: close-quote }

您可以将这种技术用于任何元素,而不仅仅是q(尽管这是最明显和语义的用途)。请注意,Safari 3(及以下)和IE 7(及以下)不支持quotes属性。

查看我的报价插件演示,看看这个在行动。

用图像替换文本

有几种图片替换技术,你可以使用,每个都有自己的优点和缺点。这是使用图像替换文本的另一种方法content。

div.logo {

内容:网址(logo.png);

}

使用此技术进行图像替换的优点在于它可以真正替代文本。因此,您不必诉诸于使用height和width创建图像的空间,text-indent或padding隐藏原始文本。

但是,有一些缺点:

您不能重复图像,或使用图像精灵

它将仅适用于Opera 9.5+,Safari 4+,Chrome,它支持content所有选择器上的url作为价值的属性,而不仅仅是:before或:after

没有办法使用这种方法来包含替代文本,因此屏幕阅读器将无法理解您的内容替换图像。

要了解更多信息,请使用内容查看我的图像更换演示。

显示链接图标

您可以使用内容属性的属性选择器根据其所属的文件格式或外部文件格式在链接之后渲染图标。

a[href $='.pdf']:after {

content:url(icon-pdf.png);

}

a[rel="external"]:after {  /* You can also use a[href ^="http"]:after */

content:url(icon-external.png);

}

所述第一规则使用与子串匹配一个CSS3选择- href $='.pdf'意味着href具有属性.pdf在端部的值的。

由于正则表达式,^并$分别指字符串的开始和结束。使用CSS 3 子字符串匹配属性选择器,[attribute^=value]并[attribute$=value]允许您匹配属性内容以指定值开始或结束的[attribute*=value]元素,同时选择该属性中任何位置的元素。

这是一个在链接上显示PDF和外部图标的演示。

使用属性值作为内容

我们已经提到,content: attr(val)允许您在屏幕上显示元素属性的值。这可以用很多有用的方式使用 - 这里有几个例子。

打印CSS中的URL /缩写

正如文章中提到要打印在相隔列表,您可以使用生成的内容一旦他们打印出来,可以丰富您的页面。例如,在打印CSS中打印以下链接的URL:

a:after {

content: "(" attr(href) ")";

}

您可以使用相同的方法来打印abbr元素的扩展。只需将以下内容添加到您的打印样式表中:

abbr:after {

内容:“(”attr(title)“)”;

}

查看我的打印URL和缩写扩展演示,了解更多信息。

展望未来:attr()CSS3 强大

的CSS3值和单位草案扩展的范围attr()表达-在除了返回字符串,它也可以返回值,如单元类型的CSS颜色,CSS整数,长度,角度,时间,频率,以及其它单元。

除了自定义数据属性,这可以真正强大的渲染简单的图表,图形和动画。例如,我们可以根据属性值设置元素的背景颜色。这可能在在Web上显示调色板的应用程序中有用。我们还可以根据自定义数据属性中设置的值指定元素的大小 - 例如,条形图中条形的长度可以由表示条形的元素的属性设置。不幸的是,这个功能是低优先级的,不久之后就不会很快完成。

结论

希望这篇文章能够让您更好地了解该content属性,以及您可以使用该属性。鉴于IE 8现在也支持content,所以我们真的很清楚,在我们的生产工作中可以使用这个CSS功能。只需在适当的情况下使用它,并注意所产生的内容仍然具有的可访问性影响。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
go语言 注释编码
go语言 注释编码

本专题整合了go语言注释、注释规范等等内容,阅读专题下面的文章了解更多详细内容。

2

2026.01.31

go语言 math包
go语言 math包

本专题整合了go语言math包相关内容,阅读专题下面的文章了解更多详细内容。

1

2026.01.31

go语言输入函数
go语言输入函数

本专题整合了go语言输入相关教程内容,阅读专题下面的文章了解更多详细内容。

1

2026.01.31

golang 循环遍历
golang 循环遍历

本专题整合了golang循环遍历相关教程,阅读专题下面的文章了解更多详细内容。

0

2026.01.31

Golang人工智能合集
Golang人工智能合集

本专题整合了Golang人工智能相关内容,阅读专题下面的文章了解更多详细内容。

1

2026.01.31

2026赚钱平台入口大全
2026赚钱平台入口大全

2026年最新赚钱平台入口汇总,涵盖任务众包、内容创作、电商运营、技能变现等多类正规渠道,助你轻松开启副业增收之路。阅读专题下面的文章了解更多详细内容。

76

2026.01.31

高干文在线阅读网站大全
高干文在线阅读网站大全

汇集热门1v1高干文免费阅读资源,涵盖都市言情、京味大院、军旅高干等经典题材,情节紧凑、人物鲜明。阅读专题下面的文章了解更多详细内容。

73

2026.01.31

无需付费的漫画app大全
无需付费的漫画app大全

想找真正免费又无套路的漫画App?本合集精选多款永久免费、资源丰富、无广告干扰的优质漫画应用,涵盖国漫、日漫、韩漫及经典老番,满足各类阅读需求。阅读专题下面的文章了解更多详细内容。

67

2026.01.31

漫画免费在线观看地址大全
漫画免费在线观看地址大全

想找免费又资源丰富的漫画网站?本合集精选2025-2026年热门平台,涵盖国漫、日漫、韩漫等多类型作品,支持高清流畅阅读与离线缓存。阅读专题下面的文章了解更多详细内容。

19

2026.01.31

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
CSS3 教程
CSS3 教程

共18课时 | 5万人学习

SciPy 教程
SciPy 教程

共10课时 | 1.3万人学习

Bootstrap 5教程
Bootstrap 5教程

共46课时 | 3.1万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号