css 兩邊固定,中間自適應布局

2021-09-29 07:47:58 字數 2289 閱讀 6942

參考:

相同點:利用布局,可優先渲染主要部分

不同點:

聖杯布局:借助的是其他非主要元素覆蓋了其父元素的padding值所佔據的寬度,同乙個杯子,非主要元素其只是佔據了全部容器的padding值部分;

雙飛翼布局:給主要部分main-wrap新增乙個外層元素main,其他非主要元素所佔據的空間是主要部分(main-wrap)的margin空間,像鳥的兩個翅膀,與主要部分main脫離(main和main-wrap是下面雙飛翼布局的元素id)

優點:不需要新增dom節點

缺點:聖杯布局的缺點:正常情況下是沒有問題的,但是特殊情況下就會暴露此方案的弊端,如果將瀏覽器無線放大時,「聖杯」將會「破碎」掉。如圖,當main部分的寬小於left部分時就會發生布局混亂。(main<

!doctype html>

"utf-8"

>

<

/title>

"text/css"

>

padding:

0100px;

overflow:hidden;

}.col

.main

.left,

.right

.left

.right

<

/style>

<

/head>

=>

="col main"

>main<

/section>

="col left"

>left<

/aside>

="col right"

>right<

/aside>

<

/section>

<

/body>

<

/html>目的:為了優先顯示中間主要部分,瀏覽器渲染引擎在構建和渲染渲染樹是非同步的(誰先構建好誰先顯示),故在編寫時,先構建中間main部分,但由於布局原因,將left置於center左邊,故而出現了雙飛翼布局。

優點:不會像聖杯布局那樣變形

缺點:多加了一層dom節點

<

!doctype html>

"utf-8"

>

<

/title>

"text/css"

>

body

.col

#main

#main-wrap

#left,#right

#left

#right

<

/style>

<

/head>

"container"

>

"main"

class

="col"

>

"main-wrap"

> #main <

/div>

<

/div>

"left"

class

="col"

>#left<

/div>

"right"

class

="col"

>#right<

/div>

<

/div>

<

/body>

<

/html>

<

!doctype html>

"utf-8"

>

<

/title>

header,footer

}.main

.left,

.right

.left

.right

<

/style>

<

/head>

header<

/header>

=>

="col main"

>main<

/section>

="col left"

>left<

/aside>

="col right"

>right<

/aside>

<

/section>

footer<

/footer>

<

/body>

<

/html>

經典布局 兩邊固定中間自適應

方法一 左右使用浮動,中間設定margin left和margin right 這種方式很簡單,就是讓左邊的左浮動,右邊的右浮動,然後通過設定中間的margin將內容從兩邊拉回來。例項效果圖.png 如下 我是右邊 我是中間 方法二在container中,我們將middle放在left和right的...

CSS 三欄布局,兩邊固定,中間自適應

基於純float實現的三欄布局需要將中間的內容放在html結構的最後,否則右側會沉在中間內容的下側原理 元素浮動後,脫離文件流,後面的元素受浮動影響,設定受影響元素的margin值即可 基於絕對定位的三欄布局 注意絕對定位的元素脫離文件流,相對於最近的已經定位的祖先元素進行定位。無需考慮html中結...

css實現兩邊固定,中間自適應

經常有需求,所以就總結一下,有需要的時候直接複製貼上啦 布局的原理是margin負值法。首先需要在center元素外部包含乙個div,包含div需要設定float屬性使其形成乙個bfc,並設定寬度,並且這個寬度要和left塊的margin負值進行配合,具體原理參考這裡。這裡對聖杯布局解釋特別詳細。h...