搜尋

首頁  >  問答  >  主體

如何消除內聯/內聯塊元素之間的空白間距?

<p>在這些<span>span</span>元素之間會有一個4像素寬的空格:</p> <pre class="brush:css;toolbar:false;">span { display: inline-block; width: 100px; background-color: palevioletred; }</pre> <pre class="brush:html;toolbar:false;"><p> <span> Foo </span> <span> Bar </span> </p></pre> <p>Fiddle Demo</p> <p>我知道我可以透過在HTML中刪除<span>span</span>元素之間的空格來去除這個空格:</p> <pre class="brush:html;toolbar:false;"><p> <span> Foo </span><span> Bar </span> </p> </pre> <p>我正在尋找一個不涉及以下內容的CSS解決方案:</p> <ul> <li>修改HTML。 </li> <li>使用JavaScript。 </li> </ul><p><br /></p>
P粉144705065P粉144705065474 天前520

全部回覆(2)我來回復

  • P粉512729862

    P粉5127298622023-08-15 18:45:05

    對於符合CSS3標準的瀏覽器,可以使用white-space-collapsing:discard屬性

    請參閱:http://www.w3.org/TR/2010/WD-css3-text-20101005/#white-space-collapsing

    #

    回覆
    0
  • P粉917406009

    P粉9174060092023-08-15 11:08:19

    或者,您可以使用flexbox來實現以前可能使用inline-block實現的許多佈局:https://css-tricks.com/snippets/css/a-guide-to -flexbox/


    由於這個答案變得相當受歡迎,我正在重寫它。

    讓我們不要忘記實際提出的問題:

    只使用CSS就可以解決這個問題,但沒有完全穩定的CSS修復方法。

    我在最初的答案中提出的解決方案是在父元素中添加font-size: 0,然後在子元素中聲明合理的font-size

    http://jsfiddle.net/thirtydot/dGHFV/1361/

    這在所有現代瀏覽器的最新版本中都有效。它在IE8中有效。它在Safari 5中無效,但在Safari 6中有效。 Safari 5幾乎是被淘汰的瀏覽器(0.33%,2015年8月)。

    大多數與相對字體大小相關的問題並不複雜。

    然而,如果您可以自由更改HTML(大多數人都可以),這是一個合理的解決方案,但不是我推薦的解決方案。


    作為一個經驗豐富的網頁開發人員,這是我實際解決這個問題的方法:

    <p>
        <span>Foo</span><span>Bar</span>
    </p>

    是的,就是這樣。我刪除了內聯塊元素之間的HTML中的空格。

    這很容易。這很簡單。它在任何地方都有效。這是務實的解決方案。

    您有時必須仔細考慮空格的來源。如果使用JavaScript附加另一個元素會加空格嗎?不會,如果您正確操作的話。

    讓我們進行一趟神奇的旅程,了解一些去除空格的不同方法,使用一些新的HTML:

    <ul>
        <li>Item 1</li>
        <li>Item 2</li>
        <li>Item 3</li>
    </ul>
    • 您可以像我通常那樣做:

      <ul>
           <li>Item 1</li><li>Item 2</li><li>Item 3</li>
       </ul>

    http://jsfiddle.net/thirtydot/dGHFV/1362/

    • 或者,這樣做:

      <ul>
           <li>Item 1</li
           ><li>Item 2</li
           ><li>Item 3</li>
       </ul>
    • 或者,使用註解:

      <ul>
           <li>Item 1</li><!--
           --><li>Item 2</li><!--
           --><li>Item 3</li>
       </ul>
    • 或者,如果您使用PHP或類似的東西:

      <ul>
           <li>Item 1</li><?
           ?><li>Item 2</li><?
           ?><li>Item 3</li>
       </ul>
    • 或者,您甚至可以完全省略某些閉合標籤(所有瀏覽器都支援):

      <ul>
           <li>Item 1
           <li>Item 2
           <li>Item 3
       </ul>

    現在,我已經用「thirtydot的一千種不同的去除空格方法」把您弄得厭煩了,希望您已經忘記了font-size: 0

    回覆
    0
  • 取消回覆