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,801評論 1 92
  • ?前端面試題匯總 一、HTML和CSS 21 你做的頁面在哪些流覽器測試過?這些瀏覽器的內核分別是什么? ...
    Simon_s閱讀 2,228評論 0 8
  • 1.行內元素和塊級元素?img算什么?行內元素怎么轉化為塊級元素? 行內元素:和有他元素都在一行上,高度、行高及外...
    極樂君閱讀 2,452評論 0 20
  • 轉載請聲明 原文鏈接地址 關注公眾號獲取更多資訊 第一部分 HTML 第一章 職業規劃和前景 職業方向規劃定位...
    前端進階之旅閱讀 16,621評論 32 459
  • CSS學習感言: CSS明顯比HTML復雜一些,用的時間也多,而且也還有許多迷惑的地方,特別是關于定位和浮動,理解...
    雨夜月風閱讀 450評論 0 1