这可以通过writing-mode属性来实现 . 如果将元素的 writing-mode 设置为垂直书写模式(例如 vertical-lr ),则其后代在两个维度中的填充和边距的百分比值将相对于高度而不是宽度 .
. . . 边距和填充属性的百分比(总是根据CSS2.1中的包含块宽度计算)是根据CSS3中包含块的内联大小计算的 .
内联尺寸中的测量:指水平书写模式下的物理宽度(水平尺寸),以及垂直书写模式下的物理高度(垂直尺寸) .
示例,带有可调整大小的元素,其中水平边距相对于宽度,垂直边距相对于高度 .
.resize {
width: 400px;
height: 200px;
resize: both;
overflow: hidden;
}
.outer {
height: 100%;
background-color: red;
}
.middle {
writing-mode: vertical-lr;
margin: 0 10%;
width: 80%;
height: 100%;
background-color: yellow;
}
.inner {
writing-mode: horizontal-tb;
margin: 10% 0;
width: 100%;
height: 80%;
background-color: blue;
}
在希望元素的宽高比保持不变但希望其大小与其高度而不是宽度相关的缩放的情况下,使用垂直书写模式尤其有用 .