我之前写九宫格自适应布局的时候,每个格子是使用媒体查询器(@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; 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; 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加上100%;height:100%;就可以了