我正在讀這本書頭第一個HTML和CSS並且那裏寫的是任何浮動元素的要求是它必須有一個寬度。我試圖在沒有指定寬度的情況下對div元素進行浮動,並且float屬性起作用(儘可能地將div向右移動)。這是否意味着書中有錯誤,或者是我錯過了什麼?沒有指定寬度的浮動塊元素
回答
是的,您可以在浮動元素中沒有width
值在級聯中聲明。然後,通過defaulting進程,指定的值將是initial value。對於width
,初始值爲auto
。
CSS說明何時floated non-replaced element具有width: auto
會發生什麼:
如果
width
被計算爲auto
,所使用的值是 「收縮到合適」的寬度。計算縮到適合寬度與使用自動錶格佈局算法計算表格單元的寬度相似。 大致爲:通過格式化內容 而不斷裂比顯式換行符發生在哪裏, 其他線路計算優選的寬度,並且還計算出優選最小寬度,例如,通過嘗試所有可能的 換行符。 CSS 2.1沒有定義確切的算法。 第三,找到可用寬度:在這種情況下,這是 寬度包含塊減去
margin-left
所使用的值,border-left-width
,padding-left
,padding-right
,border-right-width
,margin-right
,以及任何相關的 滾動的寬度酒吧。然後收縮以適應的寬度是:
min(max(preferred minimum width, available width), preferred width)
的「收縮到配合」算法現在被稱爲fit-content measure。
float:right
是元素的簡單堆疊,從左到右直到線寬被填充,然後從上到下。就像寫英文報紙一樣。
float:left
使用的東西像一個工具,它會佔據整個頁面,除非其寬度受到限制。這就是爲什麼必須指定width
。
「*它會佔用整個頁面*」似乎意味着[可用填充度量](https://www.w3.org/TR/css3-sizing/#fill-available-measure)。但是使用[fit-content measure](https://www.w3.org/TR/css3-sizing/#fit-content-measure)代替。 – Oriol
- 1. 浮動div沒有指定寬度
- 2. 居中浮動塊元素寬度不同寬度
- 3. 總是有浮動元素的寬度沒有文字
- 4. 浮動:左與寬度的元素:100%
- 5. 第一排浮動元素的寬度?
- 6. 計算浮動元素的寬度
- 7. 寬度自動和寬度的差值100%浮動元素
- 8. Safari獲取%寬度錯誤的內嵌塊浮動元素
- 9. 具有浮動子元素確定父寬度
- 10. 浮動元素保持內部較窄塊元素的完整「原始」寬度
- 11. 當超過父寬度時,浮動塊元素不包裹
- 12. CSS - 自動寬度浮動元素(可擴展浮動)
- 13. 沒有寬度的浮動div
- 14. 父元素的寬度取決於浮動子元素
- 15. 以自定義寬度爲中心定位浮動元素
- 16. CSS /浮動 - 浮動元素不使用寬度
- 17. 浮動元素,全寬
- 18. 具有相同寬度的浮動元素
- 19. 如何獲得具有浮動元素的元素的實際寬度
- 20. jquery動畫高度或寬度導致浮動元素跳轉
- 21. 右浮動定期段落下方元素與寬度
- 22. 包裝浮動塊元素
- 23. CSS浮動和塊元素
- 24. 「浮動」塊級元素
- 25. 所有浮動元素都顯示:塊?
- 26. 包含浮動子元素的元素的寬度自動問題
- 27. 固定元素的寬度
- 28. 確定元素的寬度
- 29. 元素沒有外部寬度?
- 30. Div內聯塊元素沒有正確填充寬度
可能......但是不知道完整的上下文我們無法真正發表評論。對「書中的東西」的模糊引用並沒有多大幫助。 –