不要難過,你有沒有掌握CSS佈局,但 - 它已經很長一段時間在標準支持方面的到來,所以大多數方法目前使用稍微哈克方法acheive它並不總是不言而喻的,他們如何工作或爲什麼。
默認情況下,塊垂直堆棧,所以你想改變流水平運行一個特定的部分。
適當的「現代CSS方式」將使用flexbox,這是特別針對這些類型的情況(和更多)的佈局工具。警告是瀏覽器支持 - IE10及以上,但否則大多數每個瀏覽器都支持它。
要使用flexbox水平放置某些東西,您需要告訴父級成爲水平定向的容器。在你的情況下,因此可能是一個好主意來包裝兩個元素在另一個元素:
<div class="wrapper">
<div id="div1"></div>
<p>Move me</p>
</div>
你再告訴包裝成爲「柔性容器」,在默認模式是週轉箱水平相當不是垂直:
.wrapper {
display: flex;
}
有在歷史上一直幾個實驗Flexbox的實現與不同的語法,所以這是一個需要注意的太(參見後面的示例)。 下一步將是如何確定盒子的大小,如果您希望它們的大小不同於內容的大小 - 這將是學習flexbox的下一步。 :-) 你需要知道的第一件事是,在這種情況下,他們仍然會對width
財產做出反應,否則就會變得同樣高。
如果您想要更廣泛的瀏覽器支持,您可以將flexbox與不適合此確切目的但仍然可行的其他方法結合使用 - 浮動或內聯塊會想到。關於flexbox的好處是,它忽略了其子項的display
模式和float
屬性。這意味着我們可以結合新舊技術。
- 浮動最初旨在將圖像或其他圖形放置在文本塊的右側或左側,例如,但可用於創建具有一定工作量的整個佈局。他們有一些複雜的行爲需要一段時間才能掌握。例如,由於默認情況下,浮動器會垂直伸出其容器,所以通常需要添加使包裝器包含浮動器的內容 - 最簡單的方法可能是將
overflow: hidden
應用於包裝器。
- 內聯塊基本上允許文本流中的塊級元素,但由於文本水平流動(至少英文版),因此您可以選擇它們來創建完整的水平佈局。缺點是HTML源代碼中的任何空格(包括換行符)都會在水平項目之間創建空白。
如果你去浮路線,示例代碼可能是這個樣子:
.wrapper {
/* various flexbox syntaxes, old */
display: -webkit-box;
display: -webkit-flex;
display: -ms-flexbox;
/* modern flexbox syntax */
display: flex;
overflow: hidden; /* contain floats */
}
.wrapper p,
#div1 {
float: left; /* will be ignored by modern browsers */
}
Tusen粘性埃米爾! Du skriverpåettlättförståeligtsätt,until skillnadfrånmångaandra「tutorials」pånätet。 – HungryHippo
Det varsåliteså,@HungryHippo。 :-) Markeragärnasvaret som receterat om du ducker det besvarar dinfråga。 – Emil