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功能。只需在适当的情况下使用它,并注意所产生的内容仍然具有的可访问性影响。

相关专题

更多
Java 项目构建与依赖管理(Maven / Gradle)
Java 项目构建与依赖管理(Maven / Gradle)

本专题系统讲解 Java 项目构建与依赖管理的完整体系,重点覆盖 Maven 与 Gradle 的核心概念、项目生命周期、依赖冲突解决、多模块项目管理、构建加速与版本发布规范。通过真实项目结构示例,帮助学习者掌握 从零搭建、维护到发布 Java 工程的标准化流程,提升在实际团队开发中的工程能力与协作效率。

3

2026.01.12

c++主流开发框架汇总
c++主流开发框架汇总

本专题整合了c++开发框架推荐,阅读专题下面的文章了解更多详细内容。

97

2026.01.09

c++框架学习教程汇总
c++框架学习教程汇总

本专题整合了c++框架学习教程汇总,阅读专题下面的文章了解更多详细内容。

53

2026.01.09

学python好用的网站推荐
学python好用的网站推荐

本专题整合了python学习教程汇总,阅读专题下面的文章了解更多详细内容。

139

2026.01.09

学python网站汇总
学python网站汇总

本专题整合了学python网站汇总,阅读专题下面的文章了解更多详细内容。

12

2026.01.09

python学习网站
python学习网站

本专题整合了python学习相关推荐汇总,阅读专题下面的文章了解更多详细内容。

19

2026.01.09

俄罗斯手机浏览器地址汇总
俄罗斯手机浏览器地址汇总

汇总俄罗斯Yandex手机浏览器官方网址入口,涵盖国际版与俄语版,适配移动端访问,一键直达搜索、地图、新闻等核心服务。

84

2026.01.09

漫蛙稳定版地址大全
漫蛙稳定版地址大全

漫蛙稳定版地址大全汇总最新可用入口,包含漫蛙manwa漫画防走失官网链接,确保用户随时畅读海量正版漫画资源,建议收藏备用,避免因域名变动无法访问。

432

2026.01.09

php学习网站大全
php学习网站大全

精选多个优质PHP入门学习网站,涵盖教程、实战与文档,适合零基础到进阶开发者,助你高效掌握PHP编程。

49

2026.01.09

热门下载

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

精品课程

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

共18课时 | 4.4万人学习

SciPy 教程
SciPy 教程

共10课时 | 1.1万人学习

Bootstrap 5教程
Bootstrap 5教程

共46课时 | 2.9万人学习

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

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