我对边缘半径有疑问。基本上我使用代码创建一种聚光灯工具来查找隐藏的HTML。这是小提琴: http://jsfiddle.net/pwneth/hj57k/1899/
的CSS:
#tail {
border: 1000px solid #fff;
position: absolute;
float: left;
height: 100px;
width: 100px;
background-color: rgba(0,0,0,.0);
z-index: 100;
top: 0px;
left: 0px;
pointer-events:none;
-moz-box-shadow: inset 0 0 20px #000000;
-webkit-box-shadow: inset 0 0 20px #000000;
box-shadow: inset 0 0 20px #000000;
}
我需要以某种方式设置形状的边框半径,使其显示为圆形。这是一个问题,因为这只影响外边框,这不是我想要影响的东西。就在边境内部。
答案 0 :(得分:6)
这是一个更简单的选项:
只需将border-radius放在原始元素上即可。
#tail
{
/* ... */
border-radius:100%;
}
然后隐藏所有内容,直到鼠标悬停在它上面。
body /* or whatever element you want */
{
display:none;
}
然后这样做:
$(document).bind('mouseenter', function (e) {
$('body').show();
});
$('body').bind('mouseleave', function (e) {
$(this).hide();
});
这样用户永远不会看到隐藏的内容。
答案 1 :(得分:2)
此解决方案更为通用,如果所需形状为圆角方形或矩形,则应使用此解决方案
使用after
伪元素:
http://jsfiddle.net/hj57k/1903/
#tail {
border: 1000px solid #fff;
position: absolute;
float: left;
height: 100px;
width: 100px;
background-color: rgba(0,0,0,.0);
z-index: 100;
top: 0px;
left: 0px;
pointer-events:none;
}
#tail:after {
-webkit-box-shadow: inset 0 0 20px #000000;
-moz-box-shadow: inset 0 0 20px #000000;
box-shadow: inset 0 0 20px #000000;
border: 10px solid white;
border-radius: 20px;
content: '';
display: block;
height: 100%;
left: -10px;
position: relative;
top: -10px;
width: 100%;
}
您需要相对定位来覆盖否则仍然可见的左上边缘。谨防使用框模型或浏览器计算维度的不一致性,这在webkit中起作用,可能不是IE的情况。
答案 2 :(得分:1)
没有太多变化:jsFiddle
总之,请设置border-radius = border-width + radius
。
答案 3 :(得分:0)
Jakub很接近,但这会产生预期的圆圈。
http://jsfiddle.net/hj57k/1905/
#tail {
border: 1000px solid #fff;
position: absolute;
float: left;
height: 100px;
width: 100px;
background-color: rgba(0,0,0,.0);
z-index: 100;
top: 0px;
left: 0px;
pointer-events:none;
}
#tail:after {
-webkit-box-shadow: inset 0 0 20px #000000;
-moz-box-shadow: inset 0 0 20px #000000;
box-shadow: inset 0 0 20px #000000;
border: 50px solid white;
border-radius: 999px;
content: '';
display: block;
height: 100%;
left: -50px;
position: relative;
top: -50px;
width: 100%;
}