DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> CSS入門知識 >> CSS基礎知識 >> 12.2 浮動float
12.2 浮動float
編輯:CSS基礎知識     

一、浮動float簡介

在“文字環繞效果-初識float”這一節,我們已經接觸過浮動是怎樣一回事了。

在傳統的印刷布局中,文本可以按照實際需要來圍繞圖片。一般把這種方式稱為“文本環繞”。在網頁設計中,應用了CSS的float屬性的頁面元素就像在印刷布局裡被文字包圍的圖片一樣。

浮動屬性float是CSS布局的最佳利器,我們可以通過不同的浮動屬性值靈活地定位div元素,以達到布局網頁的目的。我們可以通過CSS的屬性float使元素向左或向右浮動。也就是說,讓盒子及其中的內容浮動到文檔的右邊或者左邊。以往這個屬性總應用於圖像,使文本圍繞在圖像周圍,不過在CSS中,任何元素都可以浮動。

浮動元素會生成一個塊級框,而不論它本身是何種元素。

語法:

float:取值;

說明:

float屬性的取值很簡單也很容易記憶,就2個屬性值:

表1 float屬性 float屬性值 說明 left 元素向左浮動 right 元素向右浮動

默認情況下,元素是不浮動的。這個表忽略“none”和“inherit”這2個一輩子派不上場的屬性值,大家也不需要花心思去理會“none”和“inherit”這2個屬性值。

浮動的性質比較復雜,下面通過一個簡單的實例講解float屬性的使用。

舉例:

在線測試
 
<!DOCTYPE html> 
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>CSS浮動float屬性</title>
    <style type="text/css">
        /*定義父元素樣式*/
        #father
        {
            width:400px;
            background-color:#0C6A9D;
            border:1px solid silver;
        }
        /*定義子元素樣式*/
        #father div
        {
            padding:10px;
            margin:15px;
            border:2px dashed red;
            background-color:#FCD568;
        }
        /*定義文本樣式*/
        #father p
        {
            margin:15px;
            border:2px dashed red;
            background-color:#FCD568;
        }
        #son1
        {
            /*這裡設置son1的浮動方式*/
        }
        #son2
        {
            /*這裡設置son2的浮動方式*/
        }
        #son3
        {
            /*這裡設置son3的浮動方式*/
        }
    </style>
</head>
<body>
    <div id="father">
        <div id="son1">box1</div>
        <div id="son2">box2</div>
        <div id="son3">box3</div>
        <p>這裡是浮動框外圍的文字,這裡是浮動框外圍的文字,這裡是浮動框外圍的文字,這裡是浮動框外圍的文字,這裡是浮動框外圍的文字,這裡是浮動框外圍的文字,</p>
    </div>
</body>
</html>

上面代碼定義了4個div塊,一個是父塊,另外3個是它的子塊。為了便於觀察,將各個塊都加上了邊框以及背景顏色,並且讓body以及各個div有一定的margin(外邊距)。

如果3個子塊都沒有設置浮動方式,在父盒子中,由於div元素是塊元素,因此4個盒子各自向右伸展,並且自上而下排列,如下圖:

1、設置第1個div浮動

 
#son1
{
    /*這裡設置son1的浮動方式*/
    float:left;
}

在浏覽器預覽效果如下:

分析:

由於box1設置為左浮動,box1變成了浮動元素,因此此時box1的寬度不再延伸,其寬度為容納內容的最小寬度,而相鄰的下一個div元素(box2)就會緊貼著box1,這是由於浮動引起的效果。

大家可以在“在線代碼測試工具”工具中,設置一下box1右浮動,看看是怎樣的。

2、設置第2個div浮動

 
#son2
{
    /*這裡設置son2的浮動方式*/
    float:left;
}

在浏覽器預覽效果如下:

分析:

由於box2變成了浮動元素,因此box2也跟box1一樣,寬度不再延伸,而是由內容確定寬度。並且相鄰的下一個div元素(box3)變成緊貼著浮動的box2。

大家會覺得很奇怪,為什麼這個時候box1和box2之間有一定的距離呢?其實原因是這樣的:我們在CSS中設置了box1、box2和box3都有一定的外邊距(margin:15px;),如果box1為浮動元素,而相鄰的box2不是浮動元素,則box2就會緊貼著box1;但是如果box1和box2同時為浮動元素,外邊距就會生效。這是由於浮動元素的特性決定的。大家不需要深究這個問題。“浮動”這個復雜的性質,我們只需要多加練習,慢慢就會感性認知它的各種性質。

在這裡,大家可以在在線工具中,設置一下box2右浮動,看看是怎樣的。

3、設置第3個div浮動

 
#son3
{
    /*這裡設置son3的浮動方式*/
    float:left;
}

在浏覽器預覽效果如下:

分析:

由於box3變成了浮動元素,因此box3跟box2和box1一樣,寬度不再延伸,而是由內容確定寬度,並且相鄰的下一個p元素(box3)變成緊貼著浮動的box3。

由於box1、box2和box3都是浮動元素,box1、box2和box3之間的margin屬性生效。

4、改變浮動的方向

在這裡,我們將box3浮動方式改為“float:right”,在浏覽器預覽效果如下:

float屬性是CSS布局中非常重要的屬性,我們常常通過對div元素應用float浮動來進行布局,不但對整個版式進行規劃,也可以對一些基本元素,如導航等進行排列。

浮動,這個屬性對於初學者來說,並不能立刻掌握,需要經歷過大量的練習,然後細細體會這些訓練中。本教程精選了大量的練習,希望讀者細細體會。

XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved