試一試
float: none;
float: left;
float: right;
float: inline-start;
float: inline-end;
<section class="default-example" id="default-example">
<div class="example-container">
<div class="transition-all" id="example-element">Float me</div>
As much mud in the streets as if the waters had but newly retired from the
face of the earth, and it would not be wonderful to meet a Megalosaurus,
forty feet long or so, waddling like an elephantine lizard up Holborn Hill.
</div>
</section>
.example-container {
border: 1px solid #c5c5c5;
padding: 0.75em;
text-align: left;
width: 80%;
line-height: normal;
}
#example-element {
border: solid 10px #efac09;
background-color: #040d46;
color: white;
padding: 1em;
width: 40%;
}
浮動元素是指 float 的計算值不是 none 的元素。
由於 float 隱含了塊佈局的使用,它在某些情況下會修改 display 值的計算值。
| 指定值 | 計算值 |
|---|---|
inline |
block |
inline-block |
block |
inline-table |
table |
table-row |
block |
table-row-group |
block |
table-column |
block |
table-column-group |
block |
table-cell |
block |
table-caption |
block |
table-header-group |
block |
table-footer-group |
block |
inline-flex |
flex |
inline-grid |
grid |
| 其他 | 未改變 |
注意: 當透過 HTMLElement.style 物件在 JavaScript 中訪問 CSS 屬性時,單詞屬性名會直接使用。儘管 float 在 JavaScript 中是保留關鍵字,但在現代瀏覽器中,CSS float 屬性是作為 float 訪問的。在舊版瀏覽器中,你必須使用 cssFloat 來訪問 float 屬性。(這類似於“class”屬性被訪問為“className”,而 <label> 元素的“for”屬性被訪問為“htmlFor”)。
語法
/* Keyword values */
float: left;
float: right;
float: none;
float: inline-start;
float: inline-end;
/* Global values */
float: inherit;
float: initial;
float: revert;
float: revert-layer;
float: unset;
float 屬性被指定為一個單一的關鍵字,從下面的值列表中選擇。
值
left-
元素必須浮動在其包含塊的左側。
right-
元素必須浮動在其包含塊的右側。
none-
元素不得浮動。
inline-start-
元素必須浮動在其包含塊的起始側。對於
ltr指令碼是左側,對於rtl指令碼是右側。 inline-end-
元素必須浮動在其包含塊的結束側。對於
ltr指令碼是右側,對於rtl指令碼是左側。
正式定義
正式語法
float =
block-start |
block-end |
inline-start |
inline-end |
snap-block |
<snap-block()> |
snap-inline |
<snap-inline()> |
left |
right |
top |
bottom |
none |
footnote
<snap-block()> =
snap-block( <length> , [ start | end | near ]? )
<snap-inline()> =
snap-inline( <length> , [ left | right | near ]? )
示例
浮動元素的定位方式
如上所述,當一個元素浮動時,它會從文件的正常流中取出(但仍然是其中的一部分)。它會向左或向右移動,直到觸及其包含框的邊緣,或另一個浮動元素。
在此示例中,有三個彩色方塊。其中兩個浮動在左側,一個浮動在右側。請注意,第二個“左側”方塊放置在第一個的右側。額外的方塊將繼續向右堆疊,直到它們填滿包含框,之後它們將換行到下一行。
浮動元素至少與其最高的巢狀浮動子元素一樣高。我們將父元素設定為 width: 100% 並浮動它,以確保它足夠高以包含其浮動子元素,並確保它佔據父元素的寬度,這樣我們就不必清除其相鄰的兄弟元素。
HTML
<section>
<div class="left">1</div>
<div class="left">2</div>
<div class="right">3</div>
<p>
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi tristique
sapien ac erat tincidunt, sit amet dignissim lectus vulputate. Donec id
iaculis velit. Aliquam vel malesuada erat. Praesent non magna ac massa
aliquet tincidunt vel in massa. Phasellus feugiat est vel leo finibus
congue.
</p>
</section>
CSS
section {
box-sizing: border-box;
border: 1px solid blue;
width: 100%;
float: left;
}
div {
margin: 5px;
width: 50px;
height: 150px;
}
.left {
float: left;
background: pink;
}
.right {
float: right;
background: cyan;
}
結果
清除浮動
有時你可能希望強制某個專案移動到任何浮動元素下方。例如,你可能希望段落保持與浮動元素相鄰,但強制標題單獨成行。請參閱 clear 以獲取示例。
規範
| 規範 |
|---|
| 層疊樣式表級別 2 # propdef-float |
| CSS 邏輯屬性和值第 1 級 # float-clear |
瀏覽器相容性
載入中…