我有下面的HTML和CSS:
HTML
<div class="div">
<table class="table">
<tr>
<td>column 1</td>
<td>column 2</td>
<td>column 3</td>
<td>column 4</td>
</tr>
</table>
</div>
CSS
.div
{
background-color: red;
padding: 5px;
}
.table
{
background-color: blue;
color: white;
width: 100%;
-moz-transform: scale(1.5); /* Firefox */
-moz-transform-origin: 0 0;
-o-transform: scale(1.5); /* Opera */
-o-transform-origin: 0 0;
-webkit-transform: scale(1.5); /* Safari And Chrome */
-webkit-transform-origin: 0 0;
transform: scale(1.5); /* Standard Property */
transform-origin: 0 0; /* Standard Property */
}
另外,请参阅jsFiddle以查看输出。
问题是,为什么table
会在div
容器之外生长?这对我来说没有意义。 width
样式属性设置为100%
。我希望该表保留在div
容器中,因为我没有width
限制。
有没有办法让表格在transform: scale()
之后保留在容器的边界内?
谢谢
答案 0 :(得分:1)
我认为你最好的选择是,如果需要使用transform:scale(),则将变换应用于div。该表将继承它,并包含在其中。变换为元素创建了一个新的上下文,这就是div不与它一起成长的原因。
更大的问题是,你希望看到最终结果是什么?如果它只是调整表的大小,使用转换看起来有点过度,会引入一些复杂性。做一些像这样的事情不是更简单:
.table {
background-color: blue;
color: white;
width: 100%;
}
.table td {
width: 25%;
height: 2.5em;
font-size: 1.5em;
}
如果您要做的只是重新调整元素的大小,那么应该会给您类似的结果。
答案 1 :(得分:0)
你试试这个css:
.div
{
background-color: red;
padding: 0px;
}