2015-09-27 104 views
2

我將div從float:left更改爲inline-block,不知道爲什麼某些div取代了,就像它們有一些不可見的邊框或其他東西一樣。嵌入塊中元素的不同邊距

下面是與float:lefthttps://jsfiddle.net/f7op4dze/

div{ 
    background-color: red; 
    width: calc(25% - 40px); 
    height: 50px; 
    float:left; 
    margin:0 20px; 
} 

這裏有inline-blockhttps://jsfiddle.net/dfdxa5hc/

div{ 
    background-color: red; 
    width: calc(25% - 40px); 
    height: 50px; 
    display:inline-block; 
    margin:0 20px; 
} 
+0

難道你鏈接正確的例子?看起來你可能忘了在第二個版本中更新你的小提琴。 – Orun

+1

我認爲它與此有關 - http://stackoverflow.com/questions/5078239/how-to-remove-the-space-between-inline-block-elements – Stickers

+0

你是對的!我已經更新了第二個。謝謝! – Alvarado87

回答

2

有一個空格會自動添加內聯元素,該空間也適用於inline-block

如果標記中的元素之間沒有空白(空格或返回),則內嵌塊元素將被渲染而沒有空格。

做到這一點,仍然維持在最佳的格式最簡單的方法是使用在<div>元素,像這樣之間的註釋標籤: https://jsfiddle.net/orvn/wd0ynq98/2/

<section> 
    <div></div><!-- 
    --><div></div><!-- 
    --><div></div><!-- 
    --><div></div> 
</section> 
+2

這是解決問題的一種方法。但我不會把它稱爲最簡單的方法。還有其他各種簡單易用的方式,而不會犧牲更多的格式。 –

+0

'font-size:0;'的挑戰在於,如果您想要在任何這些元素中呈現文本,它就成爲一個障礙。但我明白你的意思。我喜歡使用'',因爲如果使用相同的縮進格式化它,則標記很容易遵循,而且看起來幾乎沒有改變,因爲大多數文本編輯器都會將評論變灰。 – Orun

+0

我剛剛在上面提到的其他問題中看到了您的其他答案。我不知道你可以在將父元素設置爲0之後將子元素的font-size設置恢復正​​常。非常酷。你的方式是最審慎的。 – Orun