html - 父元素布局wrt旋转元素的边界框
问题描述
我想将表格标题中的文本旋转 90 度(恕我直言,这是一个明智的用例),但是transform: rotate(-90.0deg);
在布局方面表现不佳。也就是说,父元素将它的高度调整为子元素的高度,旋转后就是宽度。这很烦人,因为这主要使子元素显着溢出父元素,导致文本与其他文本重叠。
示例(https://jsfiddle.net/jpe3voxy/)
<div id="z">
A very long header
</div>
<div id="a">
<div id="b">
Hello World
</div>
</div>
#a {
background-color: blue
}
#b {
background-color: red;
transform: rotate(-90.0deg);
overflow: hidden;
height: 50px; width: 200px;
}
元素#b
与标题重叠。可以通过#b
在#a
. 换句话说,手动布局很麻烦,一般不适用于#b
.
问题如何使父元素布局成为子元素的边界框,而不是子元素的未转换大小?
解决方案
想法是考虑为转换后的元素添加边距,使其高度+边距等于其宽度,然后调整变换原点:
#a {
background-color: blue;
overflow:hidden;
}
#b {
background-color: red;
transform: translateX(-100%) rotate(-90.0deg);
overflow: hidden;
height: 50px;
width: 200px;
margin-bottom:calc(200px - 50px);
transform-origin:top right;
}
<div id="z">
A very long header
</div>
<div id="a">
<div id="b">
Hello World
</div>
</div>
推荐阅读
- android - 如何从底部到顶部淡出 SnackBar
- javascript - 如何在 JS + WebdriverIO 中使用 xPath
- python - 比较python中包含字符串的两个列表
- android - 像 MxPlayer 一样增加 ExoPlayer 2 的亮度
- android - 如何使用分支创建自定义域链接不会在 Android 中发送任何有价值的信息
- python - 为什么Tensorflow中二进制分类头的logit_dimension = 1?
- css - 在 CSS3 变量定义中使用 SCSS 变量不起作用?
- mysql - 如何在不制作数据库完整副本的情况下对 MySQL 数据库进行版本控制和分支?
- c# - SmtpClient“请求失败;邮箱不可用”
- javascript - 字符串长度改变和错误