我目前正在自学如何设置一个响应网格布局,将自动调整设备大小。到目前为止还不错,但我有一个问题,一些盒子的高度并没有调整。代码http://jsfiddle.net/shuka/tbe32q3h/
html格式

<body>
<div id="section2">
<div class="container grid2">
    <article class="col half">MAP</article>
    <article class="col half" style="background-color:#069;">
        <div class="grid2">
            <article class="col quater">BOX 1</article>
            <article class="col quater">BOX 2</article>
        </div>
        <div class="grid2">
            <article class="col quater">BOX 3</article>
            <article class="col quater">BOX 4</article>
        </div>
    </article>
    <br/>
</div>

CSS
body {
    margin: 0;
    padding: 0;
 }
#section1 br,#section2 br,#section3 br, #topbar br {
clear: both;
}
.container {
margin: auto;
max-width: 1400px;
overflow:hidden;
}

.col {
background: #eee;
float: left;
margin-left: 1.4%;
margin-bottom: 20px;
}
.grid2 .col {
width: 49.3%;
}
.grid2 .half {

/*width: 48.4%;*/
height:49.3vw;
/*max-width:678px;*/
max-height:690px;
/*float:left;*/
position:relative;
}
.grid2 .quater {
margin-left: 2.1%;
margin-bottom: 2.1%;
width: 48.95%;
height:48.95vw;
/*max-width:317px;*/
max-height:338px;
/*  float:left;*/
position:relative;
}
.grid4 .col:nth-of-type(4n+1), .grid3 .col:nth-of-type(3n+1), .grid2 .col:nth-of-type(2n+1) {
margin-left: 0;
clear: left;
}

正如您在调整大框大小时所看到的,但是问题在于4个小框的宽度会改变,但高度不变。我希望这四个盒子保持正方形,但当屏幕大小调整时变小,如果有人能发现我错过的东西,非常感谢。
干杯
舒卡

最佳答案

这是一个棘手的布局,但我做了一个小游戏,我想我有一些东西,将为你工作:
http://jsfiddle.net/CaseyRule/h0drc99g/
我决定用硬编码数字来处理最大宽度方案,如下所示:

@media (min-width: 900px) { /* max-width of container */

    .half {
        height: 450px; /* max-width * 50% */
    }

    .half.col1 {
        width: 432px; /* max-width * 48% */
    }
    .half.col2 {
        width: 450px; /* max-width * 50% */
    }
    .quarter {
        width: 216px; /* max-width * 24% */
        height: 216px; /* max-width * 24% */
    }

    .half.col1, .quarter.col1 {
        margin-right: 18px; /* max-width * 2% */
    }

    .row1 .quarter {
        margin-bottom: 18px; /* max-width * 2% */
    }
}

我以900px的最大宽度完成了这个操作,这样您就可以在jsfiddle屏幕中看到它是如何更容易地工作的,但是很容易将它更改为1400px,正如您最初所做的那样。只需更改容器的最大宽度,并计算媒体查询中的数字,如注释所示。或者,您可以使用LESS这样的预处理器自动完成所有这些计算,我强烈建议您这样做。

关于html - CSS响应式嵌套网格高度,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26846414/

10-11 06:10
查看更多