css實現響應式九宮格效果


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元素,我們可以在這個標簽內添加圖標文字,組成一個好看的導航欄 : )

 

好啦,本次的分享就寫到這里啦, 不懂的可以在下面留言   : )

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM