css实现九宫格图片自适应布局

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