0

http://jsbin.com/exUmaFU/1/edit

在众多应用程序中,我喜欢 Windows 8,我最喜欢的应用程序之一是天气应用程序。今天我想尝试制作“水平页面内容”,如下面的屏幕截图中的天气应用程序所示。

我试图使用 DIV 来做到这一点,但没有任何运气。我尝试了各种方法,无论我尝试使用百分比,这都行不通。我恢复使用 em 和表格,我得到了我想要的效果,但现在我的问题是让 div 在页面宽度上至少有 90% 的宽度。

对于如何实现这种效果的任何帮助将不胜感激。

简化代码

<!DOCTYPE html>
<html>
<head>
<title>Win 8 Horizontal Content Experiment</title>
<meta charset='utf-8'>
<meta content='width=device-width, height=device-height, minimum-scale=1.0, maximum-scale=1.0' name='viewport'>
<link rel='stylesheet' href='http://code.jquery.com/mobile/1.3.1/jquery.mobile-1.3.1.min.css'>
<script src='http://code.jquery.com/jquery-1.9.1.min.js' type='text/javascript'></script>
<script src='http://code.jquery.com/mobile/1.3.1/jquery.mobile-1.3.1.min.js' type='text/javascript'></script>
<style type="text/css">
body {
    background: #000;
}

#contain {
    display: inline-block;
    position: absolute;
    width: 100%;
    height: 100%;
    overflow-y: hidden;
    overflow-x: scroll;
}

#contain table {
    height: 100%;
}

#contain td {
    width: 100%;
    height: 100%;
    border: 0px;
    padding: 0px;
    margin: 0px;
}

/* Separate DIVS Inside Container */
#contain .box {
    display: inline-block;
    width: 80em;
    height: 100%;
    background: red;
    color: #700;
}
</style>
</head>
<body>
    <div id="contain">
        <table>
            <tr>
                <td>
                    <div class="box">
                        <center><h1>Page 1</h1></center>
                    </div>
                </td>
                <td>
                    <div class="box">
                        <center><h1>Page 2</h1></center>
                    </div>
                </td>
                <td>
                    <div class="box">
                        <center><h1>Page 3</h1></center>
                    </div>
                </td>
                <td>
                    <div class="box">
                        <center><h1>Page 4</h1></center>
                    </div>
                </td>
                <td>
                    <div class="box">
                        <center><h1>Page 5</h1></center>
                    </div>
                </td>
                <td>
                    <div class="box">
                        <center><h1>Page 6</h1></center>
                    </div>
                </td>
            </tr>
        </table>
    </div>

<script type="text/javascript">
(function() {
    function scrollMenu(e) {
        e = window.event || e;
        var delta = Math.max(-1, Math.min(1, (e.wheelDelta || -e.detail)));
        document.getElementById('contain').scrollLeft -= (delta*40); // Multiplied by 40
        e.preventDefault();
    }
    if (document.getElementById('contain').addEventListener) {
        // IE9, Chrome, Safari, Opera
        document.getElementById('contain').addEventListener("mousewheel", scrollMenu, false);
        // Firefox
        document.getElementById('contain').addEventListener("DOMMouseScroll", scrollMenu, false);
    } else {
        // IE 6/7/8
        document.getElementById('contain').attachEvent("onmousewheel", scrollMenu);
    }
})();
</script>
</body>
</html>

赢 8 天气应用程序

4

1 回答 1

1

不要使用表格。使用inline-blockdivwidth: 100%height: 100%div 内position: relative, white-space: nowrap(这将使框保持在一行中)和width:100%and height:100%。确保你html, body {width: 100%; height: 100%}在你的风格中定义。我用我认为你想做的事情创建了一个 jsfiddle。

http://jsfiddle.net/taW4T/2/

于 2013-09-20T03:39:43.547 回答