【发布时间】:2021-12-29 10:48:45
【问题描述】:
我试图在 img 内绘制一个半径角的边框,但我不能使用适当的“轮廓偏移:-10px”来做到这一点,因为角不是半径。
我正在尝试使用具有这些属性的绝对 div:
<figure title="Ruleta en Vivo" class="container-juego">
<a href="#" style="position: relative;">
<div style="
width: calc(100% - 20px);
height: calc(100% - 20px);
display: block;
border: 1px solid #FBC64D;
position: absolute;
left: 0;
z-index: 5000;
right: 0;
margin-left: auto;
margin-right: auto;
top: 50%;
transform: translateY(-50%);
border-radius: 3px;
"></div>
<img src="https://d1131w2enq9v80.cloudfront.net/img/logos/evolution/destacados/imagen_destacada-ruleta-en-vivo01.jpg" class="imgdestacada lazy loading" data-was-processed="true" style="">
</a>
</figure>
div {
width: calc(100% - 20px);
height: calc(100% - 20px);
display: block;
border: 1px solid #FBC64D;
position: absolute;
left: 0;
z-index: 5000;
right: 0;
margin-left: auto;
margin-right: auto;
top: 50%;
transform: translateY(-50%);
border-radius: 3px;
}
还有比这更简单的方法吗?
结果是这样的: Result
【问题讨论】:
-
无论如何我都会避免在边框上使用轮廓,因为它会影响可访问性。如果您可以为minimal reproducible example 提供 HTML,将会很有帮助。
-
请不要只显示 CSS 代码,没有它应该适用的 HTML - 这告诉我们很少。根据实际结构,这应该可以在没有明确计算宽度和高度的情况下工作,也不需要应用任何平移。 (如果您在图像周围有一个包装器元素,与图像具有相同的宽度和高度,并且使用
position:relative,那么您可以简单地使用20px绝对定位图像的兄弟姐妹为上/下/左/右,并且根本不需要指定宽度和高度。)