谷歌Chrome嵌入了Windows上的盒子阴影错误,而不是Mac:更好的解决方法?
这仍然是Chrome 5.0.375.125的最新版本,这是撰写本文时的最新Windows版本。
此处会跟踪错误: http : //code.google.com/p/chromium/issues/detail?id = 25334
所以,问题是,如果您使用的是Windows或Linux,并且某人在也具有border-radius的元素上使用了插入框阴影,则会出现错误 – 边框半径被保留,但插入框 – 阴影溢出来,好像它仍然是一个方形盒子。 它在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 }
我现在可以洗个澡吗? 这个黑客让我觉得很糟糕。
有没有人为此提出更好的解决方法?
您可以通过css hack定位safari来摆脱JS部分,对于纹理背景,您可以使用相同的边框纹理(棘手!但适用于某些纹理):
- 使用jQuery计算Children的总宽度
- 如何在所有浏览器中使用时使用JQUERY上传文件获取完整路径以及为什么IE,Chrome会给出“c:/ fakepath / filname”返回?
- 响应式设计:使用媒体查询或jQuery更改标记?
- 元素从鼠标下移出后(在所有浏览器中),hover状态为粘性
- 使用jQuery或JavaScript绑定到自定义CSS动画结束事件?
- 动态调整textarea的宽度和高度以包含文本
- 为什么pageX和pageY相对于包装器而不是文件?
- hover在agendaWeek + fullcalendar的一个单元格上的效果
- 触摸事件不能与ipad上的叠加div的z-index一起使用