图片transform其父级的border-radius失效

最近在做一个项目的时候,遇到这样一个bug! 仔细看图的圆角部分。


不难发现在中间图片放大的过程里,父级div的border-radius出现的短暂的失效。(此bug我在火狐里面没有看到。在chorme浏览器下面。)后来群里的一个网友给了我答案!

加上:transform: rotate(0deg);-webkit-transform:rotate(0deg);

看上去是八竿子打不着的属性,加到代码里面 没想到就生效了!!!


<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Szy1000</title>
	<style>
		body{
			background: blue;
		}
		.scale{
			width: 300px;
			height: 200px;
			overflow: hidden;
			border-radius: 10px;
			transform: rotate(0deg);
			-webkit-transform:rotate(0deg);
		}
		.scale img{
			height: 100%;
			transition: 500ms;
		}
		.scale:hover img{
			transform: scale(1.2);
		}
	</style>
</head>
<body>
	<div class="scale">
		<img src="1.jpg" alt="">
	</div>
</body>
</html>

-----------------------------------------------我是不完美的分割线------------------------------------------------------

方法二:mask-image()

首先,我们需要准备一张带有圆角的png图片。注意圆角的角度。我这里是建一个宽300px高 200px 圆角10px。填充部分跟你是黑色还白色这里无需关心。当然在svg遮罩里面的时候就需要注意了。

代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Szy1000</title>
	<style>
		body{
			background: blue;
		}
		.scale{
			width: 300px;
			height: 200px;
			overflow: hidden;
			border-radius: 10px;
			mask-image: url("mask.png");
			-webkit-mask-image:url("mask.png");
		}
		.scale img{
			height: 100%;
			transition: 500ms;
		}
		.scale:hover img{
			transform: scale(1.2);
		}
	</style>
</head>
<body>
	<div class="scale">
		<img src="1.jpg" alt="">
	</div>
</body>
</html>


第二种方法其实就是遮罩。它在火狐上面的兼容性,还有待考证。只有-webkit-mask-image:url("mask.png") 没有其它的前缀了。关于-mask-image敬请期待下一篇博客。

最后附上源码供大家 下载。

谢谢!

阅读终点,创作起航,您可以撰写心得或摘录文章要点写篇博文。去创作
  • 4
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
border-radius属性失效的原因可能是由于父元素设置了overflow:hidden属性,并且子元素使用了transform属性。在这种情况下,父元素的overflow:hidden属性会失效,导致border-radius属性无效。 解决这个问题的方法是使用!important来强制覆盖样式。你可以在border-radius属性的值后面添加!important,这样可以确保该样式优先生效。例如,你可以在父元素的border-radius属性后面添加!important;来强制生效。 另外,有时候即使设置了border-radius和overflow:hidden属性,预览时效果正常,但在真机上却无效。这可能是因为不同浏览器或设备对CSS属性的支持存在差异。在这种情况下,你可以尝试使用其他方法来实现圆角效果,例如使用背景图片或者使用伪元素来绘制圆角。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [border-radius 失效](https://blog.csdn.net/yang450712123/article/details/130943200)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [border-radius属性失效问题的解决办法](https://blog.csdn.net/qq_36538012/article/details/83310390)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

沈志勇说

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值