2016-07-19 32 views
0

Ich bin sehr neu in HTML und CSS und dies ist kein Projekt, sondern ich entdecke Dinge auf eigene Faust. Ich versuche, eine Navigationsleiste mit Listen (ul, li) zu erstellen und wollte ein Suchsymbol und Benutzer anmelden Symbol zusammen mit dem anderen Text in der Navigationsleiste. Das ist mein HTML:.png als Hintergrundbilder auf der Navigationsleiste

<div class="nav"> 
    <ul> 
     <div class="navBarIcons"> 
      <li class="searchIco"><a href="">search</a></li> 
      <li class="userIco"><a href="">user</a></li> 
     </div> 
     <li><a href="">OVERCLOCKING</a></li> 
     <li><a href="">PERIPHERALS</a></li> 
     <li><a href="">STORAGE</a></li> 
     <li><a href="">POWER SUPPLY</a></li> 
     <li><a href="">GRAPHIC CARDS</a></li> 
     <li><a href="">MEMORY</a></li> 
     <li><a href="">MOTHERBOARDS</a></li> 
     <li><a href="index.html">PROCESSOR</a></li> 
    </ul> 
</div> 

und das ist mein CSS:

.userIco {  
    background-image: url(userIco.png);  
    background-repeat: no-repeat;  
    background-size: 25px;  
    background-position: center;  
} 

.searchIco {  
    background-image: url(searchIco.png);  
    background-repeat: no-repeat;  
    background-size: 25px;  
    background-position: center;  
} 

.nav li a:hover {  
    background-color: #195ca1;   
    color: #f2f2f2;   
} 

Was ich tun möchte, ist auf die Symbole zu schweben und es wäre immer noch da sein (wie Sie in der sehen Bildschirm Kappe verschwindet es, wenn ich schweben)

Screencap

wenn ich den Text zu entfernen es werden wont richtig ausgerichtet und wenn ich es schweben nicht den ganzen Block des bac nicht decken kground

enter image description here

+0

Pflege, um Ihre: Hover CSS zu posten? Obwohl aus dem screengrab was wahrscheinlich passieren wird, haben Sie 'background: color' gesetzt, welches alle Hintergründe auf nur die Farbe zurücksetzt. Wenn dies der Fall ist, ist es das Ziel, nur die Farbe neu zu definieren, so dass nichts anderes verändert wird, wie in 'background-color: color' – Forty

+2

Divs sind nicht erlaubt als Kinder eines' ul' ... Es ist ungültiges HTML. Gleichermaßen kann "li" keine Kinder von etwas anderem als einer "ul" sein. –

+1

@Forty Ich habe den CSS-Code –

Antwort

0

Ihre background-image wird in das <li> Element, aber Ihre background-color ist auf Ihre <a>, so dass es auf einer oberen Schicht ist als die <li>. Sie sollten stattdessen background-color auf li:hover setzen, oder verschieben Sie Ihren background-image auf das Element <a>. Das Bild muss sich auf derselben oder einer höheren Ebene als die Hintergrundfarbe befinden.

+0

hinzugefügt Diese '. Nav li: Hover { \t Hintergrundfarbe: # 195ca1; \t Farbe: # f2f2f2; } schien es zu beheben, aber der Text ist immer noch da, und wenn ich den Text entferne, wird die Positionierung falsch. Das ist, worüber ich spreche: http://oi68.tinypic.com/2m7vpqa.jpg –

+0

Wie hast du versucht, den Text zu entfernen? Ich denke, du könntest es dort behalten (immer noch nützlich für Screenreader) und es auf "font-size: 0" oder "color: transparent" setzen. Wenn Sie die Schriftgröße auf Null setzen oder den Text entfernen, wird der hinzugefügte Bereich entfernt. Daher müssen Sie möglicherweise eine Breite zu a oder li hinzufügen, je nachdem, wie der Rest des Codes eingerichtet ist. – Forty

+1

okay, ich habe es behoben, du hast mir die Idee gegeben. Ich habe die '.searchIco a {Opazität: 0; } Dann war alles behoben. Vielen Dank! –