1. 首先看下九宮格的效果圖:

2. html代碼比較簡單,如下:
<div class="main">
<div class="box1"></div>
<div class="box2"></div>
<div class="box3"></div>
<div class="box4"></div>
<div class="box5"></div>
<div class="box6"></div>
<div class="box7"></div>
<div class="box8"></div>
<div class="box9"></div>
</div>
3. css代碼也不多 : )
* { padding: 0; margin: 0; }
.main {
background-color: #fff;
width: 100%;
padding-bottom: 100%;
padding-left: 0.5%;
padding-top: 0.5%;
}
.main>div {
width: 31%;
padding-bottom: 31%;
border: 1% solid #fff;
background-color: mediumpurple;
border-radius: 3%;
float: left;
margin: 1%;
}
接下來分析一下如何實現等寬高的,這里主要使用 padding-bottom 屬性來實現高與寬一樣的!
1. padding 屬性 : 當該屬性的值用%表示時, 是基於父元素的寬度的百分比 的內邊距。
上面的css代碼就是通過設置padding與寬度的百分比一致來實現等寬高的格子的 : )
2. 要實現九個格子固定位置, 還要計算出每個格子的寬度以及邊距margin, 這些是根據項目的實際情況計算的 : )
但上面僅僅是實現沒有內容的九宮格,如果往里面添加內容,是會亂的, 所以下面說一下如果往格子里添加內容(完整代碼):
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width,initial-scale=1.0,maximum-scale=1.0,minimum-scale=1.0,user-scalable=no">
<meta name="format-detection" content="telephone=no">
<title>九宮格</title>
<style>
* { padding: 0; margin: 0; }
.main {
background-color: #fff;
width: 100%;
padding-bottom: 100%;
padding-left: 0.5%;
padding-top: 0.5%;
}
.main .box {
width: 31%;
padding-bottom: 31%;
border: 1% solid #fff;
background-color: mediumpurple;
border-radius: 3%;
float: left;
margin: 1%;
position: relative; /*父元素給相對定位*/
}
.main .box .content {
position: absolute; /*子元素給絕對定位*/
width: 100%;
height: 100%;
}
</style>
</head>
<body>
<div class="main">
<div class="box">
<div class="content">
格子1
</div>
</div>
<div class="box">
<div class="content">
格子2
</div>
</div>
<div class="box">
<div class="content">
格子3
</div>
</div>
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
</div>
</body>
</html>
格子內部是一個和格子等寬高的div元素,我們可以在這個標簽內添加圖標文字,組成一個好看的導航欄 : )
好啦,本次的分享就寫到這里啦, 不懂的可以在下面留言 : )
