这在 Chrome 5.0.375.125 上仍然是最新的,这是撰写本文时最新的 Windows 版本。
此处跟踪错误: http ://code.google.com/p/chromium/issues/detail?id=25334
所以,问题是,如果你在 Windows 或 Linux 上,并且有人在一个也有边界半径的元素上使用了插入框阴影,你会得到一个错误——边界半径被保留,但是插入框——影子从里面溢出,仿佛还是一个方盒子。它在 Mac OS X 上的 Chrome 中按预期工作。
使用纹理背景的人不能使用这个技巧,因为它需要不透明的边框颜色。它也只在较小的半径上真正有效。
这个黑客的两个部分。一点 Javascript(jQuery + jQuery.client 插件):
if ($.client.browser == "Chrome" && $.client.os != "Mac"){
$('html').addClass("inset-radius-hack");
};
和 CSS
#div{
-moz-border-radius: 7px;
-webkit-border-radius: 7px;
border-radius: 7px;
-moz-box-shadow: rgba(0, 0, 0, 0.4) 1px 1px 4px 0 inset;
-webkit-box-shadow: rgba(0, 0, 0, 0.4) 1px 1px 4px 0 inset;
box-shadow: rgba(0, 0, 0, 0.4) 1px 1px 4px 0 inset;
padding: 5px 10px;
margin-bottom: 10px;
max-width: 120px;
}
html.inset-radius-hack #div {
border: 2px solid #fff; /* cover the edges with the border
margin: 0 -2px 0 -2px; /* and take back the extra pixels the border adds
}
我现在可以洗澡了吗?这个黑客让我感到恶心。
有没有人为此提出更好的解决方法?