CSS三欄佈局的實作方法總結(程式碼範例)
這篇文章帶給大家的內容是關於CSS三欄佈局的實現方法總結(程式碼範例),有一定的參考價值,有需要的朋友可以參考一下,希望對你有幫助。
對於前端來說,佈局也是必須掌握的,一個好的佈局可以讓頁面看起來更美觀。提到佈局,那就不得不說CSS三欄佈局。這是前端面試常會問到的一個問題,算是基礎題。所謂的三欄佈局,一般是指左右兩邊固定中間自適應,或是中間固定左右兩邊自適應。
左右兩邊固定中間自適應
聖杯佈局
#HTML結構設定
新建一個父元素,包含三個子元素:left、main、right(注意,main在寫在前面,這樣在頁面渲染時會先載入中間,針對面試題優先載入中間部分)
style樣式設定
1、父元素設定高度
2、三個元素皆設定浮動
3、中間main部分定寬100%:width: 100%,左右兩邊依產品需求設定寬高
4、左邊設定margin- left: -100%;右邊設定margin-right: -右盒子寬
5、父元素設定padding-left: 左盒子寬;padding-right: 右盒子寬
6、左右盒子相對定位
<div class="container"> <div class="main f">go aheadgo aheadvgo aheadgo aheadgo aheadgo aheadgo aheadgo aheadgo aheadgo aheadgo aheadgo aheadgo aheadgo aheadgo aheadgo ahead</div> <div class="left f"></div> <div class="right f"></div> </div> <style> body { min-width: 700px; } .container { height: 300px; padding: 0 200px 0 200px; } .f { float: left; } .main { width: 100%; height: 300px; background-color: cornflowerblue; } .left { width: 200px; height: 300px; background-color: indianred; margin-left: -100%; position: relative; left: -200px; } .right { width: 200px; height: 300px; background-color: lightgreen; margin-left: -200px; position: relative; right: -200px; } </style>
此佈局受內部元素影響而破壞佈局的機率低,但是當瀏覽器螢幕縮小的一定程度時,左右兩側的內容會掉下來,或發生重疊現象。解決方案,為body加上最小寬度(起碼大於左右兩側寬度總和)
雙飛翼佈局
與聖杯佈局的想法是一致的,只是有一些細微的差別。
HTML結構設定
新建一個父元素,包含三個子元素:left、main、right(注意,main在寫在前面,這樣在頁面渲染時會先載入中間,針對面試題優先載入中間部分)
style樣式設定
1、父元素設定高度
2、三個元素皆設定浮動
3、中間main部分定寬100 %:width: 100%,左右兩邊依產品需求設定寬高
4、中間main部分再加一個盒子inner,放置內容(與聖杯佈局的不同點)
5、左邊設定margin-left: -100%;右邊設定margin-right: -右盒子寬
6、新加入盒子,inner,設定左右padding或margin
<div class="container"> <div class="main f"> <div class=inner>go aheadgo aheadvgo aheadgo aheadgo aheadgo aheadgo aheadgo aheadgo aheadgo aheadgo aheadgo aheadgo aheadgo aheadgo aheadgo ahead</div> </div> <div class="left f"></div> <div class="right f"></div> </div> <style> .container { height: 300px; } .f { float: left; } .main { width: 100%; height: 300px; background-color: cornflowerblue; } .left { width: 200px; height: 300px; background-color: indianred; margin-left: -100%; } .right { width: 200px; height: 300px; background-color: lightgreen; margin-left: -200px; } .inner { padding: 0 200px 0 200px; } </style>
自身浮動
HTML結構設定
新建三個元素:left、right、main(注意,main寫在後面)
style樣式設定
1、左盒子左浮動,右盒子右浮動
2、中間部分設定margin或padding值
<div class="left"></div> <div class="right"></div> <div class="main">我是中间内容我是中间内容我是中间内容我是中间内容我是中间内容我是中间内容我是中间内容我是中间内容我是中间内容我是中间内容</div> <style> .main { margin: 0 200px 0 200px; background-color: red; height: 200px; } .left { float: left; width: 200px; background-color: blue; height: 200px; } .right { float: right; width: 200px; background-color: pink; height: 200px; } </style>
CSS3新功能:flex
HTML結構設定
新建一個父元素,包含三個子元素:left、main 、right(注意,main寫在中間)
style樣式設定
1、父元素設定寬度為100%,display: flex;
2、左右兩則依產品需求設定寬高
3、中間部分設定flex: 1;
<div class="container"> <div class="left"></div> <div class="main">我是中间内容我是中间内容我是中间内容我是中间内容我是中间内容我是中间内容我是中间内容我是中间内容我是中间内容我是中间内容</div> <div class="right"></div> </div> <style> .container { width: 100%; height: 200px; display: flex; } .main { flex: 1; background-color: red; height: 200px; } .left { width: 200px; background-color: blue; height: 200px; } .right { width: 200px; background-color: pink; height: 200px; } </style>
還有其他的寫法,這裡就不一一贅述,只是列舉了一些比較常用的,以及面試可能會問到的情況。 CSS3還有很多好玩的特性,在工作和學習的過程中值得深入研究。
中間固定左右兩邊自適應
浮動負邊距(聖杯佈局)
HTML結構設定
新建一個父元素,包含三個子元素:left、main、right(注意,main寫在中間)
style樣式設定
1、左右兩邊各佔50%的寬度
2、左負邊距margin-left 佔中間p寬度的一半
3、右邊負邊距margin-right 也佔中間p寬度的一半
<div class="container"> <div class="left"></div> <div class="main">我是中间内容</div> <div class="right"></div> </div> <style> .main { width: 100px; text-align: center; float: left; background-color: lightgreen; height: 300px; } .left { height: 300px; float: left; width: 50%; margin-left: -50px; background-color: pink; } .right { height: 300px; float: right; width: 50%; margin-right: -50px; background-color: cornflowerblue; } </style>
CSS3新特性:flex
HTML結構設定
新建一個父元素,包含三個子元素:left、main、right
style樣式設定
#1、父元素設定display: flex;flex- direction: row;
2、左右設定flex-grow: 1,平分剩餘空間
<div class="container"> <div class="left"></div> <div class="main">我是中间内容</div> <div class="right"></div> </div> <style> .container { display: flex; flex-direction : row; } .main { width: 200px; height: 300px; text-align: center; background-color: lightgreen; } .left { height: 300px; flex-grow: 1; background-color: pink; } .right { height: 300px; flex-grow: 1; background-color: cornflowerblue; } </style>
CSS3特性calc(四則運算)
用於動態計算長度值。要注意的是,運算子前後都需要保留一個空格,例如:width: calc(100% - 50px)。
HTML結構設定
新一個父元素,包含三個子元素:left、main、right
##style樣式設定1、父元素設置100%寬; 2、左右設定width: calc(50%, - 中間寬/2)
<div class="container"> <div class="left"></div> <div class="main">我是中间内容</div> <div class="right"></div> </div> .container { width: 100%; height: 300px; } .f { float: left; } .main { width: 100px; text-align: center; background-color: lightgreen; height: 300px; } .left { height: 300px; background-color: pink; width: calc(50% - 50px); /*平分中间部分的宽度*/ } .right { height: 300px; background-color: cornflowerblue; width: calc(50% - 50px); /*平分中间部分的宽度*/ }
#
以上是CSS三欄佈局的實作方法總結(程式碼範例)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

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

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

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

純CSS3怎麼實現波浪效果?這篇文章就來跟大家介紹一下使用 SVG 和 CSS 動畫來製作波浪效果的方法,希望對大家有幫助!

兩種方法:1、利用display屬性,只要為元素加上「display:none;」樣式即可。 2.利用position和top屬性設定元素絕對定位來隱藏元素,只需為元素加上「position:absolute;top:-9999px;」樣式。

在css中,可以利用border-image屬性來實作花邊邊框。 border-image屬性可以使用圖片來建立邊框,即給邊框加上背景圖片,只需要將背景圖片指定為花邊樣式即可;語法「border-image: url(圖片路徑) 向內偏移值圖像邊界寬度outset 是否重複;」。

實作方法:1、使用「:active」選擇器選取滑鼠點擊圖片的狀態;2、使用transform屬性和scale()函數實現圖片放大效果,語法「img:active {transform: scale(x軸放大倍率,y軸放大倍率);}」。

怎麼製作文字輪播與圖片輪播?大家第一想到的是利用js,其實利用純CSS也能實現文字輪播與圖片輪播,下面來看看實作方法,希望對大家有幫助!

在css3中,可以利用「animation-timing-function」屬性來設定動畫旋轉速度,該屬性用於指定動畫將如何完成一個週期,設定動畫的速度曲線,語法為「元素{animation-timing-function:速度屬性值;}」。

css3中的動畫效果有變形;可以利用「animation:動畫屬性@keyframes ..{..{transform:變形屬性}}」實現變形動畫效果,animation屬性用於設定動畫樣式,transform屬性用於設定變形樣式。
