html - Css "transform: scale()"使元素在容器外生长

标签 html css

我有下面的 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()之后保持在容器的边界内?

谢谢

最佳答案

如果您需要使用 transform: scale(),我认为您最好的选择是将转换应用到 div。该表将继承它,并包含在其中。转换为元素创建了一个新的上下文,这就是 div 不随元素增长的原因。

更大的问题是,您希望看到的最终结果是什么?如果它只是调整表的大小,那么使用转换似乎有点矫枉过正,会引入一些复杂的问题。做这样的事情不是更简单吗:

.table {
    background-color: blue;
    color: white;
    width: 100%;
}

.table td {
    width: 25%;
    height: 2.5em;
    font-size: 1.5em;
}

如果您要做的只是调整元素的大小,那应该会给您类似的结果。

关于html - Css "transform: scale()"使元素在容器外生长,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23154598/

相关文章:

javascript - 在 JavaScript 中动态删除行

css - 如何使 flexbox 均匀分布元素而不会使 sibling 错位?

JavaScript:切换按钮组无法正常工作

html - 将图像和画廊彼此对齐

regex - 在 Razor 应用程序中验证 html5 中的电子邮件输入

html - 占位符中的 fontawesome 用户

javascript - 确认页面

html - 插入新 block 时如何找到插入可拖动元素的位置

html - Joomla 模块 CSS 覆盖

internet-explorer - 在 Internet Explorer 中设置最大宽度