搜尋
首頁web前端前端問答一起聊聊CSS浮動佈局及文檔流程

這篇文章為大家帶來了關於css中浮動佈局以及文檔流的相關知識,其中包括正常文檔流以及脫離文檔流,希望對大家有幫助。

一起聊聊CSS浮動佈局及文檔流程

文件流程簡介

什麼叫「文件流程」?簡單來說,就是指元素在頁面中出現的先後順序。可分為「正常文件流」和「脫離文檔流」。

1、正常文件流程

正常文件流,又稱為“普通文件流”或“普通流”,也就是W3C標準所說的“normal flow”。正常文件流的簡單定義是:「正常文件流,將一個頁面從上到下分為一行一行的,其中塊元素獨佔一行,相鄰行內元素在每一行中按照從左到右排列直到該行排滿。」即,正常文件流指的就是預設情況下頁面元素的佈局情況。

如p、p、hr都是區塊元素,因此獨佔一行。而span、i、img都是行內元素,因此如果兩個行內元素相鄰,就會位於同一行,並且從左到右排列。

2、脫離文件流程

脫離文件流,指的是脫離正常文件流。而想要改變正常文件流,可以使用兩種方法:浮動和定位。

正常文件流程效果:

nbsp;html>
    <meta>
    <meta>
    <meta>
    <title>正常文档流</title>
    <style>
        /* 定义父元素样式 */
        .father{
            width: 300px;
            background-color: #0c6a9d;
            border: 1px solid silver;
        }

        /* 定义子元素样式 */
        .father p{
            padding: 10px;
            margin: 15px;
            border: 2px dashed rebeccapurple;
            background-color: #fcd568;
        }
    </style>
    <p>
        </p><p>box1</p>
        <p>box2</p>
        <p>box3</p>
    

一起聊聊CSS浮動佈局及文檔流程
#設定浮動後的效果:
當我們為第二、三個p元素設定左浮動時:正常文件流情況下,p是​​塊元素,會獨佔一行。但是由於設定了浮動,第二、三個p元素卻是並列一行,並且跑到父元素之外,跟正常文檔流不一樣。也就是說,設定浮動使得元素脫離了正常文件流。
一起聊聊CSS浮動佈局及文檔流程
設定定位後的效果:
當我們為第三個p元素設定絕對定位的時候:由於設定了定位,第三個p元素跑到父元素的上面去了。也就是說,設定了定位使得元素脫離了文件流。
一起聊聊CSS浮動佈局及文檔流程

浮動

在傳統的印刷佈局中,文字可以按照實際需要來圍繞圖片,我們一般把這種方式稱為「文字環繞」。在前端開發中,使用了浮動的頁面元素其實就像在印刷版面裡被文字包圍的圖片一樣。這樣比喻,就很好理解了。浮動是CSS佈局的最佳利器,我們可以透過浮動來靈活地定位頁面元素,以達到佈局網頁的目的。例如我們可以透過設定float屬性讓元素向左浮動或向右浮動,以便讓周圍的元素或文字環繞著這個元素。

float屬性取值只兩2個:
一起聊聊CSS浮動佈局及文檔流程
我們再用到上文的例子:

nbsp;html>
    <meta>
    <meta>
    <meta>
    <title>正常文档流</title>
    <style>
        /* 定义父元素样式 */
        .father{
            width: 300px;
            background-color: #0c6a9d;
            border: 1px solid silver;
        }

        /* 定义子元素样式 */
        .father p{
            padding: 10px;
            margin: 15px;
            border: 2px dashed rebeccapurple;
            background-color: #fcd568;
        }
    </style>
    <p>
        </p><p>box1</p>
        <p>box2</p>
    

一起聊聊CSS浮動佈局及文檔流程
接下來我們分別為box1添加左浮動,為box2添加右浮動:

.son1{float: left;}
.son2{float: right;}

一起聊聊CSS浮動佈局及文檔流程

#由上述例子可見浮動會影響周圍元素,並且還會引發許多意想不到的問題。在CSS中,我們可以使用clear屬性來清除浮動所帶來的影響。

clear屬性取值如下:
一起聊聊CSS浮動佈局及文檔流程
在實際開發中,我們幾乎不會使用「clear:left;」或「clear:right;」來單獨清除左浮動或右浮動,往往都是直截了當地使用「clear:both;」來清除所有浮動。在上述例子的基礎上我們對浮動進行清除:

nbsp;html>
    <meta>
    <meta>
    <meta>
    <title>清除浮动</title>
    <style>
        /* 定义父元素样式 */
        .father{
            width: 300px;
            background-color: #0c6a9d;
            border: 1px solid silver;
        }

        /* 定义子元素样式 */
        .father p{
            padding: 10px;
            margin: 15px;
            border: 2px dashed rebeccapurple;
            background-color: #fcd568;
        }
        .son1{float: left;}
        .son2{float: right;}
        .son3{clear: both; display: block;}
    </style>
    <p>
        </p><p>box1</p>
        <p>box2</p>
        <span></span>
    

一起聊聊CSS浮動佈局及文檔流程
我們通常都是在浮動元素後面再增加一個空元素,然後為這個空元素定義clear:both;來清除浮動。在實際開發中,使用浮動之後如果發現有什麼不對勁的地方,首先檢查有沒有清除浮動。事實上,清除浮動不只是clear:both;,還有overflow:hidden,以及更常用的偽元素。

(學習影片分享:css影片教學

以上是一起聊聊CSS浮動佈局及文檔流程的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文轉載於:CSDN。如有侵權,請聯絡admin@php.cn刪除
React中的鑰匙:深入研究性能優化技術React中的鑰匙:深入研究性能優化技術May 01, 2025 am 12:25 AM

KeysinreactarecrucialforopTimizingPerformanceByingIneFefitedListupDates.1)useKeyStoIndentifyAndTrackListelements.2)避免使用ArrayIndi​​cesasKeystopreventperformansissues.3)ChooSestableIdentifierslikeIdentifierSlikeItem.idtomaintainAinainCommaintOnconMaintOmentStateAteanDimpperperFermerfermperfermerformperfermerformfermerformfermerformfermerment.ChosestopReventPerformissues.3)

反應中的鍵是什麼?反應中的鍵是什麼?May 01, 2025 am 12:25 AM

ReactKeySareUniqueIdentifiers usedwhenrenderingListstoimprovereConciliation效率。 1)heelPreactrackChangesInListItems,2)使用StableanDuniqueIdentifiersLikeItifiersLikeItemidSisRecumended,3)避免使用ArrayIndi​​cesaskeyindicesaskeystopreventopReventOpReventSissUseSuseSuseWithReRefers和4)

反應中獨特鍵的重要性:避免常見的陷阱反應中獨特鍵的重要性:避免常見的陷阱May 01, 2025 am 12:19 AM

獨特的keysarecrucialinreactforoptimizingRendering和MaintainingComponentStateTegrity.1)useanaturalAlaluniqueIdentifierFromyourDataiFabable.2)ifnonaturalalientedifierexistsistsists,generateauniqueKeyniqueKeyKeyLiquekeyperaliqeyAliqueLiqueAlighatiSaliqueLiberaryLlikikeuuId.3)deversearrayIndi​​ceSaskeyseSecialIndiceSeasseAsialIndiceAseAsialIndiceAsiall

將索引用作react中的鍵將索引用作react中的鍵May 01, 2025 am 12:17 AM

使用索引作為鍵在React中是可以接受的,但僅限於列表項順序不變且不會動態添加或刪除的情況;否則,應使用穩定且唯一的標識符作為鍵。 1)在靜態列表(如下拉菜單選項)中使用索引作為鍵是可以的。 2)如果列表項可以重新排序、添加或刪除,使用索引會導致狀態丟失和意外行為。 3)始終使用數據的唯一ID或生成的標識符(如UUID)作為鍵,以確保React正確更新DOM和維護組件狀態。

React的JSX語法:對UI設計的開發人員友好方法React的JSX語法:對UI設計的開發人員友好方法May 01, 2025 am 12:13 AM

jsxisspecialbecialbecapeitblendshtmlwithjavascript,enableComponent-lase-uidesign.1)itallowsembeddingjavascriptInhtml-likesyntax,EnhancinguidesignAndLogicIntegration.2)

使用HTML5可以播放哪種類型的音頻文件?使用HTML5可以播放哪種類型的音頻文件?Apr 30, 2025 pm 02:59 PM

本文討論了HTML5音頻格式和跨瀏覽器兼容性。它涵蓋MP3,WAV,OGG,AAC和WebM,並建議使用多個來源和後備以實現更廣泛的可訪問性。

SVG和Canvas HTML5元素之間的區別?SVG和Canvas HTML5元素之間的區別?Apr 30, 2025 pm 02:58 PM

SVG和畫布是Web圖形的HTML5元素。基於向量的SVG擅長可擴展性和交互性,而基於像素的畫布則更適合遊戲等性能密集型應用程序。

使用HTML5可能會拖放嗎?使用HTML5可能會拖放嗎?Apr 30, 2025 pm 02:57 PM

HTML5可以通過特定的事件和屬性進行拖放,從而允許自定義,但面臨舊版本和移動設備上的瀏覽器兼容性問題。

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

EditPlus 中文破解版

EditPlus 中文破解版

體積小,語法高亮,不支援程式碼提示功能

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )專業的PHP整合開發工具

SecLists

SecLists

SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境