css表单格布局中的圆角?

San*_*hal 9 html css

我的设计需要一些帮助.我想要显示三个相等高度的盒子,就像这个ASCI艺术:

+------+ +------+ +------+
|      | |      | |      |
|      | |      | |      |
|      | |      | |      |
+------+ +------+ +------+
Run Code Online (Sandbox Code Playgroud)

我也有一个在线示例(使用所有CSS).

盒子的内容高度不同.棘手的是这些盒子也需要圆角.为此,我使用"推拉门"技术.基本上,盒子的标记是这样的:

<div class="box">
  <div class="box-header">
    <h4>header</h4>
  </div>
  <div class="box-body">
    <p>Contents</p>
  </div>
</div>
Run Code Online (Sandbox Code Playgroud)

四个块元素,所以我可以使用背景图像制作圆角和边框.右上角是h4.左上角位于框标题上.右下角在外框div上,左下角在盒体上.

我正在使用CSS显示:table-cell使所有三个盒子的高度相等,但这里我的问题开始了.现在所有的盒子元素都具有相同的高度,但是盒体元素的高度不同,因为内容的高度不同.结果:右下角未处于正确位置.另见我发布的链接.

我该如何解决这个问题?现在所有盒子div的高度相等.我希望盒体扩展到使用所有可用的高度,即使内容很短.我试过身高:100%,但这不起作用.我怎样才能做到这一点?

还是有另一种方法来实现我想要的东西?我不能使用像faux这样的东西,因为我在ems中定义了框的宽度.这意味着我不能给盒子div提供一个提供两个底角的背景图像.

谷歌在这里绝对没用.任何涉及"角落"和"桌子"的查询都只是给了我一个与1990年教程相关的大量链接,这些教程使用3x3桌子作圆角.

至于浏览器兼容性,如果IE7/8也可以处理它会很好但是不需要(在这种情况下我可以替换为不等高度的浮点数).对于我正在开发的网站,我估计IE市场份额为20%或更低.我根本不关心IE6.

任何提示都非常感谢!

San*_*hal 4

根据我上面的评论,我决定使用 CSS3 border-radius 来解决我的问题。使用下面的语句,它将在除 Internet Explorer 之外的每个浏览器上显示圆角边框。我不太关心 IE,所以 IE 用户可以简单地看直角。

.box {
    display: table-cell;
    width: 16em;
    padding: 1em 2em;
    background: #f6c75d url(gradient.png) repeat-x scroll top left;
    border: 3px solid #de9542;
    border-radius: 25px; /* Standard */
    -o-border-radius: 25px; /* Opera 10.x */
    -moz-border-radius: 25px; /* Mozilla/Firefox */
    -icab-border-radius: 25px; /* iCab */
    -khtml-border-radius: 25px; /* KHTML/Konqueror */
    -webkit-border-radius: 25px; /* Webkit/Safari/Chrome/etcetera */
}
Run Code Online (Sandbox Code Playgroud)

在上面,gradient.png 是一个小的可平铺图像,在框的顶部提供渐变。

它工作完美。它还简化了标记和 CSS,并减少了我需要的背景图像的数量和大小。