如何使用Bootstrap保持跨设备的网格布局?

时间:2018-04-03 20:03:56

标签: html css twitter-bootstrap twitter-bootstrap-3 bootstrap-grid

我正在使用Bootstrap v.3构建一个网站,它需要在各种设备上保持一致。我希望在所有设备上保持相同的布局。我使用以下代码并排显示两个YouTube视频。

<div class="row">
        <div class="col-md-7 col-lg-7 col-sm-7 col-xs-7" id="introduction">
            <p>The project uses Machine Learning to identify the waste items. A brief introduction about the Machine Learning technology is provided in the video below.
            </p>
            <iframe width="500" height="205" src="https://www.youtube.com/embed/yofjFQddwHE" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe> 
        </div>
        <div class="col-md-5 col-lg-5 col-sm-5 col-xs-5">

            <iframe src="https://www.youtube.com/embed/7YgnJELpMyE?ecver=2" width="450" height="305" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe>
        </div>
    </div>

该网站在桌面上显示如下 -

Desktop version

然而,在手机上,它看起来像这样。

Mobile phone

正如您所看到的,尽管col-md-* col-sm-*col-xs-*值相同,布局也会发生变化。请帮忙。

1 个答案:

答案 0 :(得分:1)

TwBs v4用户请注意:将col-xs-*替换为col-*

原始回答(TwBs v3):您的col-*课程完全适用。

Bootstrap首先移动,这意味着col-xs-7不需要col-sm-7col-md-7或更高版本。

您可以通过选择元素并观察 bounding-rect-box '(大多数开发工具突出显示)来检查它。但是,这不会阻止<iframe>个元素(具有硬编码的widthheight属性)溢出其父级的宽度。如果您要覆盖它,则需要将width设置为100%

iframe {
  display: block;
  width: 100%;
}

看到它正常工作:

iframe {
  display: block;
  width: 100%;
}
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet" />
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="container">
  <div class="row">
    <div class="col-xs-7" id="introduction">
      <p>The project uses Machine Learning to identify the waste items. A brief introduction about the Machine Learning technology is provided in the video below.
      </p>
      <iframe width="500" height="205" src="https://www.youtube.com/embed/yofjFQddwHE" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe>
    </div>
    <div class="col-xs-5">
      <iframe src="https://www.youtube.com/embed/7YgnJELpMyE?ecver=2" width="450" height="305" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe>
    </div>
  </div>
</div>

如果您应用它并且它不起作用,则意味着项目中更强大的选择器会对这些属性应用不同的CSS规则,从而为您提供两个选项:

  • 查找并禁用这些规则(您可以检查元素以查找当前适用于它的所有规则)
  • 在CSS中使用更强大(更具体)的选择器(你可以找到大量的在线资源来解释CSS特性的原理 - 记住你的选择器越强大,你就越难以在以后修改它。理想情况下一个应始终使用应用所需规则的最不具体的选择器,从而确保它们的任何未来mod都易于应用)。

注意:最有可能的是,iframe选择器对您的项目来说不够强大。您可以使用#id.class或者,如果您不想通过添加任何额外的类或ID来更改标记,则可以使用否定来夸大其特异性:

iframe:not(#_):not(#_)` { /* css rules here */ }