gpt4 book ai didi

css - 垂直滚动正在改变百分比宽度

转载 作者:太空宇宙 更新时间:2023-11-04 11:39:47 26 4
gpt4 key购买 nike

我在表格上有一个百分比宽度和一个 overflow-y:auto。当滚动出现时,表格的宽度被推开。我怎样才能使表格具有相同的宽度(有或没有滚动条)谢谢!

这是我的CSS:

    html,body{height:99%;}
.table1
{ margin: 0;
padding: 0;
border-collapse: collapse;
width:98.1%;
height:5%;
text-align: box-sizing: border-box;
left;table-layout: fixed;
}
.table1 td
{ border-collapse: collapse;
background-color: #EAEAEA;
border: 1px solid lightgrey;
padding-left: 3px;
}
#container
{ overflow-y:auto;
height:20%;
width:100%;left:0;
right:0;
}

.table2
{ margin: 0;
padding: 0;
border-collapse: collapse;
left:0;
right:0;
min-width:98.1%;
box-sizing: border-box;
table-layout: fixed;
}
.table2 tr
{ height:30px;
}
.table2 td
{ margin: 0;
border-collapse: collapse;
border: 1px solid lightgrey;
border-top:none;
border-right: 1px solid lightgrey;
}

这是我的 HTML:

<html>
<head>
</head>

<body BGCOLOR="#EAEAEA" TOPMARGIN=0 LEFTMARGIN=0 RIGHTMARGIN=0 >
<table class ="table1">
<colgroup>
<col width="20%"/>
<col width="50%"/>
<col width="30%"/>
</colgroup>
<tbody>
<tr>
<td>Col 1</td>
<td>Col 2</td>
<td>Col 3</td>
</tr>
</tbody>
</table>

<div id="container">
<table class="table2" BGCOLOR="WHITE">
<colgroup>
<col width="20%"/>
<col width="50%"/>
<col width="30%"/>
</colgroup>
<tbody>
<tr>
<td>Name</td>
<td>Name</td>
<td>Name</td>
</tr>
<tr>
<td>Name</td>
<td>Name</td>
<td>Name</td>
</tr>
<tr>
<td>Name</td>
<td>Name</td>
<td>Name</td>
</tr>
<tr>
<td>Name</td>
<td>Name</td>
<td>Name</td>
</tr>
<tr>
<td>Name</td>
<td>Name</td>
<td>Name</td>
</tr>
</tbody>
</table>
</div>

</body>
</html>

最佳答案

试试这个:

html,body{height:99%;}
.table1
{ margin: 0;
padding: 0;
border-collapse: collapse;
width:calc(100% - 17px);
height:5%;
text-align:left;
}
.table1 td
{ border-collapse: collapse;
background-color: #EAEAEA;
border: 1px solid lightgrey;
padding-left: 3px;
}
#container
{ overflow-y:scroll;
height:20%;
width:100%;left:0;
right:0;
}

.table2
{ margin: 0;
padding: 0;
border-collapse: collapse;
left:0;
right:0;
width:100%;
box-sizing: border-box;
table-layout: fixed;

}
.table2 tr
{ height:30px;
}
.table2 td
{

border: 1px solid lightgrey;
border-top:none;
border-right: 1px solid lightgrey;
}

您可以在我使用 width:calc(100% - 17px); 的地方看到 container 的变化。 containerWidth 减少了 17px(scroller 的宽度),但我也改变了这个 溢出-y:滚动;。现在,所有行都将对齐 :)

.table1 td.table2 td 中不需要 border-collapse...和 ​​overflow也是。

重点在于 width:calc(100% - XYpx),在本例中为 17px(滚动条的宽度)

希望这就是您所需要的。

Fiddle example

更新:

我创建了两个 js 函数。首先检查 container 元素中是否有 scrollbar 并调整他的 width 。第二个函数仅用于测试,模拟在这种情况下 height 是否更改。

实际上,当您添加更多行时,其数量超过 container height,您的表将适应。或者也可以在调整大小的浏览器上。

在你的情况下,你不需要第二个名为 chVl()js 函数,就像我之前说的那样,它只是为了测试。

Try this Fiddle now

关于css - 垂直滚动正在改变百分比宽度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31439860/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com