CSS覆盖自动换行的行高

vir*_*yes 23 css overriding word-wrap

我有一个绑定到一个相当狭窄的盒子的链接列表; 足够狭窄的一些链接包装.

line-height设置为30px,适用于非包装链接; 但是,对于文本足够长以强制换行的链接,也会在其中应用30px行高,从而使其看起来好像有2个链接而不仅仅是链接文本的延续.

我想以某种方式(没有js或在中间件上结束计算字符串长度)来使包装的链接文本具有10px左右的行高,以给出连续而不是分离的视觉印象.

TLS*_*TLS 42

Line-height应该设置线之间的间距(特别是当它们换行时).什么,你可能寻找的是margin在上li对象.如果您将line-height线条换行时设置为所需的较小值,并将其设置margin为项目之间所需的值,那么您应该很高兴.

看看这是否符合您的要求:

li {
    padding: 10px 0 0 0;
    margin: 30px 0;
    line-height: 10px;
}
Run Code Online (Sandbox Code Playgroud)

  • 感谢接受!较小的`line-height`被忽略,因为`margin`和`line-height`是"折叠"值.`line-height`值基本上在每一行上放置一个垂直边距.当两个具有垂直边距的对象相邻时,两个边距中较小的一个"折叠"为零,只留下较大的值.对不起,但我没有指向此规范的链接. (4认同)
  • 对于像这样的边缘案例解决方案应该得到更多的代表,但只能标记它回答1X.不得不软弱才能做到正确,但这是"走向"的方式.有趣的是,当margin是更大的值时,行高似乎完全被忽略. (2认同)

the*_*ebe 5

我会做这样

li {
    list-style-position: inside;
    margin: 20px;
}

ul {
    width: 200px;
    border: solid 1px;
}
Run Code Online (Sandbox Code Playgroud)

或者您可以像此示例中那样设置"第一行"伪元素

li {
   padding: 10px 0 0 0;
    margin: 10px;
    line-height: 30px;
}
li:first-line {
    margin: 10px;
    line-height: 10px;
}
ul {
    width: 200px;
}
Run Code Online (Sandbox Code Playgroud)