Javascript 如何动态地使柱具有相同的高度?

Javascript 如何动态地使柱具有相同的高度?,javascript,html,css,Javascript,Html,Css,我很难使我的柱子保持同样的高度。我只想让这些柱子保持同样的高度。这是我的密码: HTML: 我遇到的问题是,由于每个divs的id动态生成内容,因此每个列的高度将基于这些div中的内容。有没有办法将该列设置为比另一列长的任何列的高度?或者有没有办法将柱高度设置为固定值?我尝试为每个ids添加height:1000px,但这似乎并不适用于CSS。任何帮助都将不胜感激。您可以使用此代码获得帮助。 你需要使用FlexCSS <ul class="list"> <li clas

我很难使我的柱子保持同样的高度。我只想让这些柱子保持同样的高度。这是我的密码:

HTML:


我遇到的问题是,由于每个
div
s的id动态生成内容,因此每个列的高度将基于这些div中的内容。有没有办法将该列设置为比另一列长的任何列的高度?或者有没有办法将柱高度设置为固定值?我尝试为每个
id
s添加
height:1000px
,但这似乎并不适用于CSS。任何帮助都将不胜感激。

您可以使用此代码获得帮助。 你需要使用FlexCSS

<ul class="list">
    <li class="list__item"><!-- content --></li>
    <li class="list__item"><!-- content --></li>
    <!-- other items -->
</ul>

如果要将每列的高度限制在某个极限,需要一些javascript代码来回退flex css。

。您可以使用
max height
min height
规则。但是如果你想用Javascript来做的话。下面是一个算法,假设您在填写列的内容数据后调用此函数

<ul class="list">
    <li class="list__item"><!-- content --></li>
    <li class="list__item"><!-- content --></li>
    <!-- other items -->
</ul>
function setHeight() {
    var leftCol = document.querySelector("#left-column");
    var rightCol = document.querySelector("#right-column");

    var largerHeight = Math.max(leftColHeight.getBoundingClientRect().height, rightColHeight.getBoundingClientRect().height);

    leftCol.style.height = largerHeight + "px";
    rightCol.style.height = largerHeight + "px";
}

您可以尝试检查我的代码,我已经使用display flex完成了您想要完成的任务。。检查此链接


有两大选择:使用Javascript,或不使用Javascript

如果您使用Javascript,假设您使用的库可以帮助代码的某些部分成为跨浏览器的,而无需您做大量工作,那么几乎可以保证它可以在任何支持它的浏览器上工作

大倒退:如果有人禁用了Javascript,这看起来不太好

不是Javascript 最近CSS获得了一种新的显示类型,
flex
。现在,应该说,基于IE 11,flexbox的支持已经搞砸了,但大多数浏览器都支持它(85%的浏览器支持它,没有前缀,这也包括大多数移动浏览器!)

.flex容器{
显示:-网络工具包盒;
显示:-webkit flex;
显示:-ms flexbox;
显示器:flex;
}
#左列{
-webkit-box-flex:0;
-webkit flex:0.25%;
-ms-flex:025%;
弹性:0.25%;
右边框:1px实心#CDCDCD;
}
#右栏{
-webkit-box-flex:1;
-webkit-flex:1;
-ms-flex:1;
弹性:1;
左侧填充:5px;
}

测试
测试
测试

通过CSS,并包括像IE8这样的旧浏览器,您可以使用display:table/table cell

main{
显示:表格;
表布局:固定;
宽度:100%;
}
#左列{
显示:表格单元格;
宽度:25%;
背景色:#fff;
右边界:实心;
}
#右栏{
显示:表格单元格;
宽度:75%;
}

面
统计数据
击打
标页码
试试这个(我添加了一些背景色只是为了看看结果)

main{溢出:隐藏;
}
#左列{
浮动:左;
宽度:25%;
背景色:红色;
右边框:1px实心#cdcdcd;
保证金底部:-99999像素;
填充底部:99999像素;
}
#右栏{
背景颜色:绿色;
宽度:75%;
左边缘:25%;
保证金底部:-99999像素;
填充底部:99999像素;
}

aa
bb
复写的副本

不需要使用javascript。 只需利用CSS中的标准
显示即可


为什么不使用flexbox而不是浮动?另外一个是flexbox——等高列曾经被认为是CSS的圣杯!你可以用表格代替div分享你的网站的任何工作示例,请包括你发布的链接的要点,因为链接往往会在一段时间后停止工作。。。
.list
{
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;

    -webkit-flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
}
    .list__item
    {
        display: -webkit-flex;
        display: -ms-flexbox;
        display: flex;
    }
function setHeight() {
    var leftCol = document.querySelector("#left-column");
    var rightCol = document.querySelector("#right-column");

    var largerHeight = Math.max(leftColHeight.getBoundingClientRect().height, rightColHeight.getBoundingClientRect().height);

    leftCol.style.height = largerHeight + "px";
    rightCol.style.height = largerHeight + "px";
}
.parent{
    display: flex;
}