按钮闪耀/发光与CSS3

时间:2011-01-17 01:07:50

标签: css css3

我有一个导航菜单,我试图仅使用CSS3和HTML重新创建。该设计要求根据附加图片上的“主页”按钮在当前所选菜单按钮上发光/发光。只使用代码可以实现这种效果还是需要使用发光图像?! alt text

请注意,在按钮中心最明显的是光线和白线,然后向边缘逐渐消失。

4 个答案:

答案 0 :(得分:4)

CSS3的radial gradients可以让您获得类似的效果,尽管使用CSS背景图像可能更容易进行像素完美调整。具体来说,CSS3的渐变是线性的,甚至是径向渐变。

我使用Firefox的径向渐变构建了一个小例子(对Webkit的支持需要完全不同的代码):http://jsfiddle.net/rxMf6/

Example of button with radial gradient

<强> HTML:

<div class="highlighted-button">
    <div class="highlight"></div>
    Button
</div>

<强> CSS:

.highlighted-button {
    background: #000;
    color: #fff;
    font: bold 0.8em Arial, sans-serif;
    padding-bottom: 0.9em;
    text-align: center;
    text-transform: uppercase;
    width: 8em;
}

.highlight {
    background: -moz-radial-gradient(center top, ellipse farthest-side,
                                     #fff 0%, #000 100%);
    height: 0.5em;
    margin-bottom: 0.4em;
}

答案 1 :(得分:0)

您需要一张图片。只有代码才能实现这种效果。虽然大多数浏览器都可以使用CSS3 box-shadow或渐变来处理,但Internet Explorer 8和部分IE 9会有问题。要提供适当的跨浏览器支持,您必须使用图像来实现所需的效果。

我说你需要一张图片的原因非常好,可能需要包含额外的标记和hacky变通方法才能达到效果。这是不可取的,并且在尝试实现CSS3版本时可能会引起冲突。

答案 2 :(得分:0)

是的,这可以在css3中闪耀。你可以根据你的要求调整渐变。你我们过滤IE。 我希望这个例子能帮到你。

.menu {
    float: left;
    margin: 10px 10px 10px 0;
    background: #000;
    width: 700px;
}
.menu ul {
    margin: 15px 0 15px 5px;
}
.menu ul li {
    display: inline;
    list-style: none;
    font-size: 12px;
    font-family: arial;
    color: #fff;
    font-weight: normal;
}
.menu ul li:before {
    display: inline;
    content: "/";
}
.menu ul li:first-child:before {
    content: " ";
    height:45px;
}
.menu ul li a {
    margin: 0 15px 0 15px;
    color: #fff;
    text-decoration: none;
    padding:17px 30px 16px 30px;;
}
.menu ul li a:hover {
    border-top:1px solid rgba(255, 255, 255, 0.4);
    text-decoration: underline;
    color: #fff;
    padding:17px 30px 16px 30px;
    background: -moz-radial-gradient(center -5px 45deg, ellipse farthest-corner, rgb(255, 255, 255)0%, rgba(0, 0, 0, 0.2)70%) repeat #000;
    background: -webkit-gradient(radial, 50% 0, 0, 50% 0,50, from(rgba(255, 255, 255, 0.9)), to(#000));

}



    <nav>
                <div class="menu">
                    <ul>
                        <li><a href="#">HOME</a></li>
                        <li><a href="#">WHAT IS THIS?</a></li>
                        <li><a href="#">SWEAR DICTIONARY</a></li>
                    </ul>
                </div>
    </nav>

答案 3 :(得分:-1)

这是一个类似的CSS3渐变。您可以更改颜色并获得所需的外观。我不知道它是否与您想要的完全一样。它不会做直线渐变的圆润外观。

background-image: -webkit-gradient(
linear,
left bottom,
left top,
color-stop(0.32, rgb(14,15,14)),
color-stop(0.7, rgb(0,0,0)),
color-stop(0.85, rgb(201,201,201))
);
background-image: -moz-linear-gradient(
center bottom,
rgb(14,15,14) 32%,
rgb(0,0,0) 70%,
rgb(201,201,201) 85%
);