【问题标题】:Applying border in grid structure in css在css的网格结构中应用边框
【发布时间】:2012-07-19 17:26:43
【问题描述】:

我正在尝试创建一个具有相等高度和宽度的 div 的网格结构,但我无法应用边框 CSS

 .Container {
    width:1000px;
    position:relative;
    margin:0 auto;
}
.RowContainer {
    overflow:hidden;
    position:relative;
    height:200px;
    clear:both;
}
.RowContainer .Cell {
    position:relative;
    float:left;
    height:100%;
    width:200px;
    border:1px solid Black;


}

HTML

    <div class="Container">     
    <div class="RowContainer">
      <div class="Cell"><h1>lorum ipsum lorum ipsum</h1><p>lorum ipsum epsum</p> </div>
        <div class="Cell"><h1>lorum ipsum</h1><p>lorum ipsum epsum</p></div>
        <div class="Cell"><h1>lorum ipsum lorum ipsum</h1><p>lorum ipsum epsum
        </p>  </div>
        <div class="Cell"><h1>lorum ipsum</h1><p>lorum ipsum epsum</p></div>
    </div>
    <div class="RowContainer">
        <div class="Cell"><h1>lorum ipsum lorum ipsum</h1><p>lorum ipsum epsum
        </p></div>
        <div class="Cell"><h1>lorum ipsum</h1><p>lorum ipsum epsum</p></div>
        <div class="Cell"><h1>lorum ipsum</h1><p>lorum ipsum epsum</p></div>
        <div class="Cell"><h1>lorum ipsum</h1><p>lorum ipsum epsum</p></div>
    </div>  
    <div style="clear:both"></div>    
</div>

我有两个问题

1。 最后一行没有显示边框。

2。 尽管对所有人都应用了相同的边框属性,但边框宽度似乎不相等。

【问题讨论】:

  • 是你的溢出弄乱了你的身高。

标签: html css css-float


【解决方案1】:

如果您想创建类似表格的东西,为什么不直接使用表格呢?

<table class="container">     
    <tr>
        <td><h1>lorum ipsum lorum ipsum</h1><p>lorum ipsum epsum</p></td>
        <td><h1>lorum ipsum</h1><p>lorum ipsum epsum</p></td>
        <td><h1>lorum ipsum lorum ipsum</h1><p>lorum ipsum epsum</p></td>
        <td><h1>lorum ipsum</h1><p>lorum ipsum epsum</p></td>
    </tr>
    <tr>
        <td><h1>lorum ipsum lorum ipsum</h1><p>lorum ipsum epsum</p></td>
        <td><h1>lorum ipsum</h1><p>lorum ipsum epsum</p></td>
        <td><h1>lorum ipsum lorum ipsum</h1><p>lorum ipsum epsum</p></td>
        <td><h1>lorum ipsum</h1><p>lorum ipsum epsum</p></td>
    </tr>
</table>

【讨论】:

  • 是的,表格用于表格数据,而 div 用于布局。
  • thks 代码,但我的老板不想要表....我只想使用 div。你能帮我解决这个问题
  • 嗯,还有两个其他答案可能可以帮助您解决问题。不过,您确实应该重新考虑并使用表格 - 表格是为显示表格数据而构建的。使用它们比使用非表格标记获得更多的控制权。
【解决方案2】:

底部边框未显示在任一行中,因为.Cell 上有height: 100%.Container 上有overflow: hidden。您在第一行下方看到的是第二行的上边框。

如果您在具有overflow: hiddenheight: 200px 元素的子元素上设置height: 100%;,然后为该子元素设置1pxborder,则该边框加起来边

它使子元素垂直占据202px。那是 1px 从顶部边框 + 200px 从高度 + 1px 从底部边框。

但是父元素的高度只有200pxoverflow: hidden,也就是说垂直方向,从子元素看,你看到的是1px上边框和@987654340 @孩子的身高。还有1px的高度和1px的底边框被隐藏了。

第二个垂直边框比第一个更粗,因为您同时拥有第一个单元格的右侧 1px 边框和第二个单元格的左侧 1px 边框。

这将解决问题http://dabblet.com/gist/3145644

【讨论】:

  • 是的,你是对的,这是因为溢出:隐藏。你能解释一下为什么它会显示这种行为
  • 非常好的解释jsfiddle.net/nmqGD 请检查这个小提琴我正在尝试使边框均匀
  • 它们不是两个额外的单元格。 .Container1000px 处太大了。您需要将其width 设置为806px 并且.Cell 上没有右边框jsfiddle.net/nmqGD/2
  • 是的,但是如果我删除 .Cell:last-child 为什么单元格没有显示右边框,那么它也没有显示右边框。我实际上想要右边框
  • 我不明白你的意思,你能解释清楚一点吗?
【解决方案3】:

.RowContainer 上的overflow:hidden 隐藏了.Cell div 上的边框,因为边框绘制在.Cell 的框之外,该框设置为100% 高度。删除overflow:hidden 应该会再次显示它。

至于不相等的边界,我不能肯定地说,因为你没有提供一个 jsfiddle 来查看,但我猜你的意思是单元格之间的边界比它应该的要厚 - 那是因为每个.Cell 都有一个边框,导致左右边框彼此相邻,呈现出2px 边框的外观。

您可以通过仅在每个.Cell 的顶部和左侧设置边框,然后在.Container 的底部和右侧设置边框来解决此问题。

【讨论】:

  • 是的,移除溢出隐藏是为了看到边框,但在每个 .Cell 的顶部和左侧应用边框,然后在 .Container 的底部和右侧设置边框不起作用跨度>
【解决方案4】:

删除你的溢出:隐藏

喜欢这个

   .Container {
width:1000px;

margin:0 auto;


}



   .RowContainer {

height:200px;
clear:both;

}


 .RowContainer .Cell {
position:relative;
float:left;
height:100%;
width:200px;

  border:1px solid Black;
}

CSS 溢出

页面上的每个元素都是一个矩形框。这些框的大小、位置和行为都可以通过 CSS 控制。通过行为,我的意思是当盒子内部和周围的内容发生变化时盒子如何处理它。例如,如果您不设置框的高度,则该框的高度将增长到容纳内容所需的大小。但是当你在一个盒子上设置了一个特定的高度或宽度,而里面的内容却放不下时会发生什么?这就是 CSS 溢出属性的用武之地,允许您指定您希望如何处理。

溢出属性有四个值:可见(默认)、隐藏、滚动和自动。还有姊妹属性overflow-y 和overflow-x,采用较少。

【讨论】:

    猜你喜欢
    • 2012-09-01
    • 2021-12-02
    • 1970-01-01
    • 2019-03-16
    • 2023-03-16
    • 1970-01-01
    • 2011-10-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多