通过css添加文本到dt

时间:2012-07-29 09:35:19

标签: html css

我想制作一个非常密集的dl布局。 dt与后面的dd在同一行。因此需要一些额外的突出显示来将dt与dd分开。在传统的书面文件中,这是通过mdash或冒号完成的。

是否可以通过CSS指定,或者我是否必须根据我选择的样式重写数据?

(h1,h2 ...... - header也存在类似问题。如果仅通过在段落开始的同一行中加粗文本来实现标题,则应在标题文本之后插入句点。在LaTex中有一个额外的命令,但我再次,我想知道CSS是否可以做到这一点。)

(我知道this question,但不确定这是否适用于此。)

编辑:我意识到它对冒号起作用如下,但不适用于mdashes

.myclass dt:after { content: ":"}

3 个答案:

答案 0 :(得分:4)

您可以通过输入em破折号字符来执行此操作,前提是您的字符编码允许并且您知道如何键入它。你可以用例如windows-1252或utf-8。但是,您需要正确声明编码,请参阅http://www.w3.org/International/tutorials/tutorial-char-enc/

为避免编码问题,并且只能使用Ascii字符编写文档,您可以在CSS中使用“反斜杠转义”,例如

dt:after { content: "\2014"; }

(如果你想要文本“ - ”,即em破折号和空格,你需要输入两个空格:"\2014 "。这种奇怪的原因是反斜杠转义消耗了空格后的惯例。)

根据CSS规则,&mdash;没有特殊含义:它只有七个数据字符。即使你将它放在HTML文档的style元素中,旧的HTML规则也不会改变:在解析HTML时,style元素被视为纯文本,其中没有标记被识别,所有字符都是这样被传递给CSS解释,当然除了需要被识别的结束标记</style>

原则上,XHTML改变了这一点,在真正的XHTML(使用XHTML内容类型的服务器)中,在支持浏览器(例如,不是 IE 8)上,您可以使用content: "&mdash;"一个style元素(因为解析了该元素的内容,以便识别实体引用)。然而,这不是一个好主意,因为有上述替代方案。

最后,您可以使用Ascii连字符 - “ - ”作为破折号的替代品,但它是一个非常差的替代品,简短并且在字内使用中设计,而不是用作标点符号。

答案 1 :(得分:1)

fiddle能以任何方式为您提供帮助吗?纯粹用CSS做它会忽略我的知识浏览器(IE7,可能是IE8)。

答案 2 :(得分:1)

如果我理解正确,那么您链接的问题就会完美地回答您的问题:

dt:after {
  content:': '; /* or content:' – ';
}

标题:

h1, h2, h3, h4, h5, h6 {
  font-weight:bold;
  display:inline;
}
h1:after, h2:after, h3:after, h4:after, h5:after, h6:after {
  content:'. ';
}