【发布时间】:2020-05-02 16:10:23
【问题描述】:
我的 cshtml 中有一个包含 Bootstrap 插件的输入组。该插件被添加到表单控件中。在移动设备上,聚焦后,页面会水平向右滚动,并且可以看到页面的右边距。它在页面外滚动并停留在那里,直到输入框失去焦点,然后页面再次居中。当输入获得焦点时,如何保持页面居中? 我的代码:
<div class="col-xs-12 text-left m-b-20" data-bind="validationElement: hin">
<div>
<span id="hin"
data-bind="resourceText: 'Resource/File/Path/HIN', css: { error: hin.isModified() && !hin.isValid() }"></span>
</div>
<div class="input-group">
<span class="input-group-addon" style="background-color: white;" id="basic-addon3"><b>C</b></span>
<input id="hinInput" type="text" inputmode="numeric" class="form-control" aria-describedby="basic-addon3"
placeholder="HIN" data-bind="validationOptions: {insertMessages: false}"
onfocus="document.getElementById('hin').classList.add('focused');"
onblur="document.getElementById('hin').classList.remove('focused');" autocomplete="off" />
</div>
<p class="validationMessage" data-bind="validationText: hin"></p>
</div>
我已尝试将字体大小设置为 16 像素,以防止可能发生的任何缩放但不起作用。我尝试为 input-group 类添加一个大小调整选项,即 input-group-lg 和 input-group-sm 但这不起作用。我尝试在包含不起作用的输入组的 div 容器周围放置填充和边距。我尝试将overflow: hidden 设置为输入,但没有效果。除了数字或其他方法之外,到目前为止还没有任何效果。我取得成功的唯一方法是在输入聚焦并触发滚动事件时侦听 window.onscroll 事件,立即滚动回 X 平面中的 0 位置,即window.scrollTo(0, window.pageYOffset)。这使页面居中,但它具有来自 2 个连续滚动事件的不良屏幕“抖动”效果。为什么这种滚动会发生在移动设备上,有什么方法可以避免吗?
编辑: 这是输入元素类的CSS
.form-control {
display: block;
width: 100%;
height: 34px;
padding: 6px 12px;
font-size: 14px;
line-height: 1.42857143;
color: #555555;
background-color: #fff;
background-image: none;
border: 1px solid #d9dce5;
border-radius: 4px;
-webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
-webkit-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
-o-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
}
.form-control:focus {
border-color: #66afe9;
outline: 0;
-webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);
box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);
}
输入组引导类的更多 CSS。请注意,由于此代码是为一家大公司指定的,因此类的属性分布在 .css 文件中的单独语句中,并按它们与其他类共享的属性进行分组。
`.input-group {
position: relative;
display: table;
border-collapse: separate;
}
.input-group[class*="col-"] {
float: none;
padding-left: 0;
padding-right: 0;
}
.input-group .form-control {
position: relative;
z-index: 2;
float: left;
width: 100%;
margin-bottom: 0;
}
.input-group .form-control:focus {
z-index: 3;`
【问题讨论】:
-
您能否发布受影响输入的 CSS?
-
@Josh 我已经发布了输入元素类的 css。如果您想看其他课程,请告诉我
-
可能你在其他
.row里面有一个.row没有容器,你可以通过在body 和html 中添加overflow-x:hidden来解决html,body{overflow-x:hidden}`跨度> -
你能把
#hinInput和div.input-group的CSS贴出来吗? -
@Sim1-81 这是部分视图,没有任何
body或html标签。尽管如此,我还是将标签添加到了顶部,并在它们中都包含了style="overflow-x:hidden",但这并没有奏效。这个 div 当前嵌套在一个 .row 和另一个 .col-xs-12 容器中
标签: javascript jquery html css twitter-bootstrap-3