dra*_*035 4 css flexbox css-transforms
我有一个常规的无序列表项目,display: flex并justify-content: space-between应用于它(因此,.first_item触及 的左边缘.list并.last_item触及 的右边缘.list):
<ul class='list'>
<li class='first_item'>Item</li>
<li class='middle_item'>Item</li>
<li class='last_item'>Item</li>
</ul>
Run Code Online (Sandbox Code Playgroud)
但是,如果我使用 缩小项目transform: scale(0.5),现在这两个位置有一个空间,就好像justify-content: space-between“不知道”项目已经减少一样。
这是不对的:即使在缩小项目时,第一个和最后一个项目仍应接触容器的左右边缘。
发生了什么以及如何解决这个问题?
使用 缩小元素后transform,它会自动在其框内居中。
这是因为transform-origin属性的初始值为50%, 50%(即水平和垂直居中)。
结果,项目从容器的边缘偏移。
.list {
display: flex;
justify-content: space-between;
border: 1px dashed black;
padding: 0;
list-style: none;
}
li {
transform: scale(0.5);
border: 1px solid red;
}Run Code Online (Sandbox Code Playgroud)
<ul class='list'>
<li class='first_item'>Item</li>
<li class='middle_item'>Item</li>
<li class='last_item'>Item</li>
</ul>Run Code Online (Sandbox Code Playgroud)
您可以调节变换元素的位置left和right上transform-origin。
.list {
display: flex;
justify-content: space-between;
border: 1px dashed black;
padding: 0;
list-style: none;
}
.first_item {
transform: scale(0.5);
transform-origin: left;
}
.last_item {
transform: scale(0.5);
transform-origin: right;
}
li {
transform: scale(0.5);
border: 1px solid red;
}Run Code Online (Sandbox Code Playgroud)
<ul class='list'>
<li class='first_item'>Item</li>
<li class='middle_item'>Item</li>
<li class='last_item'>Item</li>
</ul>Run Code Online (Sandbox Code Playgroud)
规范中的更多详细信息:https : //drafts.csswg.org/css-transforms/#transform-origin-property
| 归档时间: |
|
| 查看次数: |
3198 次 |
| 最近记录: |