【问题标题】:Bootstrap grid is not working [duplicate]引导网格不起作用[重复]
【发布时间】:2023-04-08 15:52:02
【问题描述】:

我正在尝试使用引导程序创建页面布局。我的布局类似于下图。

为此我尝试使用引导网格函数进行存档。

这就是我的html 的样子

  <div class="myLayout">
    <div class="col-1">
    </div>    
    <div class="col-2">
    </div>    
    <div class="col-3">
    </div>
  </div>

在我的less 文件中

.myLayout {
  .make-row();
  
  .col-1 {
    .make-md-column(6);
    .make-sm-column(7);
    .make-xs-column(12);
    background: black;
    height: 100px;
  }  
  
  .col-2 {
    .make-md-column(3);
    .make-sm-column(5);
    .make-xs-column(6);
    background: blue;
    height: 100px;
  }  
 
  .col-3 {
    .make-md-column(3);
    .make-sm-column(0);
    .make-xs-column(6);
    .visible-lg-block;
    background: red;
    height: 100px;
  }
}

更新:

这是从大约Less生成CSS

.col-1 {
  position: relative;
  float: left;
  width: 100%;
  min-height: 1px;
  padding-left: 15px;
  padding-right: 15px;
    background: black;
  height: 100px;
}

@media (min-width: 992px) {
  .col-1 {
    float: left;
    width: 50%;
  }
}
@media (min-width: 768px) {
  .col-1 {
    float: left;
    width: 58.33333333%;
  }
}
@media (min-width: 1200px) {
  .col-1 {
    height: 292px;
  }
}

.col-2 {
  position: relative;
  float: left;
  width: 50%;
  min-height: 1px;
  padding-left: 15px;
  padding-right: 15px;
    background: blue;
  height: 100px;
}

@media (min-width: 992px) {
  .col-2 {
    float: left;
    width: 25%;
  }
}
@media (min-width: 768px) {
  .col-2 {
    float: left;
    width: 41.66666667%;
  }
}
@media (min-width: 1200px) {
  .col-2 {
    height: 292px;
  }
}

.col-3 {
  position: relative;
  float: left;
  width: 50%;
  min-height: 1px;
  padding-left: 15px;
  padding-right: 15px;
  display: none !important;
    background: red;
  height: 100px;
    
}
@media (min-width: 992px) {
  .col-3 {
    float: left;
    width: 25%;
  }
}
@media (min-width: 768px) {
  .col-3 {
    float: left;
    width: 0%;
  }
}
@media (min-width: 1200px) {
  .col-3 {
    display: block !important;
  }
}

但这不符合我的预期结果。有人可以告诉我我的代码有什么问题吗? 谢谢。

【问题讨论】:

  • 我不相信 0 是 .col3 中 make-sm-column() mixin 的可接受值
  • LESS 文件的最终输出是什么样的?
  • @Joe 是的,亲爱的,我尝试删除它。但不工作。仅在每个屏幕尺寸中显示前 2 列。
  • 为什么不直接使用现有的引导类,而不是按照自己的风格重新制作列? (即:给第一列一个col-1 col-md-6 col-sm-7 col-xs-12的类?
  • 您的.make-*-column 订单不正确(请参阅stackoverflow.com/a/27442489/2712740)。

标签: css twitter-bootstrap less


【解决方案1】:

应该不需要任何自定义 CSS/LESS 代码来实现这一点。 您可以使用现有的 Bootstrap 网格系统类来做到这一点。

BOOTPLY

div {
  height: 200px;
}
.first {
  background-color: black;
}
.second {
  background-color: blue;
}
.third {
  background-color: red;
}
<link href="//maxcdn.bootstrapcdn.com/bootstrap/3.3.1/css/bootstrap.min.css" rel="stylesheet" />


<div class="first col-sm-6 col-xs-12"></div>
<div class="second col-lg-3 col-sm-6 col-xs-12"></div>
<div class="third col-lg-3 visible-lg-inline"></div>

【讨论】:

  • 我将您的代码更改为代码 sn-p,这样您就不必依赖 bootply(因为它现在似乎经常出现故障)。
  • 是的,看到通知通过了。我将不得不对此进行更多调查。谢谢!
  • 是的,它可以工作。但我想在不使用更多类和 ID 的情况下保持我的标记干净。这就是为什么我使用 CSS/LESS 来实现这一点
  • @TNK 然而,如果你想要这样,你会让你的 LESS 变得比它必须的更复杂。您实际上是偏爱凌乱、不必要的复杂 LESS 代码,以使 HTML 更简洁。不要重新发明轮子,也不要为了实现目标而做更多的工作。
  • @TNK 这是一种有缺陷且危险的思维方式。类和 id 不会使标记。他们的工作是识别元素,以便可以在其他资源中引用它们。此外,如果您担心要使用的类数量,则不应加载相当繁重的前端框架
猜你喜欢
  • 2016-09-19
  • 1970-01-01
  • 1970-01-01
  • 2017-11-29
  • 2018-04-15
  • 1970-01-01
  • 2019-01-17
  • 1970-01-01
相关资源
最近更新 更多