html - 如何使用 CSS float 将此 HTML 显示为表格?

标签 html css

我想使用 CSS 将以下 HTML 显示为 3 列表。

<footer class="row">
  <div class="col1">
    Left Column
  </div>
  <div class="col2">
    Middle Column
  </div>
  <div class="col3">
    Right Column
  </div>
  <div class="full-col">
    This should take up the width of 3 columns
  </div>
</footer>

这是我的 CSS 的样子:

.col1,.col2,.col3{
  width: 33.%;
  text-align: center;
  border-right: black;
  border-style: solid;
  border-width: 1px;
}

.row{
  background-color: #ccc;
}
.col2{

margin: 0 auto;
}
.col1{
  float: left;
}
.col3{
  float: right;

}
.full-col{
  clear: both;
}

问题是HTML中的中间列在中间,右边在下面,所以就出现了这样的情况:

right column sitting below middle

我可以通过移动下面的中间列(在 HTML 中)来修复它,但是在 CSS 中不能这样做吗?

最佳答案

display:flex 添加到您的行而不是使用 float,它将以行的方式对齐所有列,即 col1、col2、col3。

.col1,.col2,.col3{
  height:30px;
  text-align: center;
  border-right: black;
  border-style: solid;
  border-width: 1px;
  flex:1;
  
}

.row{
  background-color: #ccc;
  width:100%;
  display:flex;
}

}
<footer class="row">
<div class="col1"></div>
<div class="col2"></div>
<div class="col3"></div>
</footer>

使用 float 并根据边框固定宽度大小的解决方案:

我们设置每个单元格的宽度大小 = (100% - 6px(这是所有单元格的边框大小))/3

.col1,.col2,.col3{
  height:30px;
  text-align: center;
  width:calc((100% - 6px)/3);
  float:left;
  border:1px solid black;
}

.row{
  background-color: #ccc;
  width:100%;
}
<footer class="row">
<div class="col1"></div>
<div class="col2"></div>
<div class="col3"></div>
<br style="clear: both;" />
</footer>

关于html - 如何使用 CSS float 将此 HTML 显示为表格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47876597/

相关文章:

html - 自定义选择下拉菜单背景图像在 Firefox 30 中不起作用

html - 如何在 Formtastic 中为一组单选按钮选择默认值?

JQuery 框架 UI 插件

css - Wordpress 菜单三 Angular 形插入符号

JavaScript 将namedNodeMap 转换为字符串

javascript - 自动完成仅匹配单词开头

java - 是否有一个体面的、可定制的 HTML 到 Markdown Java API?

javascript - 如何使用 withStyles 编写特定于 Mozilla 的 CSS

javascript - 无法使用 jquery(Image Slider) 将我的图像向右移动

html - 子菜单滚动弹出不显示