使用CSS向3面添加光晕

时间:2011-11-09 10:19:03

标签: css border css3 glow

我有一个盒子与另一个盒子重叠形成一种L形状,我试图在整个L形状周围发光,因此只需要在其中一个盒子的三个面上发光。

我已经尝试过使用box-shadow属性,但似乎无法让它只适用于3个边,这是正确使用的方法还是有另一种使用边框的方法我可以用来实现三面发光?

以下是我一直在尝试使用的代码

-moz-box-shadow: 0 -1px 5px #80abc6;
-webkit-box-shadow: 0 -1px 5px #80abc6;
box-shadow: 0 -1px 5px #80abc6;

3 个答案:

答案 0 :(得分:2)

您可以使用clip属性:

div {
    width: 100px;
    height: 30px;
    margin: 30px;
    clip: rect(-15px,115px,45px,0);
    position: absolute;

    -moz-box-shadow: 0 -1px 15px #80abc6;
    -webkit-box-shadow: 0 -1px 15px #80abc6;
    box-shadow: 0 -1px 15px #80abc6;
}

演示:http://jsfiddle.net/QBQJn/

答案 1 :(得分:1)

以下是一种方法:http://jsfiddle.net/thirtydot/Wec5h/

<强> HTML:

<div id="l">
    <div id="v"></div><div id="h"></div>
</div>

<强> CSS:

#l {
    padding: 20px;
    border: 1px solid red;
    float: left;
}
#v, #h {
    -moz-box-shadow: 0 0 5px #80abc6;
    -webkit-box-shadow: 0 0 5px #80abc6;
    box-shadow: 0 0 5px #80abc6;
    display: inline-block;
    vertical-align: bottom;
    position: relative;
}
#v {
    width: 48px;
    height: 192px;
}
#h {
    width: 96px;
    height: 48px;
}
#v:after {
    content: '';
    position: absolute;
    z-index: 1;
    left: 0;
    right: 0;
    bottom: 38px;
    left: 0;
    height: 20px;
    background: #fff;
}
#h:after {
    content: '';
    position: absolute;
    top: 0;
    bottom: 0;
    left: -10px;
    width: 20px;
    background: #fff;
}

答案 2 :(得分:1)

你可以用css:after属性来做。像这样:

div{
    width:100px;
    height:30px;
    -moz-box-shadow: 0 -1px 15px #80abc6;
    -webkit-box-shadow: 0 -1px 15px #80abc6;
    box-shadow: 0 -1px 15px #80abc6;
    margin:30px;
    position:relative;
}
div:after{
    content:'';
    width:10px;
    height:100%;
    background:#fff;
    position:absolute;
    top:0;
    left:-10px;
}

选中此http://jsfiddle.net/QBQJn/1/