(x)HTML/CSS - Bild som bakgrund vid mus över knapp

Permalänk
Medlem

(x)HTML/CSS - Bild som bakgrund vid mus över knapp

Jag har en simpel meny gjord med följande (x)HTML-kod:

<ul id="navbar"> <li><a class="rightborder" href="index.html"> Home </a></li> <li><a class="rightborder" href="donate.html"> Donate </a></li> <li><a class="rightborder" href="about.html"> About Us </a></li> <li><a href="contact.html"> Contact Us </a></li> </ul>

och CSS-kod:

#navbar {width:947px; padding:0px; margin:0px;} #navbar li {display:inline;} #navbar a {width:235.75px; height:40px; float:left; padding:0px; text-align:center; text-decoration:none; background-color:#485e49; color:#FFFFFF; line-height:240%;} .rightborder {border-right:1px solid #FFFFFF;}

Resultat:

Nu till frågan: Hur gör jag så att när man tar musen över en knapp så får knappen i fråga en bakgrundsbild? Försökte med följande:

#navbar a:hover {background-image:url(knapp.jpg)}

Men det funkade inte, inget hände när musen gick över knappen, någon som vet hur man gör? Ni är också välkomna att påpeka i fall att jag gjort något onödigt/dumt i min CSS-kod, försöker lära mig.

Permalänk

Lite fel:
#navbar a:hover {background-image:url('knapp.jpg');}

och den ska funka om knapp.jpg ligger i samma mapp som css-filen.

Permalänk
Medlem
Skrivet av Cloudburst:

Lite fel:
#navbar a:hover {background-image:url('knapp.jpg');}

och den ska funka om knapp.jpg ligger i samma mapp som css-filen.

Har provat med fnuttar också, var inte säker på om det skulle vara med eller utan, men det funkar ändå inte. Jag till och med copy paste:ade raden med kod du skrev, men det händer fortfarande inget när jag håller musen över knappen.

Permalänk
Inaktiv

Quotes ska du inte behöva. Säker på att bilden finns? Du har inte råkat spara den som jpeg eller JPG (söknamnet är versal känsligt) kanske?

Permalänk
Medlem
Skrivet av Murloc:

Jag har en simpel meny gjord med följande (x)HTML-kod:

<ul id="navbar"> <li><a class="rightborder" href="index.html"> Home </a></li> <li><a class="rightborder" href="donate.html"> Donate </a></li> <li><a class="rightborder" href="about.html"> About Us </a></li> <li><a href="contact.html"> Contact Us </a></li> </ul>

och CSS-kod:

#navbar {width:947px; padding:0px; margin:0px;} #navbar li {display:inline;} #navbar a {width:235.75px; height:40px; float:left; padding:0px; text-align:center; text-decoration:none; background-color:#485e49; color:#FFFFFF; line-height:240%;} .rightborder {border-right:1px solid #FFFFFF;}

Resultat:
http://forumbilder.se/images/3d820111044493199.jpg

Nu till frågan: Hur gör jag så att när man tar musen över en knapp så får knappen i fråga en bakgrundsbild? Försökte med följande:

#navbar a:hover {background-image:url(knapp.jpg)}

Men det funkade inte, inget hände när musen gick över knappen, någon som vet hur man gör? Ni är också välkomna att påpeka i fall att jag gjort något onödigt/dumt i min CSS-kod, försöker lära mig.

Lutar mot att den inte hittar bilden då koden bör fungera.

EDIT. Ett litet tips. Sätt "border-right:1px solid #FFFFFF;" under #navbar a{} istället för att skapa en klass på alla länkar. Sedan kan du även förkorta #ffffff till #fff.

Visa signatur

Jobbar som webbutvecklare. Behärskar Photoshop, HTML(5), CSS(3), JavaScript(jQuery), PHP och MySQL. Novis på C++, Java och C#.

Permalänk
Medlem

På den här bilden kan ni se att allt är som det ska, bilden ligger i rätt mapp och är rätt filtyp. Är det bara CSS som hatar mig?

Skrivet av viström:

EDIT. Ett litet tips. Sätt "border-right:1px solid #FFFFFF;" under #navbar a{} istället för att skapa en klass på alla länkar. Sedan kan du även förkorta #ffffff till #fff.

Klassens syfte var att göra så att jag kunde skapa en border på alla knappar förutom den längst till höger.

Permalänk
Inaktiv

Testa att bara använda background:url(knapp.jpg); Ett tips kan vara att använda dig av något sorts utvecklar plugin till din webbläsare. Firefox har Firebug som är underbart. Tror Chrome har något inbyggt också (F12).

Sen borde du ha border-right: 1px solid #fff#navbar a och sen skapa en klass som tar bort den på den sista.

Permalänk
Medlem
Skrivet av Murloc:

http://forumbilder.se/thumbs/b282011115824c409.jpg

På den här bilden kan ni se att allt är som det ska, bilden ligger i rätt mapp och är rätt filtyp. Är det bara CSS som hatar mig?

Klassens syfte var att göra så att jag kunde skapa en border på alla knappar förutom den längst till höger.

Då kan du använda pseudo-klassen last-child för att ändra bordern på den längst till höger.
#navbar li:last-child{
border: none;
}

Så slipper du extra markup.

Här är ett exempel: http://d2o0t5hpnwv4c1.cloudfront.net/840_cssSelectors/selectors/firstChild.html

Tillbaka till Topic så är det väldigt konstigt att det inte fungerar. Visst, det kanske inte är det mest optimala sättet att skriva det på men det borde helt klart funka ändå.

Visa signatur

Jobbar som webbutvecklare. Behärskar Photoshop, HTML(5), CSS(3), JavaScript(jQuery), PHP och MySQL. Novis på C++, Java och C#.

Permalänk
Medlem

<ul id="navbar">
<li><a class="rightborder" href="index.html"> Home </a></li>
<li><a class="rightborder" href="donate.html"> Donate </a></li>
<li><a class="rightborder" href="about.html"> About Us </a></li>
<li><a href="contact.html"> Contact Us </a></li>
</ul>

Kan man verkligen skriva så, ser skumt ut?

Såhär tänker jag i html:
<div id="nav">
<ul>
<li>xxxxxx</li>
</ul>
</div>

Var ett tag sen jag pysslade med det hela, så därför frågar jag, plus att det är lite för sent med tankeverksamheten.

Tänkte också på det, med block element. Skall inte href vara före class.

Permalänk
Inaktiv
Skrivet av buddaz:

<ul id="navbar">
<li><a class="rightborder" href="index.html"> Home </a></li>
<li><a class="rightborder" href="donate.html"> Donate </a></li>
<li><a class="rightborder" href="about.html"> About Us </a></li>
<li><a href="contact.html"> Contact Us </a></li>
</ul>

Kan man verkligen skriva så, ser skumt ut.

Varför skulle man inte kunna det? Finns inget skumt med det.

Permalänk
Medlem
Skrivet av anon150287:

Varför skulle man inte kunna det? Finns inget skumt med det.

Skrivet av buddaz:

<ul id="navbar">
<li><a class="rightborder" href="index.html"> Home </a></li>
<li><a class="rightborder" href="donate.html"> Donate </a></li>
<li><a class="rightborder" href="about.html"> About Us </a></li>
<li><a href="contact.html"> Contact Us </a></li>
</ul>

Kan man verkligen skriva så, ser skumt ut.

Allt där ser bra ut förutom att href bör vara före class. Men det bör fortfarande funka.

Visa signatur

Jobbar som webbutvecklare. Behärskar Photoshop, HTML(5), CSS(3), JavaScript(jQuery), PHP och MySQL. Novis på C++, Java och C#.

Permalänk
Medlem
Skrivet av viström:

Allt där ser bra ut förutom att href bör vara före class. Men det bör fortfarande funka.

Whut, varför då?

TS, din CSS är bonkers. Om det är något som ska ha float:left så är det dina li:s. A ska ha display:block och ska vara utan float:left. Alltså:

#navbar li {float:left;} #navbar a {width:235.75px; padding:0px; text-align:center; text-decoration:none; background-color:#485e49; color:#FFFFFF; line-height:240%;}

Visa signatur

Kom-pa-TI-bilitet

Permalänk
Medlem
Skrivet av viström:

Då kan du använda pseudo-klassen last-child för att ändra bordern på den längst till höger.
#navbar li:last-child{
border: none;
}

Så slipper du extra markup.

Har faktiskt provat exakt det som du säger, men det funkade inte, border:n var fortfarande där på den längst till höger. Mycket som är skumt med min hemsida verkar det som XD

Skrivet av anon150287:

Testa att bara använda background:url(knapp.jpg); Ett tips kan vara att använda dig av något sorts utvecklar plugin till din webbläsare. Firefox har Firebug som är underbart. Tror Chrome har något inbyggt också (F12).

Sen borde du ha border-right: 1px solid #fff#navbar a och sen skapa en klass som tar bort den på den sista.

Testade att använda background:url(knapp.jpg); och då försvann bakgrunden helt när jag la musen över knappen, men det hände i alla fall något.

Att skapa en klass som tar bort border på den sista funkar inte för mig, med det är väl i princip samma sak som att använda pseudo-elementet last-child och det funkar inte heller.

Skrivet av Teknocide:

TS, din CSS är bonkers. Om det är något som ska ha float:left så är det dina li:s. A ska ha display:block och ska vara utan float:left.

Inte så förvånande, började lära mig (x)HTML/CSS för drygt två veckor sedan. Det är bra att du pekar ut mina misstag.

--------------------------------------------------------------------------------------------------------------------------------

Det är alltså ingen som kan se vad som är fel här? Något måste ju vara fel...

Permalänk
Medlem

Ett litet tips, innan hjärnan slutar fungera, för kvällen. Validera koden, då kan du se om det finns något fel, du kanske har missat något litet, säkert en del som kommer höja på ögonbrynen. Underlättar fel sökandet.

Här kommer en länk
http://validator.w3.org/ för html
http://jigsaw.w3.org/css-validator/ för css

Permalänk
Medlem

du kan inte skapa länkar med en "class" på?

<a href=blabla class="navbar" >

css:
a:link.navbar{
background-image (bild)

sedan när man hovrar
a:hover.navbar{
background-image

Visa signatur

Gaming: Asus 3080 Ti + 5900X
Proxmox: Intel NUC,i7-8559U + i5-8259U 32GB Ram
Rojter: UCG-Ultra, WAN 1000/1000

Permalänk
Medlem
Permalänk
Inaktiv

Här är min implementation, som funkar med :last-child och med background-image: http://jsfiddle.net/dsHBK/

Permalänk
Medlem
Skrivet av Murloc:

Inte så förvånande, började lära mig (x)HTML/CSS för drygt två veckor sedan. Det är bra att du pekar ut mina misstag.

--------------------------------------------------------------------------------------------------------------------------------

Det är alltså ingen som kan se vad som är fel här? Något måste ju vara fel...

Ja men testade du att ändra det jag påpekade på då? Jag skrev det inte bara för att vara en besserwisser, vet du..

Visa signatur

Kom-pa-TI-bilitet

Permalänk
Medlem
Skrivet av Teknocide:

Ja men testade du att ändra det jag påpekade på då? Jag skrev det inte bara för att vara en besserwisser, vet du..

Ja, det gjorde jag. Koden kanske blev bättre, men den vill fortfarande inte visa bilden. Tog det inte som att du var besserwisser, jag bad ju till och med om att ni skulle säga till om något i koden såg konstigt ut!

-----------------------------------------------------------------------------------------------------

Nu tror jag faktiskt att jag hittat boven! Det var min trial-version av photoshop CS5.1 extended (64-bit). Knappen var gjort på 30 sec och var bara ett test för att se om det skulle funka, så jag rörde aldrig bilden efter att jag skapat den i PS, därför upptäckte jag inte detta tidigare. Men nu när jag försökte öppna den igen i PS får jag det här meddelandet:

Samma sak i Paint:

Provade att göra en ny .jpg knapp i PS, men det blir samma error. Sen provade jag med att göra .png och .psd knappar i PS istället, men det funkade inte och jag fick följande error när jag försöker öppna de:

Som sista utväg skapade jag en knapp i Paint och då funkade det!

Jag hade faktiskt ingen aning om att mitt PS skapade korrupta bilder, hade precis laddad ner det och knappen var det första jag gjorde. Ledsen att jag tog eran tid för ett problem som inte ens hade någonting med (x)HTML/CSS att göra.