javascript - float 和非 float div 之间的 1px 边界

标签 javascript html css

目标是创建具有缩进行的网格,其中最后一个单元格填充到页面的右侧,每个单元格周围有 1 像素的边框。

下面的尝试中的问题是行的最后一个单元格的边框扩展了整个页面宽度,从而在缩进周围创建了不需要的边框。这看起来很奇怪,因为 div 内容正确对齐。

http://jsfiddle.net/woqpq508/1/

    <style>
        .table {
            border-collapse:collapse;
        }
        .row {
        }
        .indent {
            min-width: 20px;
            float: left;
        }
        .cell {
            border-style: solid;
            border-width: 1px;
            margin-left: -1px;
            margin-bottom: -1px;
            float: left;
        }
        .lastcell {
            float: none;    
        }           
    </style>

    <div class="table">
        <div class="row">
            <div class="cell">x</div>
            <div class="cell">y</div>
            <div class="cell">zzz</div>
            <div class="cell lastcell" contenteditable="true">long text</div>
        </div>
        <div class="row">
            <div class="indent">&nbsp;</div>
            <div class="cell">x</div>
            <div class="cell">y</div>
            <div class="cell">zzz</div>
            <div class="cell lastcell" contenteditable="true">long text</div>
        </div>
        <div class="row">
            <div class="cell">x</div>
            <div class="cell">y</div>
            <div class="cell">zzz</div>
            <div class="cell lastcell" contenteditable="true">long text</div>
        </div>
    </div>

最佳答案

正如评论中所说,您可以使用 display:table/table-cell 实现您想要的。

.table {
  border-collapse: collapse;
  display: table;
  width: 100%;
}
.row {
  margin-bottom: -1px;
}
.indent {
  min-width: 20px;
  display: table-cell;
}
.cell {
  border-style: solid;
  border-width: 1px;
  display: table-cell;
}
.lastcell {
  width: 100%;
}
<div class="table">
  <div class="row">
    <div class="cell">x</div>
    <div class="cell">y</div>
    <div class="cell">zzz</div>
    <div class="cell lastcell" contenteditable="true">long text</div>
  </div>
  <div class="row">
    <div class="indent">&nbsp;</div>
    <div class="cell">x</div>
    <div class="cell">y</div>
    <div class="cell">zzz</div>
    <div class="cell lastcell" contenteditable="true">long text</div>
  </div>
  <div class="row">
    <div class="cell">x</div>
    <div class="cell">y</div>
    <div class="cell">zzz</div>
    <div class="cell lastcell" contenteditable="true">long text</div>
  </div>
</div>

Fiddle from your comment

关于javascript - float 和非 float div 之间的 1px 边界,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31803832/

相关文章:

javascript - jQuery 拖放多个元素

html - 使用 AWK 解析 HTML

javascript - 有没有办法从位置(x,y 线)中找到 div 名称

html - 水平站点问题

php - 预填写表格(无法控制表格代码)

javascript - Apollo 服务器 : How to access 'context' outside of resolvers in Dataloader from REST API Datasource

javascript - `.toPrecision()`方法怎么知道PI的16°、17°、18°数字呢?

javascript - 在 div 中放置一个 d3 图表会阻止其上方的链接

android - 你能在智能手机屏幕底部修复 HTML5 页脚吗?

css - 无法用自己的值覆盖 CSS 变量