所以我使用Semantic-ui進行編碼,並且在flexbox容器中有兩個彼此相鄰的切換框(複選框)。當窗口大小減小時,它們環繞,以便一個在另一個之上。爲什麼填充添加到元素的可見寬度,即使將框的大小設置爲邊框?
爲了讓它們分散一點,我添加了大約5px的右側和底部填充。但是我注意到一個奇怪的行爲。填充會導致盒子水平移動,但當垂直堆疊時,它們之間沒有空間,即使每個盒子上都有底部填充。
進一步調查顯示覆選框的box-sizing
屬性設置爲border-box
。讀完後,我發現border-box
盒子模型計算寬度和高度以包含填充和邊框。
複選框的高度爲1.5rem。
我的問題如下。據我瞭解,使用邊框時,填充不應改變元素的大小。但是,只有在鏈接的jsfiddle中設置了明確的尺寸時,纔會出現這種情況。高度已設置,所以底部填充不作爲額外添加。但寬度不是,正確的填充對div的可見寬度有影響。
爲什麼會出現這種情況?當然,填充不應該影響元素的大小(除非設置成可笑的東西,大於元素本身),而不管我是定義了一個確定的寬度還是將其計算在內?
的jsfiddle:http://jsfiddle.net/Astridax/8cd48emn/
請嘗試使用切換開發工具,看看我的意思是墊襯。
這是規範不是很清楚的地方,至少不是我。 「指定的寬度和高度」究竟指的是什麼?任何不是初始值auto的東西? 「特定值」在CSS中有非常明確的含義,並不是「任何不是初始值」。看起來箱子尺寸規格需要一些澄清。 – BoltClock
*此元素上的指定寬度和高度(以及相應的最小/最大屬性)似乎清楚地指向CSS高度和寬度屬性。在OP的例子中,他沒有指定寬度,所以'border-box'規則不適用(畢竟,這可能是如何工作的 - 如果你考慮OP的要求在邏輯上是不可能的)。 –
這就是我所說的「除初始值之外的任何東西」 - 因爲仍然可以設置寬度:auto,但它仍然會有效地與完全不設置它相同。這對我來說很有意義,但我仍然認爲這個規格可能會更清晰。 – BoltClock