我正在修改定製的grid,並想知道其他人是如何創建他們的網格系統的。由於twitter的引導程序似乎很受歡迎,因此我查看了它的代碼。現在我不知道他們爲什麼使用浮游物?我會使用display: inline-block;
html元素有display: inline;
或display: block;
我會盡量避免浮動。但由於某些原因,引導創作者決定使用浮動。首先,我認爲他們使用它們具有向後兼容性,因爲ie6不支持display: inline-block;
,而ie7僅在默認情況下支持display: inline;
的元素。但是ie6或多或少的出局了,因爲他們使用micro clearfix hack,它使用* zoom:1;目標ie6 +國際海事組織他們可以複製相同的display: inline-block;
與*display: inline; *zoom: 1;
因此,最後的問題爲什麼浮動顯示在線塊?他們有沒有解決上述問題的問題?爲什麼bootstrap在.span上使用浮動而不是顯示:inline-block?
回答
在語義網的術語中,當我們想要在文本的行內放置一個塊級元素,如<img>
時,應該使用display: inline-block
。我們不應該使用內嵌佈局來製作頁面主佈局。含有display: inline-block
的元素也會從父元素的font-size
和line-height
等屬性生效。這會降低頁面佈局的準確性。 在製作頁面主佈局時,您最好養成使用float
而不是inline-block
的習慣。
內聯塊可識別白色空間,實際內容和堆棧的自動寬度按它們在HTML中的順序排列。浮動不是,但需要clearfix方法,並基於塊元素。這些元素在可用空間上水平地具有自動寬度。純粹的語義上來說,內聯塊的語義較少,因爲空白感知格式和順序的重要性。但純粹以功能性的方式來看,它們都不是爲了網格而製作的。如果不是用於僞CSS,那麼我們也會有非語義的HTML標籤clearfixe。所以我相信他們都不是贏家。但在未來幾年flexbox將成爲強制性的時候,目前沒有其他選擇。
隨着直列塊:
<div>
<div style="display:inline-block; width:30%;">col1
</div><div style="display:inline-block; width:70%;">col2</div>
</div>
標籤必須被粘合在一起/所附,以關閉任何溝。容器div是強制項目成爲單獨行的一部分所必需的。
花車:
<div class="clearfix">
<div style="float:left; width:30%;">col1</div>
<div style="float:left; width:70%;">col2</div>
</div>
Clearfix是必要的強制「行」(解僱任何正常流量項目問題或浮動後浮)
無論使用一個或另一個的問題你的目標(和品味)。我必須說,只要你知道兩個寬度或者使用相對大小(%),我就喜歡內聯塊以上的浮動。我認爲它比浮動更直觀,更可預測,可以解決問題,如果它被應用程序使用,甚至不會出現問題。只有內聯塊的空白區域意識迫使你使用一些時髦的html ,這是一個缺點
具有諷刺意味的是,表格完全沒有任何問題(甚至是柱高和垂直對齊),因爲內嵌塊必須按順序排列,所以這裏有一個討論動機。
如果我們正在討論響應式,表內聯塊的表「丟失」。假設你在桌面上有4列,並且你想在平板電腦上使用2列,在移動設備上使用1列。通過嵌入塊,您只需給出其他寬度尺寸,並且希望包裹好(在倒塌時注意邊距)。使用表格,你必然會遇到實際的行,這些行很固定。 Flexbox需要很長時間,看起來很漂亮。您可以在某些情況下靈活調整佈局。
我用Bootstrap,但厭倦了他們缺乏給予人們的信用和他們的態度。但是,瞭解他們如何做某事可能會很方便。剛剛閱讀3.0他們正在使用相對網格大小。這給嵌套網格和對齊提出了問題。
---- --a- ---- ----
---b------
.... ..c.
Col a是正常的母校。 Col c是b的小孩嵌套。除非你使用填充和邊界框模型,否則很難將c與相對大小對齊,因爲對於容器而言,排水溝是可變的。但這樣你就失去了很多靈活性。當你想讓col有一些背景和填充時,你就搞亂了網格系統,所以你必須使用你的風格的容器,這會混淆代碼。我還沒有研究過他們是否找到了解決辦法。我還沒有。我去了固定像素,但這意味着在響應式設計中,您只能擁有幾個固定寬度,並且對於移動設備中的所有內容都使用相對網格。
偉大的答案!正如我先問的,我並不知道內嵌塊級元素的空白區域敏感性,就像你喜歡使用內聯塊而不是浮點數一樣。我也喜歡flexbox的想法,但我認爲我們還沒有,瀏覽器供應商會花時間正確地實施它,儘管webkit開發者做得很好...... – orustammanapov
是的,可能需要幾年時間,因爲IE8將圍繞一些時間,或者有人爲它寫一個htc單元。如今,IE10已經支持舊的Flexbox語法,這已經被棄用了。所以是的,我們現在堅持浮動/嵌入塊或表格;) – Sanne
這是一個比標記爲答案更好的答案。它實際上有一個真正的原因,爲什麼不使用內聯塊。這是一個不幸的原因,但它有一個問題。另一個答案是一個理論和學術,在「......因爲我這麼說」的眼中捅了捅。結尾。我在這種情況下使用浮動的唯一問題是,他們顯式關閉使用跨度的輸入元素的浮動,因此您的浮動跨度在所有輸入字段之前跳躍導致痛苦。 – chubbsondubs
我更喜歡使用display: inline-block;
而不是float
的網格系統,例如Pure(以前稱爲YUI網格),因爲它們沒有額外的樣式進行國際化;將文本方向更改爲從右到左並且佈局自動反轉;花車不這樣做。浮動還介紹了需要明確和其他跨瀏覽器怪異。正如Pure所證明的那樣,inline-block
可能會超過float
的任何不準確都可以得到彌補。至於批評display: inline-block;
是並不意味着要用於佈局,也許應該禁止跨瀏覽器居中使用display: table;
。我還會質疑術語Semantic Web是否真的適用於CSS,因爲該術語主要關注HTML並使用其元素和屬性賦予機器可讀含義;整個CSS的重點在於像想要的那樣從根本上設計語義HTML,因此經典網站如CSS Zen Garden。
我說只要技術沒有利用bug,不會阻礙用戶和設備的內容,並且得到足夠的支持,那麼它是可以接受的。沒有理由不能像非正統的,但支持的方式使用CSS,就像Stu Nicholls的CSSPlay一樣。
有趣的是,Flexible Box也被納入到純網格中,這是一種與現代瀏覽器(≥IE10和等效瀏覽器)兼容的卓越佈局系統。
- 1. 爲什麼divs不會使用BootStrap而浮動?
- 2. 爲什麼Span跨入Bootstrap
- 3. CSS:爲什麼我浮動的<span>顯示在IE6/7中的<a> nchor上,但不是IE8/FF
- 4. 爲什麼Processing使用浮動而不是雙打?
- 5. 爲什麼iAds會在iPhone上顯示,而不是在iPad上顯示?
- 6. 爲什麼在浮動屏幕上顯示觸摸屏座標?
- 7. 爲什麼jQuery顯示/隱藏使用display:none而不是visibility:hidden?
- 8. 爲什麼我的底部div顯示不是以android爲中心,而是在顯示器上顯示?
- 9. 爲什麼我應該使用整數而不是浮點數?
- 10. 爲什麼Bootstrap使用Javascript而不是純CSS?
- 11. 爲什麼選擇顯示屏顯示值而不是標籤?
- 12. 爲什麼這些堆疊在彼此之上Bootstrap Span
- 13. 爲什麼這不是在淡出而是僅僅顯示它?
- 14. 爲什麼在Windows上運行PHP而不是在CentOS上只顯示此行?
- 15. 顯示使用invokeLater而不使用JFrame的區別是什麼?
- 16. 元素在頁面上顯示爲<span class =「icon」>&#xe80d;</span>而不是正在呈現
- 17. 浮動動作按鈕顯示在右上角而不是右下角android
- 18. 爲什麼這些浮動div不能正確顯示?
- 19. 爲什麼我的Bootstrap菜單不顯示移動視圖
- 20. 爲什麼不顯示bootstrap導航欄移動菜單?
- 21. 爲什麼twitter-bootstrap不使用圖像,但是<span class =「icon-bar」></span>?
- 22. 爲什麼我的UITextView在使用框架屬性時顯示,而不是在使用約束時顯示?
- 23. 爲什麼MKPolyline不顯示在MKMapView上?
- 24. 爲什麼JPanel不顯示在JScrollPane上?
- 25. 爲什麼JButtons不顯示在JFrame上?
- 26. 爲什麼圖像不顯示在載入中,而是在刷新時顯示?
- 27. 爲什麼顯示對象引用而不是值
- 28. 爲什麼Android GPU顯示器工作在6.0.1,而不是7.1.2?
- 29. 爲什麼文本顯示在按鈕而不是textview中?
- 30. 爲什麼鏈接顯示在下一行而不是相同?
感謝您的回答,但您確定意味着img是內聯元素,p是塊級元素,反之亦然,不是嗎?:) – orustammanapov
實際上,'img'和'p'都是塊級別元素。我糾正了答案。 – Mojtaba
對不起,我的錯誤是它沒有內聯元素,也沒有塊級元素。 ** img **標籤默認爲**內聯塊**。您可以像塊級元素一樣定義寬度和高度,但也可以與同一行上的其他元素內聯,而不會浮動。 – orustammanapov