内边界半径不起作用

时间:2013-09-12 18:22:12

标签: jquery html5 css3

我对边缘半径有疑问。基本上我使用代码创建一种聚光灯工具来查找隐藏的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;
}

我需要以某种方式设置形状的边框半径,使其显示为圆形。这是一个问题,因为这只影响外边框,这不是我想要影响的东西。就在边境内部。

4 个答案:

答案 0 :(得分:6)

这是一个更简单的选项:

Fiddle

只需将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%;
}