【问题标题】:background-clip : Strange behaviors背景剪辑:奇怪的行为
【发布时间】:2012-10-03 00:13:48
【问题描述】:

我最近一直在尝试一些 css3 功能,但我发现了一些奇怪的行为。 (我使用的是 firefox-nightly 18.0a1 (2012-09-24) 和 chrome Version 22.0.1229.91 beta)

我想制作一个黑色背景的圆形框,渐变边框从蓝色到透明。 所以我想我可以使用 2 个不同的背景并在内容框上剪辑一个(黑色的),以使蓝色/透明的一个出现在内容框之外的填充框上。

background: -webkit-linear-gradient(0deg, black, black), -webkit-linear-gradient(-90deg, rgb(0, 102, 204), rgba(0, 102, 204, 0);
background: -moz-linear-gradient(0deg, black, black), -moz-linear-gradient(-90deg, rgb(0, 102, 204), rgba(0, 102, 204, 0);
background-clip: content-box, border-box;

它在 Chrome 中工作得很好,但在 Firefox 中,似乎没有应用不同的背景剪辑,而是只应用了后一个,所以两个背景的剪辑方式相同,所以看不到蓝色/透明背景。

然后,我开始想在它周围加上一个外部边框,比如一个细的蓝色边框。 所以我补充说:

border: 3px solid blue;

Chrome 以一种非常奇怪的方式显示我的圈子: 由于边框半径,所有内容都被裁剪为圆形,但内容变成了正方形。

我做了一个 jsfiddle 来说明问题:http://jsfiddle.net/wUtPX/

这是一些已知的错误吗? 我应该将它们报告给一些错误跟踪器吗?

【问题讨论】:

    标签: firefox google-chrome css


    【解决方案1】:

    我正在阅读MDN specs for background-size。他们在这里明确地说:

    由 background-image 定义的多个背景的值可以 用逗号隔开

    虽然在background-clip 规范中并不清楚。所以也许它不支持多个值。

    此外,W3C specs 在“分层多个背景图像”操作方法中不包含背景剪辑。所以我猜它不应该支持多种属性,而 Chrome 所做的实际上是“错误的”。

    您可能可以找到使用 background-origin(支持多个值)和 background-size 的解决方法,例如:

    background-origin: border-box, content-box;
    background-size: 100% 100%, 99% 99%;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-02-13
      • 2011-06-02
      • 1970-01-01
      • 1970-01-01
      • 2013-01-07
      • 2022-08-07
      • 1970-01-01
      • 2011-04-05
      相关资源
      最近更新 更多