您好,登錄后才能下訂單哦!
這篇文章給大家介紹css中有哪些實現等高布局常的方法,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。
css是一種用來表現HTML或XML等文件樣式的計算機語言,主要是用來設計網頁的樣式,使網頁更加美化。它也是一種定義樣式結構如字體、顏色、位置等的語言,并且css樣式可以直接存儲于HTML網頁或者單獨的樣式單文件中,而樣式規則的優先級由css根據這個層次結構決定,從而實現級聯效果,發展至今,css不僅能裝飾網頁,也可以配合各種腳本對于網頁進行格式化。
等高布局的方式
指在同一個父容器中,子元素高度相等的布局.
從等高布局實現方式來說,又分為兩類
偽等高
子元素高度差依然存在,只是視覺上給人感覺就是等高.
真等高
子元素高度相等
先來看看偽等高實現方式
通過負margin和Padding實現
真等高實現方式
table
absoult
flex
grid
js
偽等高之-負margin和padding
主要利用負margin來實現, 具體 負margin實現可以參考下這篇文章
<div class="layout parent"> <div class="left"><p>left</p></div> <div class="center"> <p>我是中間部分的內容</p> <p>我是中間部分的內容</p> <p>我是中間部分的內容</p> <p>我是中間部分的內容</p> </div> <div class="right"><p>right</p></div> <div style="clear: both;">11111111111</div> </div>
.parent{ position: relative; overflow:hidden; color: #efefef; } .center, .left, .right { box-sizing: border-box; float: left; } .center { background-color: #2ECC71; width: 60%; } .left { width: 20%; background-color: #1ABC9C; } .right { width: 20%; background-color: #3498DB; } .left, .right, .center { margin-bottom: -99999px; padding-bottom: 99999px; }
真實等高之 - table布局
<div class="layout parent"> <div class="left"><p>left</p></div> <div class="center"> <p>我是中間部分的內容</p> <p>我是中間部分的內容</p> <p>我是中間部分的內容</p> <p>我是中間部分的內容</p> </div> <div class="right"><p>right</p></div> <div style="clear: both;">11111111111</div> </div>
.parent{ position: relative; display: table; color: #efefef; } .center, .left, .right { box-sizing: border-box; display: table-cell } .center { background-color: #2ECC71; width: 60%; } .left { width: 20%; background-color: #1ABC9C; } .right { width: 20%; background-color: #3498DB; }
真實等高之 - absolute
<div class="layout parent"> <div class="left"><p>left</p> </div> <div class="center"> <p>我是中間部分的內容</p> <p>我是中間部分的內容</p> <p>我是中間部分的內容</p> <p>我是中間部分的內容</p> </div> <div class="right"><p>right</p></div> </div>
.parent{ position: absolute; color: #efefef; width:100%; height: 200px; } .left, .right, .center { position: absolute; box-sizing: border-box; top:0; bottom:0; } .center { background-color: #2ECC71; left: 200px; right: 300px; } .left { width: 200px; background-color: #1ABC9C; } .right { right:0; width: 300px; background-color: #3498DB; }
真實等高之 - flex
.parent{ display: flex; color: #efefef; width:100%; height: 200px; } .left, .right, .center { box-sizing: border-box; flex: 1; } .center { background-color: #2ECC71; } .left { background-color: #1ABC9C; } .right { background-color: #3498DB; }
<div class="layout parent"> <div class="left"><p>left</p> </div> <div class="center"> <p>我是中間部分的內容</p> <p>我是中間部分的內容</p> <p>我是中間部分的內容</p> <p>我是中間部分的內容</p> </div> <div class="right"><p>right</p></div> </div>
真實等高之 - grid
.parent{ display: grid; color: #efefef; width:100%; height: 200px; grid-template-columns: 1fr 1fr 1fr; } .left, .right, .center { box-sizing: border-box; } .center { background-color: #2ECC71; } .left { background-color: #1ABC9C; } .right { background-color: #3498DB; }
<div class="layout parent"> <div class="left"><p>left</p> </div> <div class="center"> <p>我是中間部分的內容</p> <p>我是中間部分的內容</p> <p>我是中間部分的內容</p> <p>我是中間部分的內容</p> </div> <div class="right"><p>right</p></div> </div>
真實等高之 - js
獲取所有元素中最高列,然后再去比對再進行修改
<div class="layout parent"> <div class="left"><p>left</p> </div> <div class="center"> <p>我是中間部分的內容</p> <p>我是中間部分的內容</p> <p>我是中間部分的內容</p> <p>我是中間部分的內容</p> </div> <div class="right"><p>right</p></div> </div>
.parent{ overflow: auto; color: #efefef; } .left, .right, .center { float: left; } .center { width: 60%; background-color: #2ECC71; } .left { width: 20%; background-color: #1ABC9C; } .right { width: 20%; background-color: #3498DB; }
// 獲取最高元素的高度 var nodeList = document.querySelectorAll(".parent > div"); var arr = [].slice.call(nodeList,0); var maxHeight = arr.map(function(item){ return item.offsetHeight }).sort(function(a, b){ return a - b; }).pop(); arr.map(function(item){ if(item.offsetHeight < maxHeight) { item.style.height = maxHeight + "px"; } });
關于css中有哪些實現等高布局常的方法就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。