如何用图像制作伪元素比例尺?
How do I make pseudo-element scale with the image?
我在 div
框中有一个 img
元素,它上面有一个伪元素(即 ::before
)。我现在想让该图像以与伪元素相同的方式缩放。使伪保持在与现在相同的位置(屏幕宽度为 375px)。不知道该怎么做。有人可以帮我吗?
<div class="image-box">
<img class="image-box__image" src="assets/image.png">
</div>
.image-box {
position: relative;
&::before {
content: "";
position: absolute;
width: 8.25em;
height: 8.25em;
background: tomato;
border-radius: 50%;
left: calc(50% - 4.5em);
top: -5px;
}
&__image {
width: 50%;
transform: translateX(50%);
}
}
提前致谢!
如果你想让伪元素缩放,你需要使用流体单位。
请注意,下面的方法使用 css 属性 aspect-ratio
, this property isn't fully supported yet.
我们如何实现响应圈:
- 使用
%
而不是 em
作为圆的 width
- 使用
aspect-ratio: 1/1
使高度等于宽度
- 改变
left
属性
- 添加一个
transform
到圆心
.image-box {
position: relative;
}
.image-box::before {
content: "";
position: absolute;
width: 12.5%;
aspect-ratio: 1/1;
background: tomato;
border-radius: 50%;
left: 50%;
transform: translateX(-50%);
top: -5px;
z-index: 2;
}
.image-box__image {
width: 50%;
transform: translateX(50%);
}
<div class="image-box">
<img class="image-box__image" src="https://source.unsplash.com/random/400x300">
</div>
我在 div
框中有一个 img
元素,它上面有一个伪元素(即 ::before
)。我现在想让该图像以与伪元素相同的方式缩放。使伪保持在与现在相同的位置(屏幕宽度为 375px)。不知道该怎么做。有人可以帮我吗?
<div class="image-box">
<img class="image-box__image" src="assets/image.png">
</div>
.image-box {
position: relative;
&::before {
content: "";
position: absolute;
width: 8.25em;
height: 8.25em;
background: tomato;
border-radius: 50%;
left: calc(50% - 4.5em);
top: -5px;
}
&__image {
width: 50%;
transform: translateX(50%);
}
}
提前致谢!
如果你想让伪元素缩放,你需要使用流体单位。
请注意,下面的方法使用 css 属性 aspect-ratio
, this property isn't fully supported yet.
我们如何实现响应圈:
- 使用
%
而不是em
作为圆的width
- 使用
aspect-ratio: 1/1
使高度等于宽度 - 改变
left
属性 - 添加一个
transform
到圆心
.image-box {
position: relative;
}
.image-box::before {
content: "";
position: absolute;
width: 12.5%;
aspect-ratio: 1/1;
background: tomato;
border-radius: 50%;
left: 50%;
transform: translateX(-50%);
top: -5px;
z-index: 2;
}
.image-box__image {
width: 50%;
transform: translateX(50%);
}
<div class="image-box">
<img class="image-box__image" src="https://source.unsplash.com/random/400x300">
</div>