CSS 子级缩放变换不影响父级大小
CSS Scale transform on child not affecting parent size
我有一个太大的组件,我想缩小它。我可以通过缩放变换来做到这一点,但父容器不会缩小以适合。
在我的真实代码中,带有 SHRINK-ME class 的 div 实际上是一个 Angular 日历组件,但是这个简化的 repo 重现了相同的效果。我不能只缩放包装父级 div,因为我需要使用 Bootstrap 列网格 classes 来容纳此示例中省略的对象。我在这里错过了一个简单的 CSS 属性 吗?
.parent {
background-color: green;
}
.parent .child-object {
height: 10em;
background-color: red;
}
.sibling {
background-color: yellow;
}
.SHRINK-ME {
transform: scale(.80) translate(-12.5%, -12.5%);
}
<div class='row no-gutters'>
<div class='parent col-vs-12 col-sm-6'>
<div class='child-object SHRINK-ME'>CHILD</div>
</div>
<div class='sibling col-vs-12 col-sm-6'>SIBLING</div>
</div>
我的代码有和没有转换:
.parent {
background-color: green;
width: 40%;
}
.parent .child-object {
height: 10em;
background-color: red;
}
.sibling {
background-color: yellow;
}
.SHRINK-ME {
transform: scale(.80) translate(-12.5%, -12.5%);
}
<div class='row no-gutters'>
<div class='parent col-vs-12 col-sm-6'>
<div class='child-object'>CHILD</div>
</div>
<div class='sibling col-vs-12 col-sm-6'>SIBLING</div>
</div>
<br> Don't want to see the green parent div, want it to shrink as child is scaled down..
<div class='row no-gutters'>
<div class='parent col-vs-12 col-sm-6'>
<div class='child-object SHRINK-ME'>CHILD</div>
</div>
<div class='sibling col-vs-12 col-sm-6'>SIBLING</div>
</div>
我错过了 CSS 转换的关键部分:它们 不会 影响文档流,只会影响视觉表示。因此,元素的原始足迹将保留下来。我能够通过在 child 和同级上设置宽度来克服,然后手动移动同级以匹配 child 的顶角。需要做更多的工作才能适应小屏幕。
.parent {
background-color: green;
}
.parent .child-object {
width: 10em;
background-color: red;
}
.sibling {
color: white;
width: 20em;
background-color: blue;
}
.SHRINK-ME {
transform: scale(.80);
}
.TRANSLATE-ME {
transform: translate(-5%, 10%);
}
<div class='row'>
<div class='parent SHRINK-ME'>
<div class='child-object '>CHILD</div>
</div>
<div class='sibling TRANSLATE-ME'>SIBLING</div>
</div>
我有一个太大的组件,我想缩小它。我可以通过缩放变换来做到这一点,但父容器不会缩小以适合。
在我的真实代码中,带有 SHRINK-ME class 的 div 实际上是一个 Angular 日历组件,但是这个简化的 repo 重现了相同的效果。我不能只缩放包装父级 div,因为我需要使用 Bootstrap 列网格 classes 来容纳此示例中省略的对象。我在这里错过了一个简单的 CSS 属性 吗?
.parent {
background-color: green;
}
.parent .child-object {
height: 10em;
background-color: red;
}
.sibling {
background-color: yellow;
}
.SHRINK-ME {
transform: scale(.80) translate(-12.5%, -12.5%);
}
<div class='row no-gutters'>
<div class='parent col-vs-12 col-sm-6'>
<div class='child-object SHRINK-ME'>CHILD</div>
</div>
<div class='sibling col-vs-12 col-sm-6'>SIBLING</div>
</div>
我的代码有和没有转换:
.parent {
background-color: green;
width: 40%;
}
.parent .child-object {
height: 10em;
background-color: red;
}
.sibling {
background-color: yellow;
}
.SHRINK-ME {
transform: scale(.80) translate(-12.5%, -12.5%);
}
<div class='row no-gutters'>
<div class='parent col-vs-12 col-sm-6'>
<div class='child-object'>CHILD</div>
</div>
<div class='sibling col-vs-12 col-sm-6'>SIBLING</div>
</div>
<br> Don't want to see the green parent div, want it to shrink as child is scaled down..
<div class='row no-gutters'>
<div class='parent col-vs-12 col-sm-6'>
<div class='child-object SHRINK-ME'>CHILD</div>
</div>
<div class='sibling col-vs-12 col-sm-6'>SIBLING</div>
</div>
我错过了 CSS 转换的关键部分:它们 不会 影响文档流,只会影响视觉表示。因此,元素的原始足迹将保留下来。我能够通过在 child 和同级上设置宽度来克服,然后手动移动同级以匹配 child 的顶角。需要做更多的工作才能适应小屏幕。
.parent {
background-color: green;
}
.parent .child-object {
width: 10em;
background-color: red;
}
.sibling {
color: white;
width: 20em;
background-color: blue;
}
.SHRINK-ME {
transform: scale(.80);
}
.TRANSLATE-ME {
transform: translate(-5%, 10%);
}
<div class='row'>
<div class='parent SHRINK-ME'>
<div class='child-object '>CHILD</div>
</div>
<div class='sibling TRANSLATE-ME'>SIBLING</div>
</div>