如何使用 Bootstrap 跨设备保留网格布局?
How to preserve grid layout across devices using Bootstrap?
我正在使用 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>
该站点在桌面上看起来像这样 -
但是,在移动设备上 phone,它看起来像这样。
如您所见,尽管 col-md-*
col-sm-*
和 col-xs-*
值相同,但布局发生了变化。请帮忙。
TwBs v4 用户注意事项:将 col-xs-*
替换为 col-*
。
原始答案 (TwBs v3):您的 col-*
类 适用得很好。
而Bootstrap是移动优先,这意味着col-xs-7
不需要col-sm-7
、col-md-7
或更高版本。
您可以通过选择元素并观察它们的 bounding-rect-box(大多数 dev-tools 突出显示)来检查它。但是,这不会阻止 <iframe>
元素(具有硬编码的 width
和 height
属性)溢出其父元素的宽度。如果你想覆盖它,你需要将它们的 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 特异性原则的在线资源 - 请记住,您的选择器越强大,您就越难它供您自己稍后修改。理想情况下,应该始终使用应用所需规则的最不具体的选择器,从而确保它们易于应用任何未来的模组)。
注意:很有可能,iframe
选择器对于您的项目来说不够强大。您可以使用 #id
、.class
或者,如果您不想通过添加任何额外的 类 或 id 来更改标记,则可以使用否定来夸大其特异性:
iframe:not(#_):not(#_)` { /* css rules here */ }
我正在使用 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>
该站点在桌面上看起来像这样 -
但是,在移动设备上 phone,它看起来像这样。
如您所见,尽管 col-md-*
col-sm-*
和 col-xs-*
值相同,但布局发生了变化。请帮忙。
TwBs v4 用户注意事项:将 col-xs-*
替换为 col-*
。
原始答案 (TwBs v3):您的 col-*
类 适用得很好。
而Bootstrap是移动优先,这意味着col-xs-7
不需要col-sm-7
、col-md-7
或更高版本。
您可以通过选择元素并观察它们的 bounding-rect-box(大多数 dev-tools 突出显示)来检查它。但是,这不会阻止 <iframe>
元素(具有硬编码的 width
和 height
属性)溢出其父元素的宽度。如果你想覆盖它,你需要将它们的 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 特异性原则的在线资源 - 请记住,您的选择器越强大,您就越难它供您自己稍后修改。理想情况下,应该始终使用应用所需规则的最不具体的选择器,从而确保它们易于应用任何未来的模组)。
注意:很有可能,iframe
选择器对于您的项目来说不够强大。您可以使用 #id
、.class
或者,如果您不想通过添加任何额外的 类 或 id 来更改标记,则可以使用否定来夸大其特异性:
iframe:not(#_):not(#_)` { /* css rules here */ }