webForumDet fria alternativet

Det blir lite fel när jag har annan hover-bakgrund på en rad med en länk

HTML & CSS

5 svar · 287 visningar · startad av Tjock-Erik

Medlem sedan nov. 2002102 inlägg
Frågan#1

Jag har en meny som är skapad med en div. I den finns ungefär tio rader med en länk på varje. Jag hade tänkt att när jag håller musen över raden med en länk så ska hela bakgrunden färgas i en ny färg.

Så blir det, men hela raden med länken tolkas som en länk i stället för bara texten.

diven heter vmeny. Så här ser CSS-koden ut: När jag tar bort display:block från #vmeny a:link räknas inte hela raden som en länk, men då måste jag föra musen över själva länken, inte bara över raden, för att bakgrundsfärgen ska bytas.

#vmeny a:link {
background-color: #EBE6E0;
padding-top: 3px;
padding-right: 5px;
padding-bottom: 3px;
padding-left: 5px;
border: 0px;
display: block;
color: #000000;
text-decoration: none;

}
#vmeny a:visited {
padding-top: 3px;
padding-right: 5px;
padding-bottom: 3px;
padding-left: 5px;
border: 0px;
display: block;
color: #000000;
text-decoration: none;

}
#vmeny a:hover {
background-color: #EBE6E0;
padding: 0px;
border-top-width: 3px;
border-right-width: 5px;
border-bottom-width: 3px;
border-left-width: 5px;
border-top-style: solid;
border-right-style: solid;
border-bottom-style: solid;
border-left-style: solid;
border-top-color: #EBE6E0;
border-right-color: #EBE6E0;
border-bottom-color: #EBE6E0;
border-left-color: #EBE6E0;
display: block;
color: #000000;
text-decoration: none;

}
#vmeny a:active {
padding-top: 3px;
padding-right: 5px;
padding-bottom: 3px;
padding-left: 5px;
border: 0px;
display: block;
color: #000000;
text-decoration: none;

Medlem sedan dec. 20025 871 inlägg
#2

Kan du inte lösa det med onmouseover i stället? Blir lite förvirrad när du säger rad. Använder du en tabell?

Medlem sedan nov. 2002102 inlägg
#3

Hur fungerar inmouseover? Jag använder inte tabeller.

Medlem sedan dec. 20025 871 inlägg
#4

det är en javascript-funktion... testa med detta

<script type="text/javascript">
<!--
function bytbg(lager,farg){
  if(document.all){
    document.all(lager).style.backgroundColor=farg;
  }
}
// -->
</script>
<div id="lager1" onmouseover="bytbg('lager1','#666666')" onmouseout="bytbg('lager1','#FFFFFF')">Hej hej!</div>

Eftersom du har flera rader (div?) så är det nog bäst att vi använder en function.

Medlem sedan juli 20013 378 inlägg
#5

Hmm...

Tyvärr fungerar följande teknik inte i "Dinosaurien" MSIE (som ju inte stödjer CSS2) - men annars hade du kunnat använda följande, i mitt tycke ganska eleganta, princip för att få till det du vill utan att använda javascript:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="sv" lang="sv">
<head>
  <title>Meny med CSS2</title>
<style type="text/css">
<!--
#meny {
  width:200px;
  border:1px solid silver;
  color:silver;
  background-color: navy;
}

#meny a,
#meny div {
  background-color:gray;
  color:white;
  text-decoration:none;
}

#meny a:hover,
#meny div:hover,
#meny div:hover a {
/* cursor: pointer; kan man ta med här också om man vill ha "fingret" på hela raden */ 
  background-color:silver;
  color:white;
}

/* underline bara vid hover över själva länken */
#meny a:hover {  text-decoration:underline; }
-->
</style>  
</head>
<body>
<div id="meny">
  CSS2-version
  <div><a href="#">Ett</a></div>
  <div><a href="#">Två</a></div>
  <div><a href="#">Tre</a></div>
  <div><a href="#">Fyra</a></div>
</div>
</body>
</html>

Testa i Mozilla eller Opera så får du se ;)
Det enda som inte funkar i MSIE6 är just detta att raderna byter färg när man för markören över dem (färgen byts i MSIE bara när man "hovrar" över själva länken)

/red: Rättat stavfel ;)

Medlem sedan juni 2003771 inlägg
#6

Har lekt ihop lite kod här, kanske kan va nåt?

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <title>Menyförslag</title>
<style type="text/css">
<!--

a:link, a:visited 
{ font-family: tahoma,verdana; font-size:14px; font-weight:bold; color:blue; text-decoration:none;}

a:active
{font-family: tahoma,verdana; color:green; font-size: 14px;text-decoration: underline;}

a:hover 
{font-family: tahoma,verdana; color:red; font-size: 14px;text-decoration: underline;}

#meny 
{position:absolute; top:25px; left:25px; width:20%; background-color:lightblue; 
border:1px solid black; padding:5px;
}

-->
</style>  
</head>
<body>
<div id="meny">
  <a href="http://webforum.nu/" onclick="return false;">
    <span onclick="location.href='http://webforum.nu/';">Ett</span><BR>
  </a>
  <a href="http://webforum.nu/" onclick="return false;">
    <span onclick="location.href='http://webforum.nu/';">Två</span><BR>
  </a>
  <a href="http://webforum.nu/" onclick="return false;">
    <span onclick="location.href='http://webforum.nu/';">Tre</span><BR>
  </a>
  <a href="http://webforum.nu/" onclick="return false;">
    <span onclick="location.href='http://webforum.nu/';">Fyra</span>
  </a>
</div>
<BR><BR><BR><BR><BR>

Svårt med Div. Lättare då med en tabell enl. nedan. <BR>
Ska du ha en div så gissar jag att du får lägga flera div i en div.
<BR><BR><BR>
<table width=50% height=50% bgcolor=lightgreen>
<tr> 
<td  onMouseOver="this.style.backgroundColor='lightgreen';" onMouseOut="this.style.backgroundColor='lightblue';"> 
<a href="http://webforum.nu/" onclick="return false;">
    <span onclick="location.href='http://webforum.nu/';">Ett</span><BR>
  </a></td> 
</tr>
<tr>
<td  onMouseOver="this.style.backgroundColor='lightblue'; this.style.borderStyle='solid'; this.style.borderWidth='3px'; 
this.style.borderColor='black';" onMouseOut="this.style.backgroundColor='gray'; this.style.borderStyle='solid'"> 
<a href="http://webforum.nu/" onclick="return false;">
    <span onclick="location.href='http://webforum.nu/';">Två</span><BR>
  </a></td> 
</tr>
<tr> 
<td  onMouseOver="this.style.backgroundColor='lightgreen';" onMouseOut="this.style.backgroundColor='yellow';"> 
<a href="http://webforum.nu/" onclick="return false;">
    <span onclick="location.href='http://webforum.nu/';">Tre</span><BR>
  </a></td> 
</tr>
<tr>
<td  onMouseOver="this.style.backgroundColor='lightblue'; this.style.borderStyle='solid'; this.style.borderWidth='3px'; 
this.style.borderColor='black';" onMouseOut="this.style.backgroundColor='silver'; this.style.borderStyle='solid'"> 
<a href="http://webforum.nu/" onclick="return false;">
    <span onclick="location.href='http://webforum.nu/';">Fyra</span>
  </a></td> 
</tr>
</table>
<BR>
För bara pekaren över tabellens rader <BR>
Senast besökta länk blir grön
</body>
</html>
254 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
120 ms — deklarationer (db)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)
122 ms — ändringar (db)