html - 如何使我的表单站点在每个设备上工作(响应)

标签 html css twitter-bootstrap responsive-design bootstrap-4

我开发了一个网站,我认为使用 Boostrap 4 来改善用户体验。

该网站主要供计算机使用,但我希望它可以在平板电脑或手机上使用。

为此,我在 bootstrap 网站上记录了自己,并做了几次测试,但我无法获得我想要的结果。

例如,我的网站(使用计算机)上的表单如下所示:

enter image description here

我希望当屏幕较小时(平板电脑(如 iPad)或移动设备),字段名称(例如电子邮件)单独排成一行,并像 col-sm-12 类和字段 who与名称字段相关的在下面的行中,也取 col-sm-12。 由于手机屏幕非常小,如果用户使用手机或平板电脑,我还希望每行有一个字段(而不是目前的 2 个字段)。

从现在开始,我正在使用 Chrome 调试器进行测试,结果在 Ipad Pro(大平板电脑)或更高版本上运行良好。 我仍然需要为手机和平板电脑(比 Ipad Pro 小)修复它。

目前这是它在装有 Galaxy S5 的手机上的样子:

enter image description here

代码

    <div class="card-body">
        <div class="row col-12">
            <div class="col-xl-6 col-lg-6 col-md-12 col-sm-12">
                <div class="form-check-inline col-12">
                    <div class="col-xl-4 col-lg-4 col-md-4 col-sm-4">
                        <label asp-for="Input.Email"></label>
                    </div>
                    <input asp-for="Input.Email" class="form-control" />
                </div>
                <div style="margin-left:33%">
                    <span asp-validation-for="Input.Email" class="text-danger"></span>
                </div>
                <div class="form-check-inline col-12" style="margin-top:1%">
                    <div class="col-xl-4 col-lg-4 col-md-4 col-sm-4">
                        <label asp-for="Input.Password"></label>
                    </div>
                    <input asp-for="Input.Password" class="form-control" />
                </div>
                <div style="margin-left:33%">
                    <span asp-validation-for="Input.Password" class="text-danger"></span>
                </div>
                <div class="form-check-inline col-12" style="margin-top:1%">
                    <div class="col-xl-4 col-lg-4 col-md-4 col-sm-4">
                        <label asp-for="Input.ConfirmPassword"></label>
                    </div>
                    <input asp-for="Input.ConfirmPassword" class="form-control" />
                </div>
            </div>
        </div>
    </div>

如您所见,它远非完美。

此外,它不占用卡的整体尺寸,所以它比它应该的最小,这是一种只在手机上占用整个空间的方法吗?

你能帮我看看如何得到想要的结果吗?

最佳答案

好吧,首先要说的是,大多数时候最好先为移动设备开发(设计),因为现在大多数用户都在使用移动设备。它使得从移动设备扩展到桌面变得非常容易,因为您在此过程中拥有越来越多的空间。也就是说,您当前的标记还有很多需要改进的地方。

例如,一个元素永远不应同时具有 row 类和 column 类 (col-12)。 Imo 使用 Bootstrap 类构建字段的最佳方法是为每个输入字段和标签设置一个 row。然后,为每个元素创建一个 col 类,例如一个用于标签,一个用于输入。之后,您必须决定要使用哪些 cols

大多数时候,您希望从移动 View 开始。在你的情况下,输入和标签可能应该占据 12 列(因为你想要那个全宽)。在这种情况下,您应该使用 col-12 类。因为您可能希望输入和标签在平板电脑和台式机上为一半大小,所以您还添加了 col-md-6 类。这将跨越 6 列的输入和标签,因此,2 乘以 6 是 12,因此它们将彼此相邻。您可以阅读有关这些专栏的更多信息 here .

为了说明,我创建了一个看起来像您想要的示例。

<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css">

<div class="row">
  <div class="col-12 col-md-6">

    <div class="row">
      <div class="col-12 col-md-6">
        <label for="name">Name</label>
      </div>
      <div class="col-12 col-md-6">
        <input type="text" id="name" />
      </div>
    </div>

    <div class="row">
      <div class="col-12 col-md-6">
        <label for="phone">Phone</label>
      </div>
      <div class="col-12 col-md-6">
        <input type="text" id="phone" />
      </div>
    </div>

  </div>

  <div class="col-12 col-md-6">
    <div class="row">
      <div class="col-12 col-md-6">
        <label for="lastname">Lastname</label>
      </div>
      <div class="col-12 col-md-6">
        <input type="text" id="lastname" />
      </div>
    </div>

    <div class="row">
      <div class="col-12 col-md-6">
        <label for="email">E-mail</label>
      </div>
      <div class="col-12 col-md-6">
        <input type="text" id="email" />
      </div>
    </div>
  </div>
</div>

关于html - 如何使我的表单站点在每个设备上工作(响应),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54162918/

相关文章:

jquery - 将水平宽度大于窗口宽度的 div 居中

html - 使用 bootstraps 创建的 Navbar 左右都有空白

php - 无法加载资源 403 Forbidden - Herkou 上的静态 bootstrap/html 站点 - 权限问题

twitter-bootstrap - CSS 中的响应式 2 列正方形

javascript - 如何缩放(jQuery)?

javascript - 如何将 html 标题属性添加到 jquery ui 日期选择器小部件?

html - 全部关闭时,Bootstrap Accordion header 较小

javascript - 图片加载不正确

html - CSS - 以百分比表示的圆 Angular div 边框

css - 可重用性概念可以应用于 css 吗?