ul font-size为0,li设置字体大小后多出下间隙

设置横向布局的ul li时若li使用display:inline-block会因为换行符而使相邻的li出现间距

将ul的字体设置为0同时在li中重新设置需要的字体大小可以解决上述问题,但若在下面的情况下,会多出下间隙

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style>
        div {
            line-height: 3rem;
        }
        ul {
            margin: 0;
            padding: 0;
            font-size: 0;
        }
        li {
            list-style: none;
            font-size: 12px;
            display: inline-block;
        }
        a {
            display: inline-block;
            padding: 0 1.5rem;
        }
    </style>
</head>
<body>
    <div>
        <ul>
            <li>123</li>
            <li>123</li>
            <li>123</li>
        </ul>
    </div>
</body>
</html>

ul外面包裹了一个盒子,盒子设置了行高(注意是行高不是高度)而ul又未设置高度,则其高度会随其父盒子,同时li和ul会有一个下间隙。

解决

  • 不给li设置字体大小,而是在li中再包一层盒子,给内层盒子设置字体大小
  • ul的父盒子不设置行高,而用height代替,之后ul、li高度设置为100%

总的来说,要出现这样奇怪的现象需要特定的html结构和css样式结合,只要用别的方式代替实现相同的显示效果,以此来避免出现这个问题。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,790评论 1 92
  • •前端面试题汇总 一、HTML和CSS 21 你做的页面在哪些流览器测试过?这些浏览器的内核分别是什么? ...
    Simon_s阅读 2,228评论 0 8
  • 1.行内元素和块级元素?img算什么?行内元素怎么转化为块级元素? 行内元素:和有他元素都在一行上,高度、行高及外...
    极乐君阅读 2,452评论 0 20
  • 转载请声明 原文链接地址 关注公众号获取更多资讯 第一部分 HTML 第一章 职业规划和前景 职业方向规划定位...
    前端进阶之旅阅读 16,599评论 32 459
  • CSS学习感言: CSS明显比HTML复杂一些,用的时间也多,而且也还有许多迷惑的地方,特别是关于定位和浮动,理解...
    雨夜月风阅读 448评论 0 1