webForumDet fria alternativet

display: visibility ger oönskade mellanrum

HTML & CSS

12 svar · 492 visningar · startad av silfver

Medlem sedan apr. 200312 679 inlägg
Frågan#1

Som rubriken förtäljer så får jag hemska glapp mellan mina rubriker. Så här ser min kod ut:

<h3><a href="#" onclick="visa(document.getElementById('categories'))">Kategorier +</a></h3>
<div id="categories" style="visibility: hidden;">
	test
</div>

<h3><a href="#" onclick="visa(document.getElementById('archive'))">Arkiv +</a></h3>
<div id="archive" style="visibility: hidden;">
	test
</div>

Innehållet i div:arna döljs, men de tar fortfarande lika mycket utrymme. Hur kan man lösa det?

Medlem sedan juni 200032 967 inlägg
#2

Använd display:none; och display:block; istället.

Medlem sedan apr. 200312 679 inlägg
#3

@nders skrev:

Använd display:none; och display:block; istället.

Då fungerar inte scriptet jag använder för att visa/dölja. :l

	<script language="JavaScript" type="text/javascript">
	function visa(layer) {
		if(layer.style.visibility=='hidden'){
			layer.style.visibility='visible';
		} else {
			layer.style.visibility='hidden';
		}
	}
	</script>

Jag har prövat att ersätta visibility mot display...

Medlem sedan juni 20003 076 inlägg
#4
<script language="JavaScript" type="text/javascript">
	function visa(layer) {
		if(document.getElementById(layer).style.display=='none'){
			document.getElementById(layer).style.display='block';
		} else {
			document.getElementById(layer).style.display='none';
		}
	}
	</script>

borde göra susen! :)

/red
ops, såg att du redan skickar in document.get... redan i a-taggen så då blir det kaka på kaka!

Medlem sedan juni 200032 967 inlägg
#5

Jag skulle bara ha ändrat visibility='visible' till display='block' och visibility='hidden' till display='none', så borde det fungera.

mvh

Medlem sedan apr. 200312 679 inlägg
#6

doggelito skrev:

<script language="JavaScript" type="text/javascript">
	function visa(layer) {
		if(document.getElementById(layer).style.display=='none'){
			document.getElementById(layer).style.display='block';
		} else {
			document.getElementById(layer).style.display='none';
		}
	}
	</script>

borde göra susen! :)

/red
ops, såg att du redan skickar in document.get... redan i a-taggen så då blir det kaka på kaka!

Din kod borde väl fungera till följande?

<h3><a href="#" onclick="visa(document.getElementById('archive'))">Arkiv +</a></h3>
<div id="archive" style="display: none;">
<p>test</p>
</div>

Men jag lyckas inte...

@nders skrev:

Jag skulle bara ha ändrat visibility='visible' till display='block' och visibility='hidden' till display='none', så borde det fungera.

mvh

Jag prövade med det först. Men det fungerade inte. :(

Medlem sedan juni 200032 967 inlägg
#7

hur ser alltså din kod ut nu?

Medlem sedan apr. 200312 679 inlägg
#8

@nders skrev:

hur ser alltså din kod ut nu?

Precis så som jag skrev i inlägget före dig.

Medlem sedan juni 200032 967 inlägg
#9

Du använder alltså doggelitos funktion med html-koden du visar?
Nej, det fungerar inte. Du använder ju document.getElementById() på båda ställena. Ska du ha med det i funktionen, då ska du inte ha med det i anropet. Skicka i så fall bara namnet på div:en som skall tändas / släckas.

Medlem sedan apr. 200312 679 inlägg
#10

@nders skrev:

Du använder alltså doggelitos funktion med html-koden du visar?
Nej, det fungerar inte. Du använder ju document.getElementById() på båda ställena. Ska du ha med det i funktionen, då ska du inte ha med det i anropet. Skicka i så fall bara namnet på div:en som skall tändas / släckas.

Jag förstår inte riktigt hur du menar. Jag är inte så haj på javascript. :l

Jag prövade att bara ändra så som du skrev tidigare, men det fungerar inte. Hur ska länkarna se ut?

<script language="JavaScript" type="text/javascript">
function visa(layer) {
	if(layer.style.display=='none'){
		layer.style.display='block';
	} else {
		layer.style.display='none';
	}
}
</script>

Ifall jag använder dggelitos kod, hur ska länkarna se ut då?

r/ Jag antog att du menade att jag bara skulle plocka bort dockument... så det ser ut så här:

<a href="#" onclick="visa('archive')">Arkiv +</a>

Men det gjorde ingen skillnad.

Medlem sedan juni 200032 967 inlägg
#11

Om du har ändrat javascriptfunktionen enligt mitt förslag ska du inte ändra länkarna.
Om du har ändrat javascriptfunktionen enligt doggelitos förslag ska du ändra länkarna till så som du skrev i ditt senaste inlägg.

Hur funkar det inte? Får du något javascript-fel?

Medlem sedan apr. 200312 679 inlägg
#12

@nders skrev:

Om du har ändrat javascriptfunktionen enligt mitt förslag ska du inte ändra länkarna.
Om du har ändrat javascriptfunktionen enligt doggelitos förslag ska du ändra länkarna till så som du skrev i ditt senaste inlägg.

Hur funkar det inte? Får du något javascript-fel?

Okay. Nu har jag ändrat scriptet så att det blev så som du ville ha det. Länkarna ser ut som i mitt första inlägg. Men det fungerar inte ändå. Jag har kollat felkonsolen i Firefox men den visar ingenting.

Fungerar det för dig ifall du testar?

Medlem sedan apr. 200312 679 inlägg
#13

Nu löste det sig. Tog bort allt och började om. Jag tror det var scriptet som sparade en kaka som rörde till det. :) Tack för ditt tålamod!

263 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
127 ms — deklarationer (db)
0 ms — hämta statistik (cache)
134 ms — hämta tråd, inlägg och bilagor (db)
126 ms — ändringar (db)