是否可以在CSS的内联元素中设置min-line-height?

问题描述 投票:6回答:3

我有一些内联链接,并且图标显示在左侧(填充+免费),但是当字体太小时,图像不适合行高,并在顶部和底部被裁剪。有没有办法防止这种情况的发生,而无需使用JavaScript?我不想在px中设置字体大小。]

将某些最小线高设置为非相对值(图像的高度)将是理想的。

inline css
3个回答
8
投票

当处理块元素内的内联元素时,您没有太多选择来更改其边界框的大小。 min-height不适用于嵌入式元素,并且line-height无效。

设置适当的padding可能是一个合理的选择,但是您可能会遇到元素背景与包含块中其他元素重叠的问题。

作为快速演示,请尝试以下方法:

<!DOCTYPE html>
<html>
    <head>
        <title>Demo</title>
        <style type="text/css">
            span {
                background: #0F0;
                padding:    0.5em 0;
            }
        </style>
    </head>
    <body>
        <p>This is some demo text.  Look at how <span>texty</span> it is.</p>
    </body>
</html>

您会看到texty跨度的背景垂直扩展,但是它将在前一行和后一行上重叠文本。您可以在现代浏览器中将元素的display属性设置为inline-block来避免此问题,但是行间距不一致,如果在文本块中,这几乎肯定会分散注意力。

我认为,不管您喜欢与否,最好的选择就是确保要应用于链接的图像适合要显示的文本。


0
投票

您可能可以使用display:inline-block允许最小高度,因为内联标签受到一些限制


0
投票

您可以使用min()在任何CSS属性上创建最小值。

这里是将行高设置为10vh,其最小值设置为100px的示例。

line-height: min(10vh, 100px);

请参见min()

© www.soinside.com 2019 - 2024. All rights reserved.