我正在尝试使用CSS制作应用主屏幕。考虑一下您在其中选择应用程序的iPhone的布局。基本上是3x2的网格,占设备页面的100%。

我遇到的问题是,这被许多不同的设备使用,因此高度/宽度会根据设备而变化。

宽度工作正常,但在某些设备上高度有时会增加滚动。基本上,我希望页面在应用程序上全屏显示并且没有滚动。

这是我的HTML:

<div class="outer">
    <div class="row">
        <div class="iconL">
            <img src="http://coloredwebdesign.com/wp-content/uploads/2012/02/person-icon.png" />
        </div>
         <div class="iconR">
            <img src="http://coloredwebdesign.com/wp-content/uploads/2012/02/person-icon.png" />
        </div>
    </div>
    <div class="row">
         <div class="iconL">
            <img src="http://coloredwebdesign.com/wp-content/uploads/2012/02/person-icon.png" />
        </div>
         <div class="iconR">
            <img src="http://coloredwebdesign.com/wp-content/uploads/2012/02/person-icon.png" />
        </div>
    </div>
    <div class="row">
         <div class="iconL">
            <img src="http://coloredwebdesign.com/wp-content/uploads/2012/02/person-icon.png" />
        </div>
         <div class="iconR">
            <img src="http://coloredwebdesign.com/wp-content/uploads/2012/02/person-icon.png" />
        </div>
    </div>
</div>


这是我的CSS:

.outer{
    width: 100%;
    height: 100%;
}

.row {
    width: 100%;
}

.iconL {
    float: left;
    width: 50%;
}

.iconL img {
    float: left;
    width: 100%;
}

.iconR {
    float: left;
    width: 50%;
}

.iconR img {
    float: right;
    width: 100%;
}


我做了一个JSFilddle:http://jsfiddle.net/QrbKh/

如您所见,它在那里滚动

最佳答案

百分比的问题在于它们始终相对于父元素。如果看一下开发人员工具,您会发现.outer的实际高度为0(零)。这是因为作为.outer父级的主体没有设置为0的高度设置(零的100%仍为零)。
要解决该问题,只需添加

html,
body {
    height:100%;
    width:100%;
}


到您的CSS。这使得html和body占据了整个页面。

然后加

.row {
    height:33.3%;
}

.iconL,
.iconR,
.iconL img,
.iconR img {
    height:100%;
}


对我来说很好。但是由于您不能不休息就将100除以3,所以也要加上

body {
    overflow:hidden;
}


另一种解决方案是使用视口值。

.row {
    height:33.3vh;
}


其中“ vh”代表“视口高度”。因此33.3vh是指“视口高度的1/3”。实际上,视口值具有可接受的支持:http://caniuse.com/#search=viewport

10-04 22:43
查看更多