You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

为何class为row1的DIV元素背景色无法显示?

解决.row1类背景色不生效的问题

嘿,我来帮你分析这个问题,你遇到的.row1背景色不显示的情况,其实是浮动元素导致的父容器高度塌陷问题,咱们一步步来解决:

问题根源

你用了Bootstrap的col-xs-8col-md-4这类列组件,它们默认是float: left的浮动元素。当父容器(也就是你的.row1)里面只有浮动元素时,父容器的高度会被“塌陷”为0——简单说就是浏览器识别不到浮动元素的高度,所以背景色自然就看不到了。

而Bootstrap自带的.row类已经帮你处理了这个坑:它通过:before:after伪元素实现了清除浮动的逻辑,所以换成.row时,父容器能正常识别内部元素的高度,背景色就显示出来了。

具体解决方法

你有几个简单的修复选项,选哪个都可以:

方法1:给.row1添加清除浮动的样式

直接在你的CSS里给.row1补上清除浮动的代码,完全模仿Bootstrap.row的实现逻辑:

.row1 {
  background: yellowgreen;
  /* 可选:加上和Bootstrap.row一致的左右边距,让布局更协调 */
  margin-right: -15px;
  margin-left: -15px;
}
/* 清除浮动的核心代码 */
.row1:before,
.row1:after {
  content: " ";
  display: table;
}
.row1:after {
  clear: both;
}

这样.row1就能像原生.row一样正常包裹浮动的列元素,背景色自然就显示了。

方法2:用Bootstrap现成的.clearfix类

不想改CSS的话,直接给.row1元素加上Bootstrap自带的clearfix类就行,它的作用就是清除浮动:

<div class="row1 clearfix">
  <form class="form">
    <div class="col-xs-8 col-md-4">
      <input type="text" id="TextBox1" placeholder="Enter your query">
    </div>
    <div class="col-xs-4 col-md-2">
      <button type="submit" class="button">post</button>
    </div>
  </form>
</div>

方法3:复用Bootstrap的.row,再加自定义类

如果你觉得单独搞个row1没必要,也可以直接用.row,然后给它加个自定义类来设置背景色——这样既利用了Bootstrap的布局逻辑,又不会影响其他.row元素:

<div class="row custom-bg-row">
  <!-- 内部的form和列元素 -->
</div>

然后CSS里写:

.custom-bg-row {
  background: yellowgreen;
}

额外小提醒

你代码里还有个小语法错误:border-left : 2pxsolid #000这里的2pxsolid中间少了空格,应该写成2px solid #000,不然这个边框样式是不会生效的哦~

内容的提问来源于stack exchange,提问作者Kalyan Sundar

火山引擎 最新活动