很多话题在这个…但没有得到点如何做到这一点。
我有我的JQM页眉和页脚。我希望内容区域填充头和脚之间的100%高度。
这是我的代码,怎么可能?
- <body>
- <div data-role="page" id="entryPage" data-theme="d">
- <div data-role="header" id="header" data-position="fixed" data-theme="d">
- <h1>Page Title</h1>
- </div><!-- /header -->
- <div data-role="content" id="content" data-theme="d">
- <div id="columnwrapper">
- <div id="leftcolumn">
- <div class="innertube">
- Point 1
- </div>
- <div class="innertube">
- Point 1
- </div>
- </div>
- </div>
- <div id="rightcolumn">
- <div class="innertube">
- <div id="switch1">
- test
- </div>
- </div>
- <div class="innertube">
- test2
- </div>
- </div>
- <div id="contentcolumn">
- <div class="innertube">Content</div>
- <div class="innertube">Content</div>
- </div>
- </div><!-- /content -->
- <div data-role="footer" id="footer" data-position="fixed" data-theme="d">
- <div id="switch2">
- <a href="#foo" data-role="button" data-icon="arrow-u">Expand main menu</a>
- </div>
- </div><!-- /footer -->
- </div><!-- /page -->
- </body>
CSS:
- #columnwrapper{
- float: left;
- width: 100%;
- margin-left: -75%; /*Set left margin to -(contentcolumnWidth)*/
- background-color: #C8FC98;
- }
- #leftcolumn{
- margin: 0 40px 0 75%; /*Set margin to 0 (rightcolumnWidth) 0 (contentcolumnWidth)*/
- background: #C8FC98;
- }
- #rightcolumn{
- float: left;
- width: 40px; /*Width of right column*/
- margin-left: -40px; /*Set left margin to -(RightColumnWidth)*/
- background: yellowgreen;
- }
- #contentcolumn{
- float: left;
- width: 75%; /*Width of content column*/
- background-color: blue;
- }
- .innertube{
- margin: 0px; /*Margins for inner DIV inside each column (to provide padding)*/
- margin-top: 0;
- }
实际上,内部区域仅根据内容填充高度…意味着2 divs 2行,但不是100%..
谢谢
解决方法
CSS位置:固定在移动浏览器中无法正常工作。我的经验是使用Android和iOS浏览器,而且没有任何一个隐含的位置:正确修复(例外是iOS 5浏览器,但仍处于测试阶段)。
当用户在移动浏览器中滚动时,不必将元素固定到屏幕上,而不是移动它,它往往被视为位置:absolute,当页面滚动时移动。
同样使用CSS overflow属性将不允许在大多数移动设备上滚动(iOS支持它,但用户必须知道在滚动滚动滚动滚动滚动条上使用两根手指)。
然而,您可以使用CSS,但请注意,您将需要使用position:absolute或您可以使用JavaScript来设置元素的高度。
这是一个使用JavaScript来设置伪页面元素高度的jQuery Mobile解决方案:
- $(document).delegate('#page_name','pageshow',function () {
- var the_height = ($(window).height() - $(this).find('[data-role="header"]').height() - $(this).find('[data-role="footer"]').height());
- $(this).height($(window).height()).find('[data-role="content"]').height(the_height);
- });
要获得完美的完成,您需要考虑目标设备地址栏的行为,因为如果您想要一个全屏网页,那么您必须将地址栏的高度添加到页面的高度。