我想设置<pre>
块中单个单词的颜色(粗略地说,用于显示带有语法突出显示的代码)。不推荐使用该<font>
标签以支持使用 CSS,这很公平;什么是必需的语法?特别是,单词应该包含在什么元素中?我以前曾经<div>
为 CSS 样式标记文本块,但这似乎只适合标记完整的段落。
5 回答
您应该使用最简单、最通用的内联元素:<span>
. 对于每种类型的标记,为跨度指定一个或多个适当的类。例如:
<span class="type">int</span>
<span class="name">foo</span>
<span class="op">=</span>
<span class="number literal">42</span>
更新: StackOverflow 也进行代码高亮——上面的代码被高亮了!它的 HTML 是什么样的?查看源 HTML 显示第一行使用突出显示
<span class="tag"><span</span>
<span class="pln"> </span>
<span class="atn">class</span>
<span class="pun">=</span>
<span class="atv">"type"</span>
<span class="tag">></span>
<span class="pln">int</span>
<span class="tag"></span></span>
// and it goes on
使用带有样式属性的跨度。像:
This is a <span style="color:#f00;">sentence</span>.
此 HTML 元素是用于表达内容的通用内联容器,它本身并不代表任何内容。它可用于对元素进行分组以进行样式化(使用 class 或 id 属性),或者因为它们共享属性值,例如 lang。只有在没有其他语义元素是合适的时候才应该使用它。
<span>
非常像一个<div>
元素,但<div>
它是一个块级元素,而 a<span>
是一个内联元素。
使用<span class="red">text</span>
和一些基本的 CSS,比如.red { color: red; }
编辑:注意类名“red”不是一个好习惯
这里没有标记魔法:您可以使用任何内联标记,并且您可以在 CSS 中执行魔法(着色或其他格式)。从技术上讲,并非所有的内联标记在内部都是有效的pre
,但浏览器并不真正关心。更重要的是,一些内联标记具有一些默认呈现或功能。
如果您不想要任何默认渲染,您可以使用a
or font
orspan
标记,当它们没有属性并且没有样式时,它们对任何东西都没有影响。如果您想要一些默认呈现,您可以使用相应的标记(如果存在),例如b
粗体或u
下划线。这意味着即使不使用您的样式表,也会应用一些特殊的表示。
span
正如其他答案中所建议的那样,大多数人决定使用 just 。这很简单,没有人可以声称它有“错误的语义”,因为它没有。但真正的魔力在于 CSS,您使用标记只是将某些字符序列区分为一个元素,以便可以将其设置为一个单元。
font
与您可能听到的大多数人所说的相反,当您真正进行一些字体设置时,使用它并没有本质上的错误。但是像<font color=red>
. 如果您有大量这样的标签,而您的老板、客户或妻子告诉您使用不同的红色阴影,您将不得不更改无数标签,可能在几十个文件中。但是,如果您编写了<font class=keyword>
or <a class=keyword>
,或者,如果您愿意,<span class=keyword>
并且您使用在所有 HTML 文件中引用的 CSS 文件,则只需更改该 CSS 文件中的一个值。