我正在讀這本書頭第一個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. 當超過父寬度時,浮動塊元素不包裹
- 5. CSS - 自動寬度浮動元素(可擴展浮動)
- 6. 沒有寬度的浮動div
- 7. 以自定義寬度爲中心定位浮動元素
- 8. 浮動元素,全寬
- 9. 如何獲得具有浮動元素的元素的實際寬度
- 10. jquery動畫高度或寬度導致浮動元素跳轉
- 11. CSS浮動和塊元素
- 12. 包裝浮動塊元素
- 13. 所有浮動元素都顯示:塊?
- 14. 確定元素的寬度
- 15. 固定元素的寬度
- 16. 是否有可能以包含兩個浮動div也未指定寬度的未指定寬度爲中心
- 17. CSS:浮動元素給含有元素上的零高度
- 18. jQuery的可變寬度元素滑塊
- 19. jQuery查找塊元素的寬度
- 20. 力空塊元素的寬度
- 21. 如何水平居中可變寬度的浮動元素?
- 22. 浮動塊級元素:是否需要設置寬度,如果是,如何?
- 23. 指定元素的深度
- 24. 當存在浮動元素時找出可用空間(寬度)
- 25. css在頁面寬度較小時浮動「擠壓」元素
- 26. IE9不能正確計算寬度與浮動元素
- 27. 有沒有辦法指定八度的命令行寬度?
- 28. 強制塊元素不包含在IE中(沒有固定寬度的父元素)
- 29. CSS/JS:不同高度的浮動塊元素?
- 30. 在塊元素中限制邊框寬度爲文本寬度
可能......但是不知道完整的上下文我們無法真正發表評論。對「書中的東西」的模糊引用並沒有多大幫助。 –