CSS 属性

CSS 属性content用于将元素或伪元素的内容替换为生成的值,以更改显示的输出。

  • 它管理元素的正常呈现方式,或者何时使用图像和相关替代文本来代替元素。

  • 它将内容定义为图片、文本,或者两者都定义,或者在伪元素和边距框的情况下根本不定义内容,从而决定元素是否完全渲染。

  • 匿名替换的元素是使用 content 属性引入的元素。

可能的值

  • none - 直接应用于元素时没有效果;当用于伪元素时,它不会生成伪元素。
  • normal - 页边距框和普通元素具有默认值content,但伪元素(例如::before和::after )计算为 none。
  • <string> - 字符串是封装在匹配的单引号或双引号中的字符序列。在 CSS 中可以连接多个字符串值,而不需要特殊的连接运算符。
  • <image> - CSS 中的可显示图像由<image>表示,它可以作为image-set()、<gradient>、 url()或由element()定义的网页本身的一部分给出功能。
  • <counter> - 在 CSS 中,计数器通常是数字并通过<counter-reset>和<counter-increment>属性生成,由 <counter> 值表示,并且可以使用counter()或counters()方法显示。
    • counter() - CSS counter()函数,格式类似于counter(name)或counter(name, style),显示具有指定样式<list-style-type>(默认为十进制)的文本,该样式表示最内层的值在伪元素范围内使用给定名称进行计数器。
    • counters() - CSS counters()函数,以counter(name, string)或counter(name, string, style)形式,生成文本,显示伪元素中具有指定名称的最里面计数器的值,格式为提供的<list-style-type>,默认选择十进制。
  • <quote> - <quote>数据类型中包含根据语言和位置而变化的关键字。
    • open-quote 和 close-quote - 在quotes属性中定义的匹配字符串用于替换这些值。
    • no-open-quote 和 no-close-quote - 不添加内容,但调整引号的嵌套级别,增加或减少它。
  • attr(x) - CSS 函数attr(x)从源或选定元素中检索属性的值,根据文档语言生成空字符串或未解析的字符串。
  • alternative text:/ <string> | <counter> - 在支持它的浏览器中,在<content-list>项中的文本字符串或计数器之前使用正斜杠作为替代文本,这适用于屏幕阅读器,但在不支持的浏览器中可能会被忽略,使用<string>或< counter>指示替代文本。

语法

content = normal | none | [ <content-replacement> | <content-list> ] [ / [ <string> | <counter> ]+ ]? | <element()> 

适用范围

所有元素、遵守树形的伪元素和页边距框

CSS content: 追加字符串

在以下示例中,字符串根据分配的类动态附加到列表项的内容。

<html>
<head>
<style>
   .featured::before {
      content: "Top Pick: ";
      font-weight: bold;
      color: #4CAF50;
   }
   .course-item {
      position: relative;
   }
   .course-item::after {
      content: " Enroll Now!";
      position: absolute;
      bottom: 0;
      right: 0;
      font-style: italic;
      color: #1565c0;
   }
</style>
</head>
<body>
<h2>易学教程</h2>
<ul>
   <li class="featured">CSS 教程</li>
   <li class="course-item">Java 教程</li>
   <li>HTML教程</li>
   <li class="course-item">CSS教程</li>
</ul>
</body>
</html> 

CSS content: 引号

在下面的例子中,引用文本由对比色的引号整齐地框起来,增加了视觉效果。

  • 使用更大的红色引号和浅灰色背景与引用的绿色文本形成对比。

  • 生成的引用类型取决于语言,可以通过将内容属性值设置为 no-open-quote 和no-close-quote,或两者都为 none,或者将quotes 属性设置为 none。

<html>
<head>
  <style>
   q {
      color: #008000;
   }
   q::before,
   q::after {
      font-size: larger;
      color: #800000;
      background: #f0f0f0;
   }
   q::before {
      content: open-quote;
   }
   q::after {
      content: close-quote;
   }
</style>
</head>
<body>
<h1>欢迎来到我的网站</h1>
<p>Albert Einstein once said, <q cite="https://www.brainyquote.com/quotes/albert_einstein_133991"> 知识的唯一来源是经验。</q> 让我们拥抱我们的经验并从中学习以获得智慧。</p>
<p lang="de-de"> In einem berühmten Zitat sagte Johann Wolfgang von Goethe, <q lang="de-de"> Man sieht nur das, was man weiß. </q>. This reminds us that knowledge shapes our perception.</p>
<p>As we navigate the vast sea of information on the internet,<q> It's crucial to distinguish between knowledge and misinformation.</q> Let's be discerning in our digital journeys.</p>
<p lang="es-es"> En palabras de Pablo Picasso, <q lang="es-es"> La inspiración existe, pero tiene que encontrarte trabajando. </q>. True creativity often comes from the dedication to our craft.</p>
<footer><p>Stay curious and keep exploring the depths of knowledge!</p></footer>
</body>
</html> 

CSS content: 将文本添加到列表项计数器

  • 以下示例使用夹在两个 <strings> 之间的计数器来为其中的列表项创建详细标记。

  • 在此示例中,通过在两个 <strings> 之间放置一个计数器来创建无序列表中列表项的详细标记。

  • 内容中的每个项目都有一个前缀、一个空格、:、冒号,还有另一个空间。在大多数浏览器中,counters() 方法定义一个用句点分隔的数字项目计数器。

<html>
<head>
<style>
   div {
      background-color: #f0f0f0;
      padding: 10px;
      margin: 10px;
      border: 1px solid #ccc;
      border-radius: 5px;
   }
   h2 {
      color: #008080;
   }
   ol {
      counter-reset: chapters;
      margin-left: 4em;
   }
   li {
      counter-increment: chapters;
   }
   li::marker {
      content: "Chapter " counters(chapters, ".", decimal-leading-zero) ": ";
      color: #800000;
      font-weight: bold;
   }
</style>
</head>
<body>
<div>
<h2>Contents</h2>
<ol>
   <li>Introduction</li>
   <li>Part I: The Adventure Starts
      <ol>
         <li>Setting the Scene.</li>
         <li>Getting to know the Characters.</li>
         <li>Revealing Secrets.</li>
      </ol>
   </li>
   <li>Part II: Difficulties Are Ahead.
      <ol>
         <li>Taking On Opponents.</li>
         <li>Getting around in the Dark.</li>
         <li>Gathering Supporters.</li>
      </ol>
   </li>
   <li>Conclusion</li>
</ol>
</div>
</body>
</html> 

CSS content: 具有属性值的字符串

  • 以下示例使用属性选择器来定位安全链接,并专为打印样式表而设计。

  • 使用 ::after 伪值-element,它会在链接内容后面附加 href 属性的值。

  • 生成的内容显示为 URL:[href value],并用括号括起来,这提高了安全链接以适合打印的格式呈现。

<html>
<head>
<style>
   body {
      font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
      background-color: #f8f8f8;
      color: #333;
      margin: 0;
      padding: 0;
   }
   header {
      background-color: #2c3e50;
      color: #ecf0f1;
      padding: 1em;
      text-align: center;
   }
   ul {
      list-style-type: none;
      margin: 0;
      padding: 0;
   }
   li {
      margin: 0.5em 0;
   }
   a {
      text-decoration: none;
      color: #3498db;
      font-weight: bold;
   }
   a:hover {
      color: #e74c3c;
   }
   a[href^="https://"]::after {
      content: " (Explore: " attr(href) ")";
      color: #27ae60;
      font-style: italic;
      font-size: 0.8em;
      margin-left: 0.5em;
   }
</style>
</head>
<body>
<header>
<h1>Web Adventures</h1>
</header>
<nav>
<ul>
   <li><a href="#">Bootstrap</a></li>
   <li><a href="#">HTML</a></li>
   <li><a href="#">CSS</a></li>
   <li><a href="#">Javascript</a></li>
</ul>
</nav>
</body>
</html> 

CSS 自定义: 添加带有替代文本的图像

在以下示例中, a::before 伪元素用于在链接文本之前插入图像。

对于不启用图像渲染的浏览器,它包含占位符图片形式的替代文本和后备材料.

<html>
<head>
<style>
   a::before {
      /* Fallback content */
      content: url("/css/images/css-mini-logo.jpg")
         " - alt text is not supported - ";
      /* 带有替代文本的内容 */
      content: url("/css/images/css-mini-logo.jpg") /
         " VISIT EXAMPLE: ";
      font: italic small-caps 25px/2.5 'Georgia', serif;
      margin-right: 10px; 
   }
</style>
</head>
<body>
  <a href="https://www.yxjc123.com/">易学教程</a>
</body>
</html> 

CSS content: 使用 url() 进行元素替换

在给出的示例中,content: url() CSS 属性用于将 #custom-replacement 元素的内容动态替换为 URL“content.png”提供的图像。此外,如果不允许元素替换,则由 span::after 选择器提供后备,该选择器在括号中显示元素的 ID 属性。

<html>
<head>
<style>
   #custom-replacement {
      height: 300px;
      width: 300px;
      content: url("/css/images/content.png");
   }
   /* 支持元素替换时的后备内容 */
   span::after {
      content: " (ID: " attr(id) ")";
      color: #888;
   }
</style>
</head>
<body>
  <span id="custom-replacement">这个内容被替换!</span>
</body>
</html> 

CSS content: 使用 <gradient> 进行元素替换

在下面的示例中,元素的内容被 CSS 渐变替换,更准确地说,是 Linear-gradient()。

对于同时启用元素内容替换和替代文本的浏览器, @supports规则用于提供替代文本支持并引入repeating-linear-gradient()。

<html>
<head>
<style>
   .container {
      border: 2px solid #e74c3c;
      background-color: #f9e79f;
      min-height: 200px; 
      min-width: 200px; 
      padding: 20px; 
   }
   #altered {
      content: linear-gradient(#3498db, #2ecc71);
   }
   @supports (content: linear-gradient(#000, #fff) / "custom content") {
      #altered {
         content: repeating-linear-gradient(rgba(52, 152, 219, 0.8) 0, #e67e22 20%) /
         "Transformed styling with custom content";
      }
   }
</style>
</head>
<body>
<div class="container" id="altered">点击这里</div>
</body>
</html>