【问题标题】:CSS3: first letter, vertical-align: super and changed heightCSS3:第一个字母,垂直对齐:超级和改变高度
【发布时间】:2016-05-30 14:59:22
【问题描述】:

我想创建一个简单的列表(没有图片)。
列表中最后一个元素的第一个字母应该有“vertical-align: super;”样式,但是当我这样做时,段落的高度会增加。

#third::first-letter {
    vertical-align: super;
}

如何在不知道字体大小和段落高度的情况下修复它?
My fiddle

【问题讨论】:

  • 仅使用 : 代替 :: 用于首字母伪元素

标签: html css


【解决方案1】:

在不影响盒子高度的情况下垂直移动::first-letter 的一个可能选项是float 伪元素并给它一个负数margin-top

Example Here

#third::first-letter {
    margin-top: -.5em;
    float: left;
}

* {margin:0;padding:0;}
html {font-size: 200%;}
#first {background-color:pink;}
#second {background-color:aqua;}
#third {background-color:lightgreen; margin-top: 1em;}

#third::first-letter {
    margin-top: -.5em;
    float: left;
}
<p id="first">My list:</p>
<p id="second">|-> not last element</p>

<p id="third">|-> last element</p>

然而,正如@Alohci 在 cmets 中指出的那样,在 Firefox 中,::first-letter 不匹配第一个字符,如果它不是 字母 或数字。

因此,在第一个字符不是字母/数字而是管道| 的特殊情况下,我们最好使用::before 伪元素添加该字符,以便我们可以正确设置它的样式:

Example Here

#third::before {
    content: "|";
    margin-top: -.5em;
    float: left;
}

*{margin:0;padding:0}
html {font-size: 200%;}
#first{background-color:pink;}
#second{background-color:aqua;}
#third{background-color:lightgreen; margin-top: 1em;}

#second::before,
#third::before {
    content: "|";
}

#third::before {
    margin-top: -.5em;
    float: left;
}
<p id="first">My list:</p>
<p id="second">-> not last element</p>

<p id="third">-> last element</p>

【讨论】:

  • 我可以使用 z-index 吗(参见 #third without margin-top:.5em )?
  • @Eiji 对于::first-letter 伪元素?
  • @Eiji 否,因为z-index 仅适用于定位元素,而position 属性对::first-letter 没有任何影响。但相反,您可以将 #third 元素本身定位为 relative 并向其添加 z-index。或者将位置和更高的z-index 设置为#second 元素。
  • 警告 - 这个例子在 Firefox 中不起作用,可能是因为 |不是字母(或数字)。
  • @HashemQolami - 目前的标准还不清楚。但是Selectors 4 说::first-letter 伪元素代表第一个印刷字母单元。 CSSText 的最新编辑草案将typographic letter unit 定义为属于 Unicode 中的字母或数字一般类别之一。即类别 Lu、Ll、Lt、Lm、Lo、Nd、Nl、No. Unicode 的scripts.txt 文档中说| 是类别 Sm。
【解决方案2】:

而不是negative margin-topline-height 是一个更好的解决方案。使用line-height,字母下方没有空格。

【讨论】:

    猜你喜欢
    • 2014-11-28
    • 2013-07-03
    • 2013-10-08
    • 2014-07-21
    • 2015-05-26
    • 2011-09-15
    • 1970-01-01
    • 1970-01-01
    • 2011-08-06
    相关资源
    最近更新 更多