我之前写九宫格自适应布局的时候,每个格子是使用媒体查询器(@media)或者js动态设置css,根据不同的手机屏幕宽度,适配不同手机,但是这样有个很大的缺点,那就是移动端的屏幕尺寸太多了,就得写很多代码,才能实现我们想要的效果。
今天突发奇想,使用了纯css实现了我想要的效果,下面就和大家来分享,上代码;
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>九宫格</title>
<meta name="viewport" content="maximum-scale=1.0,minimum-scale=1.0,user-scalable=0,initial-scale=1.0,width=device-width" />
<style type="text/css">
a, body, center, cite, code, dd, del, div, dl, dt, em, fieldset, figcaption, figure, footer, form, h1, h2, h3, h4, h5, h6, header, hr, html, img, input, label, legend, li, mark, ol, p, section, span, strong, textarea, time, ul, var input{
margin: 0;
border: 0;
padding: 0;
font-style: normal;
color: #323232;
box-sizing: border-box;
-moz-box-sizing:border-box; /* Firefox */
-webkit-box-sizing:border-box; /* Safari */
}
html,body{
background: #fff;
}
ul{
text-decoration: none;
list-style-type: none;
}
.video_list>li{
float: left;
width: 32%;
text-align: center;
border: 1px solid #ccc;
padding-top: 31%;
margin-left: 1%;
margin-top: 1%;
position: relative;
}
.video_list>li>div{
position: absolute;
left: 0;
top: 0;
width: 100%;
height: 100%;
background-color: #09BE07;
}
.video_list>li>div>span{
display: inline-block;
margin-top: 50%;
-webkit-transform: translateY(-50%);
transform: translateY(-50%);
}
</style>
</head>
<body>
<ul class="video_list">
<li><div><span>1</span></div></li>
<li><div><span>2</span></div></li>
<li><div><span>3</span></div></li>
<li><div><span>4</span></div></li>
<li><div><span>5</span></div></li>
<li><div><span>6</span></div></li>
<li><div><span>7</span></div></li>
<li><div><span>8</span></div></li>
<li><div><span>9</span></div></li>
</ul>
</body>
</html>
里面包括了css的简单初始化,去除后,真正实现的代码没有几行。
如果我们放的是图片,那么就把span标签换成img标签,并且css给img加上width:100%;height:100%;就可以了