1

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

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

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

(我知道这个问题,只是不确定这是否也适用于此。)

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

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

3 回答 3

4

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

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

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

(如果你想要文本“-”,即破折号和空格,你需要输入两个空格:"\2014 "。这种奇怪是由于反斜杠转义在其后消耗一个空格的约定造成的。)

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

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

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

于 2012-07-29T10:32:46.620 回答
1

这个小提琴对你有什么帮助吗?据我所知,纯粹使用 CSS 会忽略一些浏览器(IE7,可能是 IE8)。

于 2012-07-29T09:45:47.550 回答
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:'. ';
}
于 2012-07-29T09:47:02.527 回答