2011-01-17 6 views
2

Ich habe ein Navigationsmenü, das ich versuche, nur mit CSS3 und HTML neu zu erstellen. Das Design erfordert einen Glanz/Glow auf der aktuell ausgewählten Menü-Taste, wie auf der "home" -Schaltfläche auf dem angehängten Bild. Ist dieser Effekt nur mit Code möglich oder muss ich das Glow Image verwenden ?! Schaltfläche glänzen/glühen mit CSS3

Beachten Sie, dass der Glanz und die weiße Linie in der Mitte des Knopfes am sichtbarsten sind und dann zu den Rändern hin verblassen.

Antwort

4

CSS3 die radial gradients können Sie einen ähnlichen Effekt erzielen, obwohl ein CSS-Hintergrundbild verwenden, kann für pixelgenaue Korrekturen einfacher sein. Insbesondere sind die Gradienten von CSS3 linear, sogar die radialen. http://jsfiddle.net/rxMf6/

Example of button with radial gradient

HTML:

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

CSS

Ich habe ein kleines Beispiel mit Firefox radialen Gradienten (Unterstützung für Webkit erfordert ganz anderen Code) aufgebaut:

.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

danke dafür. Ich war in der Lage, das Aussehen mit Ihrem Code mit ein paar Verbesserungen neu zu erstellen. Scheint wie der Weg zu gehen. – robzolkos

+1

ja, und es funktioniert nur bei einem kleinen Prozentsatz von Browsern !! Bedenken Sie Folgendes: Verwenden Sie ein Bild und es funktioniert in jedem Browser oder verwenden Sie nur Code und die meisten Leute werden denken, dass das Menü Old School aussieht. Sehen Sie meine Lösung unten und vergleichen Sie. – frenchie

0

Sie benötigen ein Bild. Es gibt wirklich keine Möglichkeit, diesen Effekt mit nur Code zu erreichen. Obwohl die meisten Browser mit der Verwendung von CSS3 box-shadow oder Farbverläufen behandelt werden können, wird Internet Explorer 8 und teilweise IE 9 Probleme haben. Um die Unterstützung von Cross-Browsern zu gewährleisten, müssen Sie Bilder verwenden, um den gewünschten Effekt zu erzielen.

Der Grund, warum ich sage, dass Sie ein Bild brauchen, ist sehr gut, muss möglicherweise zusätzliche Markup und Hacky Workarounds enthalten, um den Effekt zu erzielen. Dies ist nicht erwünscht und könnte zu Konflikten bei der Implementierung der CSS3-Version führen.

+1

css3 Gradienten könnte es wahrscheinlich tun. – amosrivera

+0

Du musst ein paar kleinere CSS3 Kampfkünste machen, aber es scheint sehr möglich zu sein. CSS3 ist in der Lage, längliche Gradienten zu erzeugen und radiale Gradientenzentren absolut zu positionieren. Alles was hier notwendig wäre, wäre, auf ein separates Element zu schichten, um auf den radialen Gradienten zu achten (da der lineare Gradient am oberen Ende der Schaltfläche bestehen bleibt). Aber ja, Sie * brauchen * im Bild in dem Sinne, dass es sich nicht lohnt, den Kopfschmerz zu versuchen, zu programmieren, und Browser diesen Gradient wiedergeben lassen. –

+0

@All Nun, Sie würden nicht den Blick über alle Browser bekommen. Ich sehe nicht, warum Sie einigen Benutzern einen schönen Blick geben sollten, während Sie anderen den Schaft geben. Derzeit unterstützen nur zwei Browser CSS3-Verläufe und sie verwenden nicht einmal die CSS3-Spezifikation. –

-1

Hier ist ein ähnlicher CSS3-Gradient. Sie können die Farben ändern und Ihr gewünschtes Aussehen erhalten. Ich weiß nicht, ob es genau so ist, wie du es wolltest. Es sieht nicht gerade aus wie ein gerader Verlauf.

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% 
); 
+0

Dies funktioniert jedoch nur in Firefox- und Webkit-Browsern (Chrome und Safari). – Zak

+1

oh, ich denke du hast recht ... Ich denke Bilder sind der einzige Weg ...Oder vielleicht gibt es eine Möglichkeit, geschachtelte divs farbig zu machen ... wie das, was Google getan hat ... hier http://stopdesign.com/archive/2009/02/04/recreating-the-button.html –

0

Ja, das ist Glanz in css3 möglich. Sie passen Gradient nach Ihrer Anforderung.Sie filtern uns für IE. Ich hoffe, dieses Beispiel hilft dir.

.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> 
+0

danke @sandeep. Nicht ganz die Wirkung, die ich wollte. Aber nah. Die Antwort von @ide oben war dem, was ich suchte, am nächsten. Vielen Dank für Ihre Zeit. – robzolkos