這篇文章要跟大家介紹的內容是關於css中聖杯佈局和雙飛翼佈局的介紹(附代碼),有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。
聖杯佈局
<div>#header</div> <div> <div>#center</div> <div>#left</div> <div>#right</div> </div> <div>#footer</div>
實現的效果主要在container中,left 和rgith固定寬度,center首先渲染,且自適應寬度。
body { min-width: 500px; } #container { overflow: auto; /* BFC */ padding-left: 180px; padding-right: 150px; } #container .column { height: 200px; position: relative; float: left; } #center { background-color: #e9e9e9; width: 100%; } #left { background-color: red; width: 180px; right: 180px; margin-left: -100% } #right { background-color: blue; width: 150px; margin-right: -150px; } #header, #footer { background-color: #c9c9c9; }
這個方案幾個注意的點:
center元素位於left和right之前,可以讓center先渲染,使用者先看到頁面的主要內容。
container (width:100%)包裹著三欄內容,透過padding-left和padding-right為左右兩欄騰出空間。
center,left,right都設定一個左浮動(float:left),所以container內部是一個浮動流。
透過給left 元素設定
margin-left: -100%
,使得left移動到container的左上角,在透過position:relative;right : 180px
,移到container的padding-left的位置上去。給right 元素設定
margin-right: -150px
,使得它移到container的padding-right的位置上去。
ps: margin-left 和 margin-right 利用了浮動流的特性,使得第一行能夠同時容納center,left,right這三個元素。
聖杯佈局(flexbox實作)
<div>#header</div> <div> <div>#center</div> <div>#left</div> <div>#right</div> </div> <div>#footer</div>body { min-width: 550px; } #HolyGrail { display: flex; min-height: 100vh; flex-direction: column; } #container { display: flex; flex: 1; } #center { background-color: #e9e9e9; flex: 1; } #left { background-color: red; order: -1; width: 150px; } #right { background-color: blue; width: 150px; } #header, #footer { height: 50px; background-color: #c9c9c9; }如果不考慮ie10及以下的瀏覽器,那麼可以使用flex來實現聖杯佈局。而且聖杯佈局可以透過讓container填滿高度來使得footer達到一個sticky的效果。
flex相容性雙飛翼佈局
#聖杯佈局和雙飛翼佈局解決的問題是一樣的,就是兩邊定寬,中間自適應的三欄佈局,中間欄要在放在文件流前面以優先渲染。聖杯佈局和雙飛翼佈局解決問題的方案在前一半是相同的,也就是三欄全部float浮動,但左右兩欄加上負margin讓其跟中間欄p並排,以形成三欄佈局。 不同的地方在於解決中間p內容不被遮蔽的思路上面
#聖杯佈局的為了中間內容不被修改,是透過包裹元素的
padding-left
和padding-right
來使得內容p置於中間,然後再透過相對定位position:relative
,配合right或left屬性讓左右兩欄不則當中間內容。雙飛翼佈局的解決方案是:透過再中間元素的內部新增一個p用於放置內容,然後透過左右外邊距
margin-left
和margin-right
為左右兩欄留出位置。雙飛翼佈局多了1個p標籤,少用了4個css屬性。少用了padding-left,padding-right,左右兩個p用相對佈局position: relative及對應的right和left,多了margin-left,margin-right。
<div>#header</div> <div> <div> <div>#center</div> </div> <div>#left</div> <div>#right</div> </div> <div>#footer</div>body { min-width: 500px; } #container { overflow: auto; /* BFC */ } #container .column { height: 200px; float: left; } #center { background-color: #e9e9e9; width: 100%; } #center-content { margin-left: 180px; margin-right: 150px; } #left { width: 180px; background-color: red; margin-left: -100%; } #right { background-color: blue; width: 150px; margin-left: -150px; } #header, #footer { background-color: #c9c9c9; }相關文章推薦:
以上是css中聖杯佈局和雙飛翼佈局的介紹(附代碼)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

文章討論了CSS FlexBox,這是一種佈局方法,用於有效地對齊和分佈響應設計中的空間。它說明了FlexBox用法,將其與CSS網格進行了比較,並詳細瀏覽了瀏覽器支持。

本文討論了使用CSS創建響應網站的技術,包括視口元標籤,靈活的網格,流體媒體,媒體查詢和相對單元。它還涵蓋了使用CSS網格和Flexbox一起使用,並推薦CSS框架

本文討論了CSS盒裝屬性,該屬性控制了元素維度的計算方式。它解釋了諸如Content-Box,Border-Box和Padding-Box之類的值,以及它們對佈局設計和形式對齊的影響。


熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

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

熱門文章

熱工具

Dreamweaver CS6
視覺化網頁開發工具

mPDF
mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

SAP NetWeaver Server Adapter for Eclipse
將Eclipse與SAP NetWeaver應用伺服器整合。

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

MinGW - Minimalist GNU for Windows
這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。