那麼,你想知道的div chooosing下一行,而不是在線自動設置背後的原因。
CSS中的一些元素是塊級元素,這意味着它們會自動開始新行。例如,如果創建兩個單個單詞段元素,它們將不會流入對方,而會出現在單獨的行中。其他元素是內聯元素。這意味着它們與之前的內容「一致」。一個例子是一個錨標籤,它可以出現在另一個元素(如段落)中,而不會引起任何額外的空白或新行出現。
欺騙這種佈局模式的一種方法是使用浮動,它允許給定的元素轉移到其一側,並讓其他內容向下流動。右浮動元素將一直推到其容器的右側,並且內容沿着其左側流動,左浮動元素將一直推到左側,其內容沿着其右側流動。
典型的例子是,當你用一個段落拋出一個圖像,並希望兩個並排顯示而不是堆疊。首先,我們創造了一些HTML兩種元素:
<img src="http://domain/200/200/" />
<p>Hello World...</p>
僅此一項,該代碼不會產生我們想要的效果。段落元素是一個塊級元素,它出現在它自己的行上,所以段落和圖像顯示在普通文檔流中。
我們可以通過將圖像浮動到右側來更改此行爲。這樣做的CSS是很基本的:
img {
float: right;
margin: 20px;
}
究竟箱事情的作品
你應該問自己的問題是,「爲什麼?」爲什麼不增加保證金款增加圖像和段落之間的空間?原因在於我們無法理解與該段落有關的盒子模型。
如果您對佈局在基本級別上的工作方式感到懷疑,請嘗試應用一兩個邊框來查看發生了什麼。如果我們在段落中使用這種技術,結果可能會讓您感到驚訝。
p {
border: solid 1px black;
}
正如您所看到的,圖像實際上在段落框內!這解決了我們的邊際謎題。我們添加到段落的任何邊距都會被應用到圖片的右側,這就是爲什麼它不會增加圖片和段落之間的空間。
如果我們希望改變這種行爲,以便段落不會環繞圖像,我們可以將段落浮動到左側並給它一個指定的寬度(不用表達寬度,段落寬度爲100%,將不適合圖像旁邊)。
img {
float: right;
margin: 20px;
}
p {
float: left;
width: 220px;
margin: 20px;
}
希望你明白了......
這是瘋狂的盒子的事情。 :)
'div'是一個塊元素將其更改爲'inline-block' – Akshay
我知道div是塊元素。我的問題不是如何將圖像設置爲div。我只是感興趣,爲什麼內聯元素(圖片)不會去右側的下一個div,因爲有一個房間和div不再佔用100%的寬度了?這聽起來對我來說很合理。 – Zoran