javascript - 带有填充属性的 SVG 矩形出现在包含元素插入框阴影的上方

标签 javascript svg raphael css

我的 SVG 有一个包含元素。这个元素有一个插入框阴影。不幸的是,当元素靠近填充的边时,它们实际上被绘制在框阴影上方而不是下方。我该如何解决这个问题?

Here is a jsFiddle showing the problem

HTML:

<div id="holder"></div>​

CSS:

#holder {
    box-shadow: 0 0 4px rgba(0, 0, 0, 0.6) inset;
    margin: 10px;
    width: 200px;
    height: 200px;
}​

Javascript:

window.onload = function() {
    var r = Raphael("holder", 200, 200);

    var rect = r.rect(140, 140, 150, 150);  
    rect.attr({fill:"#fff"});    
};

最佳答案

如果您没有 SVG 而有图像,您也会遇到同样的问题。幸运的是,图像的解决方法是众所周知的:在覆盖 div 的伪元素上应用框阴影,示例:

#holder {
    margin: 10px;
    width: 200px;
    height: 200px;
    position: relative;
}

#holder:after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    box-shadow: 0 0 14px rgba(0, 0, 0, 0.6) inset;
}
​

http://jsfiddle.net/VxxwJ/

关于javascript - 带有填充属性的 SVG 矩形出现在包含元素插入框阴影的上方,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12384036/

相关文章:

javascript - 缩放纸上的特定元素

javascript - Ajax 将数据附加到现有表

javascript - 在 Chrome 扩展中从后台页面获取配置到内容脚本

html - 使用 SVG 或 JPG/PNG 图像来提高页面性能是否更好?

javascript - Raphael.js 新手问题 : how to create a rectangular and lines as ONE object?

javascript - 永久组合 "click"和 "hover"?

javascript - 使用 Javascript 通过按钮更改网页上的文本

javascript - 有什么方法可以加快根据滚动调整的元素的放置速度?

javascript - HTML5 Canvas vs. SVG vs. div

html - SVG 未在最新版本的 Chrome 中显示