Vad gör jag för fel? HMTL/CSS

Permalänk
Medlem

Vad gör jag för fel? HMTL/CSS

Hej, håller på och försöker göra en meny inte helt olikt den som finns här på Sweclockers, dvs tabbar med sliding-doors effekt. Men jag kan inte få det att fungera. Problemet som jag har är att när jag klickar på en av tabbarna så byts bilderna precis i klick stunden men sen återgår dem på direkten till de första bilderna, jag vill att dem nya bilderna ska stanna för att sedan återgå till dem första bilderna när man byter tabb. Hittills har jag bara använt mig av HTML och CSS men det här kanske är ett jobb för ett JavaScript?

Min HTML och CSS ser ut så här:

<!DOCTYPE html /> <html> <head> <title>Min Sida</title> <link href="../Stylesheet/StyleSheet2.css" rel="stylesheet" type="text/css" /> </head> <body> <div id="header"> <ul> <li><a href="#" title="Link 1"><span>Main</span></a></li> <li><a href="#" title="Link 2"><span>Projects</span></a></li> <li><a href="#" title="Link 3"><span>Contact</span></a></li> </ul> </div> </body> </html>

body { background:#fff; margin:0; padding:0; color:#000; font:x-small/1.5em Georgia,Serif; voice-family: "\"}\""; voice-family:inherit; font-size:small; } html>body {font-size:small;} #header { float:left; width:100%; font-size:93%; line-height:normal; } #header ul { margin:0; padding:10px 10px 0; list-style:none; } #header li { float:left; background:url("../images/norm_left.gif") no-repeat left top; margin:0; padding:0 0 0 9px; } #header a { float:left; display:block; background:url("../images/norm_right.gif") no-repeat right top; padding:5px 15px 4px 6px; text-decoration:none; font-weight:bold; color:#765; } #header a:hover { color:#333; } #header a:active { background-image:url("../images/norm_right_on.gif"); color:#333; padding-bottom:5px; } #header li:active { background-image:url("../images/norm_left_on.gif"); }

Permalänk
Medlem

Detta går att lösa utan javascript, med den brasklapp att en sidomladdning ingår. Vanligtvis används en css-klass för att markera vilket menyval som är aktivt

CSS: .current { background:#fa0; } HTML: <ul> <li><a href="sida1.html">Sida 1</a></li> <li class="current"><a href="sida2.html">Sida 2</a></li> <li>Sida 3<a href="sida3.html">Sida 3</a></li> </ul>

På sida1.html har du gett det första li-elementet klass "current", och så vidare.

Ps. Din doctype är skev. Ta bort trailing slash annars finns det risk att den inte fungerar.

Visa signatur

Kom-pa-TI-bilitet

Permalänk
Medlem

Precis, "#header a:active" innebär inte att det är den aktiva länken, alltså sidan som man är inne på för stunden, utan den är aktiv endast de ögonblick man klickar på den.

Permalänk
Medlem

Precis som Amöban skriver så är a:active AKTIV den tiden som den nya sidan laddas. Alltså ganska onödig grej enligt min mening.
Både estetiskt och funktionsmässigt

Du måste ha något som visar vad som är nuvarande sida.

Du kan lära dig en hel del här:
http://www.webdesignskolan.com/css-meny/css_meny.php

Visa signatur

Köp ny mus för 800:- JA, du kommer bli GRYM på cs och sätta huvudskott hela tiden. Du får heller ALDRIG ont i leder.
Eller är det bara så att e-pen*** förlängs om du har en dyrare mus?

Permalänk
Medlem
Skrivet av zillio:

Precis som Amöban skriver så är a:active AKTIV den tiden som den nya sidan laddas. Alltså ganska onödig grej enligt min mening.
Både estetiskt och funktionsmässigt

Du måste ha något som visar vad som är nuvarande sida.

Du kan lära dig en hel del här:
http://www.webdesignskolan.com/css-meny/css_meny.php

Jag rekommenderar nästan vad som helst förutom webdesignskolan och w3schools. Det borde nästan läggas en sticky om detta då just dessa två sidor nämns i var och varannan tråd trots att de bevisligen lär ut gamla och ibland felaktiga tekniker.

Skickades från m.sweclockers.com

Visa signatur

Kom-pa-TI-bilitet

Permalänk
Medlem

Tack för svaren, löste det med hjälp av denna guide: http://hicksdesign.co.uk/journal/highlighting-current-page-wi...

Dock fick det mig att fundera, Om man vill öppna en sida i sidan man står i hur gör man det på bästa sätt? Jag vill alltså att menyn ska hållas separat så att när jag klickar på nått i meny så laddas det typ längre ner på sidan i nått fönster. Läste nånstans att man kunde använda <iframe> för det, men jag vet inte hur pass aktuellt det sättet är längre?

Permalänk
Medlem
Skrivet av DOC.:

Tack för svaren, löste det med hjälp av denna guide: http://hicksdesign.co.uk/journal/highlighting-current-page-wi...

Dock fick det mig att fundera, Om man vill öppna en sida i sidan man står i hur gör man det på bästa sätt? Jag vill alltså att menyn ska hållas separat så att när jag klickar på nått i meny så laddas det typ längre ner på sidan i nått fönster. Läste nånstans att man kunde använda <iframe> för det, men jag vet inte hur pass aktuellt det sättet är längre?

Iframe är en enkel och snabb lösning, men det blir ofta inte optimalt. Din meny kommer inte fungera som normalt (eftersom du aldrig lämnar huvudsidan), besökare kommer inte kunna lägga ett bokmärke till en specifik sida (eftersom innehållet ligger i en annan sida som hämtas in genom iframen), och iframes är sega att styla med CSS eftersom de inte riktigt följer samma regler som normala block-element.

Ett modernare alternativ är att använda javascript och en teknik som kallas AJAX (Asynchronous Javascript And Xml) för att fylla sidan med information. Det är inte lika enkelt och lider av snarlika problem som iframe-lösningen när det kommer till bokmärken, men är åtminstone lättare att styla och spar därtill bandbredd genom att bara ladda den del av sidan som är intressant.

Det är inget fel på att ladda om hela sidan så vida man inte skickar tonvis med data. Sweclockers gör det, de flesta webbaffärer gör det, osv. Det är helt enkelt den enklaste och samtidigt stabilaste lösningen.

Visa signatur

Kom-pa-TI-bilitet

Permalänk
Medlem

tack för det snabba svaret