【发布时间】:2013-06-27 15:18:24
【问题描述】:
作为测试,我尝试将<div> 显示为一个圆圈。 <div> 里面有一些文字,但其他地方是空的。
然后在 JavaScript 中计算offsetWidth 和offsetHeight,使用两者中的最大值,并将其分配给名为diameter 的变量(尽管实际上宽度可能总是更大)。我使用diameter 来分配<div> 的宽度、高度和边框半径。结果看起来像一个圆圈(至少在 Chrome、Firefox、Opera 和 Safari 中。我没有测试过 IE)。
在 Chrome、Firefox、Opera 和 Safari 中进行测试我注意到,当光标刚好在圆形区域之外但在矩形区域内时,CSS hover 和 JavaScript onmousedown 的行为不同如果未设置 border-radius 则可见。
以下是光标在该位置时的结果:
- Chrome:
hover和onmousedown在圈外受影响 - Firefox:
hover和onmousedown仅在圈内受到影响 - Opera:
hover和onmousedown在圈外受影响 - Safari:
hover和onmousedown在圈外受到影响
Firefox 的行为是我想一直使用的行为,有没有办法让这成为可能?
编辑:如果您找到解决方案,请说明您使用的浏览器。
【问题讨论】:
-
你能做一个 jsfiddle 来说明你的问题吗?我的猜测是您正在使用的属性只会被 Firefox 正确解释。因此,弄清楚它是什么,您应该在所有浏览器中都有相同的行为。
-
Hive7 下面给出的答案有一个说明问题的 jsfiddle 链接。添加
.circle:hover {background:#0f0;}将显示hover问题。 -
在我看来,这在 Chrome、Firefox、Safari 和 IE9+ 中按预期工作:jsfiddle.net/KLFLG
-
只是看了一下(使用 Safari),如果未设置
border-radius,则矩形所在的圆外区域会使圆变成蓝色。将width和height设置得更大可以使这一点更加明显。
标签: javascript html css