|
|

楼主 |
发表于 2025-12-1 19:34
|
显示全部楼层
一楼,小播容器里面的子元素自带一个 ::after 伪元素,其中:小播容器强制子元素绝对居中,其内子元素宽度为容器宽度的一半、高度与容器元素一致;子元素的 ::after 伪元素宽高和子元素一致。这样,默认情况下,子元素+伪元素整体高度为小播容器高度的一倍,长出的部分因为伪元素的CSS设置都是伪元素的高度,这是,如果需要“子元素+伪元素”整体的中心点与小播元素的中心点重合则需要子元素上提 50% 即 top: -50%。
一楼的效果演示,开始时浅绿色的伪元素完全暴露在容器元素之外,鼠标指针移至容器子元素整体会上提 50%(top: -50%),子元素整体的中心点与容器元素中心点叠加在一起。
而子元素如果需要旋转,则应设在水平方向50%、垂直方向100%处,这样如果添加多个子元素并绕圈静态旋转它们才成为一个整体的构图。
一楼代码:
- <style>
- .ma {
- position: relative;
- width: 200px;
- height: 200px;
- border: 1px solid gray;
- display: grid;
- place-items: center;
- margin: 200px auto;
- }
- .ma:hover .son { top: -50%; }
- .son {
- position: absolute;
- width: 50%;
- height: 100%;
- background: green;
- }
- .son::after {
- position: absolute;
- content: '';
- top: 100%;
- width: 100%;
- height: 100%;
- background: lightgreen;
- transform: scale(1, -1);
- }
- </style>
- <div class="ma">
- <div class="son"></div>
- </div>
复制代码
|
|