webForumDet fria alternativet

height:expression

16 svar · 721 visningar · startad av Web-Tor

Web-TorMedlem sedan nov. 200013 890 inlägg
#1

Jag försöker att sätta höjden på ett element genom att använda expression.
Det jag vill göra är att tilldela elementet samma höjd som ett annat element + 30px.

style="height:expression(document.getElementById('search_2').scrollHeight+30);

Problemet är att IE hänger sig så fort jag laddar sidan. Tar jag bort +30 så funkar det. :q

martinMedlem sedan apr. 2000313 inlägg
#2

Funkar det om du lägger till px?

style="height:expression((document.getElementById('search_2').scrollHeight+30)+'px');"

/ m a r t i n

Web-TorMedlem sedan nov. 200013 890 inlägg
#3

Det spelade inte någon roll om jag lade till px.

Detta är smått sjukt! Om jag tar -30 istället så hänger sig inte IE?! Fast resultatet blir ju fel. :(

martinMedlem sedan apr. 2000313 inlägg
#4

konstigt. kan det hjälpa med margin-bottom:-30px i stället?
...eller kanske inte förresten. Vad vill du uppnå? Det verkar som du försöker göra skrollhöjden större än den är. Det kan vara det som är problem, för om den puttar ut scrollhöjden så den blir 30px större, försöker expression antagligen göra den 30 px större igen och det blir en oändlig loop av det hela. Kan det vara så?

/ m a r t i n

Web-TorMedlem sedan nov. 200013 890 inlägg
#5

martin skrev:

Vad vill du uppnå?

Jag vill helt enkelt kolla höjden på ett element och sedan sätt ett annat element till den höjden (+30px).

martinMedlem sedan apr. 2000313 inlägg
#6

OK, då tror jag att ett vanligt javascript blir bättre än en css-expression, eftersom expression körs hela tiden, vilket gör att det loopar oändligt (i det här fallet) verkar det som - och krashar explorer.

/ m a r t i n

Web-TorMedlem sedan nov. 200013 890 inlägg
#7

Det märkliga är att kör jag +1 så funkar det...
Om det vore en loop så skulle det ju också hänga sig efter en stund.

CheguelinMedlem sedan juli 2003303 inlägg
#8

Kör alert(document.getElementById('search_2').scrollHeight). Kanske är det så att den alertar typ "26px" eller något så att du sätter höjden till "26px30". Annars så kan du väl testa document.getElementById('search_2').offsetHeight.

Web-TorMedlem sedan nov. 200013 890 inlägg
#9

Den alertar "178" och tar jag -30 så blir den 147 pixlar hög. Tar jag +30 så hänger den sig.
Jag använder liknande expressions på andra ställen och där funkar det att plussa på pixlar. offsetHeight funkar inte eftersom det är just scrollHeight som jag är ute efter.

CheguelinMedlem sedan juli 2003303 inlägg
#10

alerta document.getElementById('search_2').scrollHeight + 30 och kolla om du får något konstigt svar :-) Det låter ganska konstigt alltså.

Web-TorMedlem sedan nov. 200013 890 inlägg
#11

Jag har hinnit hem och lämnat koden på jobbet så jag får återkomma med svar på den frågan imorgon. ;)

dectgapMedlem sedan sep. 20021 655 inlägg
#12

Om du försöker dig på

<div id="search_2">

	<div style="height:expression((document.getElementById('search_2').scrollHeight+30)+'px');">
	</div>

</div>

är det, som martin påpekade, ganska naturligt att det blir något galet, eftersom du konstruerar en oändlig loop, där höjden av det inre div-elementet försöker bli minst 30px högre än sin egen höjd.

Om du däremot skriver

<div id="search_2">
</div>

<div style="height:expression((document.getElementById('search_2').scrollHeight+30)+'px');">
</div>

är det konstigt om det inte fungerar, eftersom elementen är oberoende av varandra. När jag prövar detta själv fungerar det utan problem.

Vilket av sätten använder du dig av?

FlashesMedlem sedan jan. 2003282 inlägg
#13

För en som har tittat och tittat, vad är skillnaden på koderna?

CheguelinMedlem sedan juli 2003303 inlägg
#14

Den yttre divens höjd beror på den inre divens höjd och den inre divens höjd beror på den yttre divens höjd.

a = b + 30
b = a, ger att

a = a + 30
b = b + 30

Eller vad man ska säga :-)

FlashesMedlem sedan jan. 2003282 inlägg
#15

Ahhh,
nu såg jag, tack så mycket.

Web-TorMedlem sedan nov. 200013 890 inlägg
#16

dectgap skrev:

Vilket av sätten använder du dig av?

Jag använder en variant av det första exemplet. :(
Men varför funkar det om jag kör +1?

martinMedlem sedan apr. 2000313 inlägg
#17

Web-Tor skrev:

Men varför funkar det om jag kör +1?

Det kanske hamnar innanför någon marginal eller nåt. Eller så är det då IE gör fel (sånt kan hända).

/ m a r t i n

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