我有一个适应性的网页应用程序。为了避免水平滚动条,我编写了以下CSS代码:
html {
overflow-x: hidden; }
这在桌面上很好用,但在移动设备上不行。如果我在移动设备上显示应用程序,应用程序会适应得很好。问题是当我从右向左滚动时。页面会移动一点。我希望页面不要水平移动。
编辑:
并非所有移动设备都可以滚动。我已经在两个具有相同Android版本的设备上尝试过它,只有一个设备可以滚动。
检查所有的内边距。如果你给一个宽度设置为100%的元素添加内边距,它将超出父级元素。
这里展示了示例 http://jsfiddle.net/wzZ3W/
代码
<div id="fillX">
<div id="childXFill">
</div>
</div>
#fillX
{
background:red;
width:100%;
opacity:0.5;
}
#childXFill
{
background:blue;
width:100%;
padding:10px;
opacity:0.5;
}
overflow: hidden
,你可能也应该在元素上设置它。像这样:body, html { overflow-x:hidden; }
您可以将此代码放入控制台中以勾勒出所有块级/ div 元素的轮廓。您可以找到位于容器之外的元素。
[].forEach.call($$("*"),function(a){a.style.outline="1px solid #"+(~~(Math.random()*(1<<24))).toString(16)})
如果在移动设备上出现问题,您应该使用以下标签:
<meta name="viewport" content="width=device-width, initial-scale = 1.0,
maximum-scale=1.0, user-scalable=no" />
这将设置宽度为设备宽度。
user-scalable-no
也无法在Safari上工作。 - Chukwualuka Chiama您需要确保父容器的宽度不超过移动屏幕尺寸。
因此,最好为所有内容使用百分比宽度,并确保没有内容具有大于移动屏幕尺寸的固定宽度。
.container
或.container-fluid
将您的.row
进行包装,这将解决该问题。<meta name="viewport" content="width=device-width, initial-scale = 1.0,maximum-scale=1.0, user-scalable=no" />
body, html { overflow-x:hidden; }
user-scalable=no
设置为“否”。 - gillytech.opened {
display: block;
height: 90%;
transition: height 1s ease-in-out;
}
.closed {
display: none;
height: 0px;
transition: height 1s ease-in-out;
}
//之前使用的是''width''而不是//
除了Dexter的Bootstrap评论中关于填充的顶级答案,Bootstrap用户还应该查看各种间距实用程序/类。
下面是当前文档的链接,但您可能需要查看适用于您的Bootstrap版本的相关文档。
任何带有p-或px-的内容都可能导致水平滚动问题,即使包含在.row内。
有时pl-或pr-可以解决创建水平滚动条的px-。或者px-2可以替代px-5。
这些类使用格式{property}{sides}-{size}(xs)和{property}{sides}-{breakpoint}-{size}(sm、md、lg和xl)进行命名。
* { outline: 1px红色实线!important; visibility: visible!important }
,并发现了原因。谢谢! - gillytech