Is there a way to set min-line-height on inline element in CSS?

时光毁灭记忆、已成空白 提交于 2019-12-19 18:53:41

问题


I have some inline links with icon showing on the left (padding + bacground), but when the font is too small, the image doesn't fit in line height and gets cropped on top and bottom. Is there any way to prevent it from happening, without use of javascript? I don't want to set font size in px..

Some min-line-height set to non-relative value (image's height) would be ideal.


回答1:


When dealing with inline elements inside block elements, you don't have a lot of options for changing the size of their bounding box. min-height doesn't work on inline elements, and line-height won't have any effect.

Setting an appropriate padding might be a reasonable option, but you'll likely run into issues with the element's background overlapping other elements inside the containing block.

As a quick demo, try this:

<!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>

You'll see that the background of the texty span expands vertically, but it'll overlap text on preceding and following lines. You could set the element's display property to inline-block in modern browsers to avoid this issue, but then you'll have inconsistent line spacing, which would almost certainly be distracting if it's inside a block of text.

I think your best option, like it or not, is simply to ensure that the image you'd like to apply to your links fits the text you'll be displaying.




回答2:


you may be able to use display:inline-block to allow the min-height as inline tags are a little restricted



来源:https://stackoverflow.com/questions/1742525/is-there-a-way-to-set-min-line-height-on-inline-element-in-css

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!