html - 3 个并排的 100% 高度和滚动布局的 div 不是跨浏览器的

标签 html css layout

我已经从找到的样本中收集了以下内容,并设法让一些东西运行良好。我使用的是 Chrome,但我的示例无法在 FireFox 或 IE 中运行。

我正在尝试创建 3 个并排的 100% 高度和 30 奇数百分比宽度的 div。当内容超过其高度时,div 应该有一个滚动条。

所以,除了一些与 float div 相关的边距问题,我主要有这个。但是,它不适用于 Firefox 和 Internet Explorer 那么是什么阻止了我的布局跨浏览器?

次要问题。我怎样才能在页面上平均分布 div?目前我有一个间隔 div。但必须有更好的方法。

http://jsfiddle.net/valamas/m68xchko/

html,body{
    height:100%;    
    margin:0;
    padding:0;
}

.content{
    display:table;
    width:100%;
    border-spacing:10px;
    border-collapse:separate;
    background:#A36;
    height:100%;
}

.Col
{
    float: left;
    border-radius:5px;
    background:#fff;
    width:31%;
    overflow: auto; 
    overflow-x:hidden;
    height:100%;
}

.spacer
{
    float: left;
    border-radius:5px;
    background:#ccc;
    width:2%;
    overflow: auto; 
    overflow-x:hidden;
    height:100%;
}
.clearfix
{
    display:block;
    clear: both;
    float:none;
}

HTML

<div class="content">
    <div class="Col">search</div>
    <div class="spacer"></div>
    <div class="Col"></div>
    <div class="spacer"></div>
    <div class="Col">
        Testing scrolling<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />
        Testing scrolling<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />
        Testing scrolling<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />
        Testing scrolling<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />
        Testing scrolling<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />
        Testing scrolling<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />
        Testing scrolling<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />
        Testing scrolling<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />
        Testing scrolling<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />
        Testing scrolling<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />
        Testing scrolling<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />
        Testing scrolling<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />
        Testing scrolling<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />
        Testing scrolling<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />
        Testing scrolling<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />
        Testing scrolling<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />
        Testing scrolling<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />
        Testing scrolling<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />
        Testing scrolling<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />
    </div>
    <div class="clearfix"></div>
</div>

最佳答案

你应该只使用 HTML 标记来语义结构化内容,而不是为了样式/布局目的使用额外的标记,那是为了 CSS。我建议如下:

HTML

<div class="col col1">
  test<br>  test<br>  test<br>  test<br>  test<br>  test<br>  test<br>  test<br>  test<br>  test<br>  test<br>  test<br>  test<br>  test<br>  test<br>  test<br>  test<br>  test<br>  test<br>  test<br>  test<br>  test<br>  test<br>  test<br>  test<br>  test<br>  test<br>  test<br>  test<br>  test<br>  test<br>  test<br>  test<br>
</div>
<div class="col col2"></div>
<div class="col col3"></div>

CSS

html, body{
  height:100%;
  margin:0;
  padding:0;
}

body {
  overflow: auto; /* clear float */
}

.col {
  float: left;
  width: 30%;
  height: 100%;
  overflow: auto;
}

.col1 { background-color: red; }
.col2 { background-color: green; }
.col3 { background-color: blue; }

http://codepen.io/anon/pen/qAGFd

我还建议您观看 lynda.com 提供的优秀 CSS 教程。他们很棒!

关于html - 3 个并排的 100% 高度和滚动布局的 div 不是跨浏览器的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26579988/

相关文章:

layout - 如何设置labview窗口的默认方向?

html - div元素不听话

jquery - 在移动 View 中,我们希望显示每个 div 的 div 底部

css - 为什么在具有居中元素的同一容器中元素需要在左前 float ?

pentaho 表格组件中的 css

html - 图片不会使用百分比正确对齐

javascript - jQuery 选项卡小部件显示问题

javascript - 在不破坏 CSS/JS 的情况下将旧的静态页面添加到 Rails 应用程序中

javascript - 使用javascript定位元素时遇到问题

CSS 适用于 Chrome 但不适用于 FF 或 IE