小编典典

IE9边框半径和背景渐变出血

all

IE9 显然能够通过使用 CSS3 标准定义来处理圆角border-radius

对边框半径 背景渐变的支持怎么样?是的,IE9 是分别支持它们的,但是如果将两者混合,渐变会从圆角溢出。

我也看到了奇怪的阴影,在圆角的盒子下显示为一条实心黑线。

以下是 IE9 中显示的图像:

没有出血但有锐角的图像
有出血的图像

我该如何解决这个问题?


阅读 61

收藏
2022-07-18

共1个答案

小编典典

这是一种添加背景渐变的解决方案,使用数据 URI 创建覆盖任何背景颜色的半透明图像。我已经验证它在 IE9 中被正确裁剪到边界半径。这比基于 SVG
的提案更轻,但作为一个缺点,它与分辨率无关。另一个优点:适用于您当前的 HTML/CSS,并且不需要使用其他元素进行包装。

我通过网络搜索抓取了一个随机的 20x20 渐变 PNG,并使用在线工具将其转换为数据 URI。生成的数据 URI 比所有 SVG 混乱的 CSS
代码更小,更不用说 SVG 本身了!(您可以仅使用条件样式、特定于浏览器的 css 类等有条件地将其应用于 IE9。)当然,生成 PNG
对按钮大小的渐变效果很好,但对页面大小的渐变效果不好!

HTML:

<span class="button">This is a button</span>

CSS:

span.button { 
  padding: 5px 10px;
  border-radius: 10px;
  background-color: orange;  
  background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAvUlEQVQ4y63VMQrDMAyF4d/BGJ+rhA4dOnTo0Kn3P4ExxnSoXVQhpx0kEMmSjyfiKAF4AhVoqrvqjXdtoqPoBMQAPAZwhMpaYkAKwH1gFtgG0v9IlyZ4E2BVabtKeZhuglegKKyqsWXFVboJXgZQfqSUCZOFATkAZwEVY/ymQAtKQJ4Jd4VZqARnuqyxmXAfiAQtFJEuG9dPwtMC0zD6YXH/ldAddB/Z/aW4Hxv3g+3+6bkvB/f15b5gXX8BL0z+tEEtuNA8AAAAAElFTkSuQmCC);
  background-size: 100% 100%;

  border: 2px solid white;
  color: white;
}
2022-07-18