如何在具有 bootstrap class 'col-md-6' 的页面上以全宽显示 DIV?

How to display DIV to full width on a page that has a bootstrap class 'col-md-6'?

我试图在页面上并排显示 div。但是,如果页面上只有一个 col-xs-12 col-md-6 div class,那么我会尝试将其显示为全宽 (100%) 而不是 50%。目前它只使用了 50%,即使只有一个 col-xs-12 col-md-6。 HTML 来自 MVC,所以这个 HTML 是固定的。有没有办法使用 CSS 或 JavaScript/jQuery 来做到这一点?我在想下面的 javascript(下图)可以解决问题,但事实并非如此。

这是我的 HTML 和 CSS:

<div class="col-xs-12 col-md-6 textcontent">
   </div>

<div class="col-xs-12 col-md-6 service">
   </div>

<div class="col-xs-12 col-md-6 textcontent">
   </div>

CSS

.col-md-6{
width50%;
}

JavaScript

if ($('.col-xs-12.col-md-6').length == 1) {
    $('.col-xs-12.col-md-6').toggleClass(".col-xs-12.col-md-12")
    }

Bootstrap 网格系统基于 12 列模型。您可以只使用 col-12 表示一列填充所有容器宽度。

试试这个:

<div class="col-12 textcontent">
   </div>

<div class="col-12 service">
   </div>

<div class="col-12 textcontent">
   </div>

这里是 documentation about grid system 和 bootstrap 和断点,如果你想根据设备屏幕宽度应用不同的列配置。

抱歉,您被锁定在 Bootstrap。使用 Flexbox 可以很容易地做到这一点。针对您发布的具体问题和代码,您的 class 切换只是一个小错误。

if ($('.col-xs-12.col-md-6').length == 1) {
    $('.col-xs-12.col-md-6').toggleClass("col-xs-12 col-md-12");
}

添加 class 名称时,您不想添加“.”,而是希望 class 名称像它们一样分开出现在 HTML。您正在做的是尝试添加 class=".col-xs-12.col-md-12" 而不是 class= "col-xs-12 col-md-12".

我想既然你正在使用 Bootstrap,你也不需要 .col-md-6 的 css 定义,因为 Bootstrap 应该已经有了为你定义。

您在 JavaScript 中实际需要做的是 删除 class“col-md-6”。

if ($('.col-xs-12.col-md-6').length == 1) {
  $('.col-xs-12.col-md-6').removeClass("col-md-6")
}

.col-xs-12 适用于从 xs 开始的每个屏幕尺寸,并被 .col-md-6 覆盖屏幕尺寸 md 及以上。因此,您只需删除 class.

即可阻止覆盖发生