行内块元素:“display:inline-block”并排换行问题解决方案

0oD三一o0

温馨提示:这篇文章已超过634天没有更新,请注意相关的内容是否还可用!

最近在写网站样式的时候,设置了子元素的宽度,目的让其并排展示一行,之前的都是用float写,没有遇到问题,今天使用了inline-block,却换行了,打开调试模式,查看padding和margin均为0,也就是说,问题并不是出现在换行元素本身上边,这就很奇怪了,代码也很简单:

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        *{margin: 0;padding: 0;box-sizing:border-box}
        .nav{
            width: 100%;
        }
        .nav li{
            width: 20%;
            display: inline-block;
        }
    </style>
</head>
<body>
        <ul>
            <li>
                <a href="https://www.yzmcms.com/">首页</a>
            </li>
            <li>
                <a href="https://www.yzmcms.com/xiazai/">下载</a>
            </li>
            <li>
                <a href="https://www.yzmcms.com/dongtai/">动态</a>
            </li>
            <li>
                <a href="https://www.yzmcms.com/anli/">案例</a>
            </li>
            <li>
                <a href="https://www.yzmcms.com/lianxi/">联系</a>
            </li>
        </ul>
</body>
</html>

查询了相关资料,终于找到了原因:

inline-block元素之间,写代码时的换行,是一个空格,所以虽然肉眼看不到,但是实际上是有空格字符串占了位置,所以会导致 inline-block 产生不可见的间距,就出现了无法理解的换行,而 float 属性脱离标准文档流 ,所以不会产生换行的效果。

解决方案:

1.不设置display:inline-block,而是用我们熟悉的float来实现。

2.设置父元素的属性:white-space: nowrap,强制不换行(不推荐使用)

3.inline-block元素之间,写代码时的不换行,但HTML代码的可读性很不好(不推荐使用)

4.父元素:font-size: 0,inline-block元素重新设置 font-size 即可(完美解决)


免责声明:本文来自YZMCMS博客,不代表0oD三一o0的观点和立场,如有侵权请联系本平台处理。

发表评论

快捷回复: 表情:
AddoilApplauseBadlaughBombCoffeeFabulousFacepalmFecesFrownHeyhaInsidiousKeepFightingNoProbPigHeadShockedSinistersmileSlapSocialSweatTolaughWatermelonWittyWowYeahYellowdog
评论列表 (暂无评论,1890人围观)

还没有评论,来说两句吧...

取消
微信二维码
微信二维码
支付宝二维码