webForumDet fria alternativet

Bättre lösning? mouseOver på TD

HTML & CSSur HTML, XHTML & CSS

7 svar · 422 visningar · startad av streetrobban

Medlem sedan jan. 20011 140 inlägg
Frågan#1

Hej,

Jag har följande kod på min hemsida för att få liknande funktion som Bredbandsbolaget har på sin vänstra meny. Men jag undrar om det finns enklare sätt att lösa det på än koden jag skrivit?

EDIT: Själva mouseOver funktionen verkar inte funka i IE, utan bara i FF har jag märkt. Det blir liksom ingen hover-effekt i IE.

CSS-koden:

td.min_sida {
	background-image: url(../images/ms_menu_off.gif);
	width: 125;
	height: 30;
}

td.min_sida:hover {
	background-image: url(../images/ms_menu_on.gif);
	width: 125;
	height: 30;
}

td.min_sida:visited {
	background-image: url(../images/ms_menu_off.gif);
	width: 125;
	height: 30;
}

td.min_sida:active {
	background-image: url(../images/ms_menu_on.gif);
	width: 125;
	height: 30;
}

Och HTML-koden:

<table border="0" style="width: 125; background-color: #FFFFFF" cellspacing="0" cellpadding="0">
<tr>
<td style="height: 20">
</td>
</tr>
<tr>
<td style="padding-left: 10" class="min_sida">
<a href="sida.php" class="forumWriter">Menyval 1</a>
</td>
</tr>
<tr>
<td style="height: 2">
</td>
</tr>
<tr>
<td style="padding-left: 10" class="min_sida">
<a href="sida.php" class="forumWriter">Menyval 2</a>
</td>
</tr>
<tr>
<td style="height: 2">
</td>
</tr>
<tr>
<td style="padding-left: 10" class="min_sida">
<a href="sida.php" class="forumWriter">Menyval 3</a>
</td>
</tr>
</table>

Tack :)

Medlem sedan juni 20019 519 inlägg
#2

ja,
först:
Gör om menyn du använder dig av idag till en <ul> lista, ändra om a-elementen till block element i just denna lista där du har din navigering, och använd dig av a elementens :active, :hover osv.

red:
något i stil med:

#left-navigation {
	list-style: none;
	margin: 0;
	padding: 0;
	width: 125px;
	padding-top: 20px;
}
#left-navigation a {
	display:block;
	width: 125px;
	height: 30px;
	background-image: url(../images/ms_menu_off.gif);
	margin-top: 2px;
}

#left-navigation a:hover, #left-navigation a:active {
	background-image: url(../images/ms_menu_on.gif);
}
#left-navigation a:visited {
	background-image: url(../images/ms_menu_off.gif);
}
<ul id="left-navigation">
	<li><a href="sida.php">Menyval 1</a></li>
	<li><a href="sida.php">Menyval 2</a></li>
	<li><a href="sida.php">Menyval 3</a></li>
</ul>
Medlem sedan jan. 20011 140 inlägg
#3

Tack för ett snabbt svar!

Jag testade att göra någon liknande lösning. Men jag fick aldrig texten att ligga rätt i rutan. Nu ligger texten uppe i det vänstra hörnet. Men jag vill att den ska ligga i mitten av rutan, med lite distans från vänsterkanten (typ padding-left: 10). Men använder man padding-left: 10, så hoppar hela rutan och inte bara texten. Förstår du?

Medlem sedan juni 20019 519 inlägg
#4

om du ökar padding så måste du minskar width och höjden (om du kör padding på höjden). och använda sig av line-height + height på typsnittet. behöver nog se hur det är idag för att kunna lösa det perfekt. men det skall gå och ge betydligt mindre kod än vad du använder dig av idag.

text-align: center fungera med och till en viss del vertical-align: middle;

Medlem sedan jan. 20011 140 inlägg
#5

Det funkar bra med line-height: 2; för att få texten med jämt rum mellan taket och golvet. Men jag får inte texten att ligga 10px från vänsterkanten.

EDIT: Det funkade med text-indent: 10px :)

Finns det något kommando som lägger texten i mitten vertikalt? Typ som <center></center> gör horisontellt.

Medlem sedan juni 20019 519 inlägg
#6

vertical-align: middle;

Medlem sedan apr. 200312 679 inlägg
#7

voigtann1 skrev:

vertical-align: middle;

Måste man inte skriva:

display:table-cell; vertical-align:middle;
Medlem sedan juni 20019 519 inlägg
#8

mycket möjligt... använder aldrig vertical-align, kör upp och kompensera det med padding istället ;)

126 ms totalt · 3 externa anrop · v20260731065814-full.4bcf49fe
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
123 ms — hämta tråd, inlägg och bilagor (db)