【问题标题】:CSS columns maintain same heightCSS 列保持相同的高度
【发布时间】:2013-11-25 10:10:30
【问题描述】:

我正在尝试将一些 CSS 设置为 3 列。

中间和右列可以在其中包含文本。我目前拥有它,以便中间列将换行文本,所有其他列将根据该列调整大小。我需要正确的列以相同的方式影响其他列。我不是 CSS 专家,主要使用 C# 编写代码。

我尝试了其他解决方案,这是我最接近我想要的解决方案。有什么想法吗?

到目前为止的 CSS:

#outer
{
    width: 100%;
    margin: auto;
    padding:0;
}

#leftcolumn
{
position: absolute;
height: 100%;
width: 5px;
-webkit-border-radius: 0px;    
margin: 0 ;
background-color: Yellow;
z-index:10;    
left:0px;
top:0; 
}

#rightcolumn
{
position: absolute;
height: 100%;
width: 75px;
-webkit-border-radius: 0px;    
margin: 0 ;
background-color: green;
right:0px;
top:0; 
}

#middlecolumn
{
-webkit-border-radius: 0px;    
margin-left:5px;
margin-right:75px;
background-color: #62A9FF;
left:0px;
top:0px; 
}

#inner
{
width:100%;
margin:0 auto;    
position: relative;
-webkit-transform: rotate(0deg); 
-webkit-transform-origin:50% 50%; 
}

http://jsfiddle.net/6eshT/15/

【问题讨论】:

    标签: html css


    【解决方案1】:

    使用display: table-cell; 非常简单。

    【讨论】:

    • 尝试了table-cell方法,失败了,因为需要支持ie8+
    • 这确实有效。它最初对我不起作用,因为我没有 所以它不能在 IE8 中正确呈现。 Alexandr Skachkov,感谢您发布 jsfiddle,它非常有帮助。 jsfiddle.net/kLMtb/show.
    【解决方案2】:

    我不相信你可以用直接的 CSS 做到这一点,但你可以使用 jQuery 很容易地做到这一点。

    这是一个小提琴: http://jsfiddle.net/6eshT/8/

    基本上,您将所有列设置为具有相同的类名。至少有一个通用类,即class="col somethingElse"“somethingElse”可以是特定于每一列样式的类。

    jQuery 将是:

    $('document').ready(function(){
        var max = -1;
        $(".col").each(function() {
            var h = $(this).height(); 
            max = h > max ? h : max;
        });
        $(".col").css({ 'height' : max })
    });
    

    【讨论】:

    • 这是一个很好的解决方案。但是,在我的环境中,我受到限制,无法使用 jquery。几乎在 C# 中使用微软的 html 编辑器。所以它是一个 c# 应用程序中的 htmleditor。我让它与 2 列一起工作..这只是让我失望的第三个..
    • 实际上,只有当中心列最大时,您所拥有的才有效,这是由于您使用绝对位置。如果您跳出框框思考,可以链接到外部 jquery 库(
    • 一些我无法控制的事情禁止我这样做。我还尝试使内容可编辑,并且在添加内容时它不会调整高度.. jsfiddle.net/6eshT/14
    • 不幸的是,我认为你的限制是不可能的。您始终可以为所有三个指定一个高度。不允许列调整大小,但仅在内容过多时才会影响您。祝你好运。
    • 是的,我很感谢您的帮助。我设法实施了一个解决方案,可以让我度过难关,但实际上并没有解决这个问题。基本上我只是通过简单的溢出使右列可滚动:自动。中间一栏是主要内容,右边是可选/低优先级。所以中间会决定编辑器中的大小。
    【解决方案3】:

    使多列高度相同的最简单方法是使用假列。 http://line25.com/articles/create-sidebars-of-equal-height-with-faux-columns

    【讨论】:

      【解决方案4】:

      你可以使用 display:flexbox 来了解更多 http://css-tricks.com/snippets/css/a-guide-to-flexbox/

      【讨论】:

      • 我喜欢这个,可惜我需要兼容ie8+的东西
      • 之前可以使用 display:table, table-cell 作为mntion。请检查以下问题 (stackoverflow.com/questions/19202019/…) 和 IE8 中的回答工作示例jsfiddle.net/kLMtb/show
      • 亚历山大·斯卡奇科夫,谢谢。在调查了我的代码后,我发现它没有在 ie8 中正确呈现。我必须添加元标记 。之后它完美地工作了。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-14
      • 1970-01-01
      • 2015-02-09
      • 2013-05-08
      • 2016-08-20
      • 1970-01-01
      相关资源
      最近更新 更多