webForumDet fria alternativet

Problem med visibility:hidden;

25 svar · 768 visningar · startad av M.Cheraghi

M.CheraghiMedlem sedan juli 20013 362 inlägg
#1

Hello!

Jag försöker dölja några delar av min tabell. Dock går det bara halvbra, tabellerna syns inte, dock är en yta "reserverad" för den. Hur gör jag för att det inte ska finnas någon yta reserverad för den, när den är osynlig.

Sen undrar jag hur jag kan "anropa" den för att visa den dolda tabellen?
Är det samma princip för att visa/dölja en DIV?
Och hur gör jag för att använda samma link för både visa/dölja.

    <tr style="visibility:hidden;">
    <td colspan="2" style="background-color:#CCCCCC;">Hej hej! :)</td>
  </tr>
    <tr style="visibility:hidden;">
    <td colspan="2" style="height:2px;"></td>
  </tr>

10-4 over and out!

oskobMedlem sedan maj 20021 513 inlägg
#2

Alltså är det javascript du ska göra detta med eller ska det vara serverscript (alltså att sidan får laddas om) ?

M.CheraghiMedlem sedan juli 20013 362 inlägg
#3

oskob skrev:

Alltså är det javascript du ska göra detta med eller ska det vara serverscript (alltså att sidan får laddas om) ?

Det ska vara Klientbaserat! JavaScript eller inte, det kvittar!
Jag trodde det skulle gå att lösa mha CSS.

10-4

nitro2k01Medlem sedan aug. 20037 630 inlägg
#4

display: none vs block

M.CheraghiMedlem sedan juli 20013 362 inlägg
#5

nitro2k01 skrev:

display: none vs block

Det där fungerar utmärkt!
Då återstår bara hur jag anropar via vanlig länk att få den synlig, och kunna använda samma länk för att få den osynlig igen!

nitro2k01Medlem sedan aug. 20037 630 inlägg
#6
onclick="document.getElementById('bla').style.display=(document.getElementById('bla').style.display=='block')?'hidden':'block';"

Denna länk togglar mellan synlig och osynlig. bla är förstås nåt lämpligt id på din tabellcell.

M.CheraghiMedlem sedan juli 20013 362 inlägg
#7

nitro2k01 skrev:

onclick="document.getElementById('bla').style.display=(document.getElementById('bla').style.display=='block')?'hidden':'block';"

Denna länk togglar mellan synlig och osynlig. bla är förstås nåt lämpligt id på din tabellcell.

Jag försökte mig på det!

Men den verkar inte vilja visa tabellen! :(

    <tr id="bla" style="display:none;">
    <td colspan="2" style="background-color:#CCCCCC;">Hej hej! </td>
  </tr>
    <tr id="bla" style="display:none;">
    <td colspan="2" style="height:2px;"></td>
  </tr>
  
  <tr>
  	<td colspan="2" style="height:2px;"></td>
  </tr>
  <tr>
    <td colspan="2" class="content" style="height:20px; background-color:#CCCCCC"><div align="center">Copyright 2005 - <a href="#" onclick="document.getElementById('bla').style.display=(document.getEl  ementById('bla').style.display=='block')?'hidden':'block';">Cookies</a> </div></td>
  </tr>
icaaqMedlem sedan okt. 20004 910 inlägg
#8

nitro2k01 skrev:

display: none vs block

Jag skulle vilja säga display: none vs table-row(för typ alla webbläsare än IE)/block(för IE)

mv icaaq

oskobMedlem sedan maj 20021 513 inlägg
#9

onclick="document.getElementById('bla').style.display=(document.getElementById('bla').style.display=='block')?'hidden':'block';"

ska det väl vara? Det hade krupit in två mellanslag i andra element by id.

R: vad händer om man sätter en table-row till block i andra läsare än ie då?

zcorpanMedlem sedan dec. 20042 269 inlägg
#10
.hidden { display:none; }
icaaqMedlem sedan okt. 20004 910 inlägg
#11

oskob skrev:

... ... R: vad händer om man sätter en table-row till block i andra läsare än ie då?

Det kan bli problem att använda tex. colspan i de celler där den <tr> sätts till display: block;

En tr har som default värde i Geckoläsare(och kanske andra) display:tablerow;
IE har display: block;

mv icaaq

M.CheraghiMedlem sedan juli 20013 362 inlägg
#12

Och hur ska man göra för att få det att fungera i både geckoläsare samt IE?

10-4

icaaqMedlem sedan okt. 20004 910 inlägg
#13

Jag skulle lösa ditt problem genom att sätta en class på tr och byta den classen till en visande class på onclick. Det får du dock kolla med någon annan om hur man ändrar... sedan har du en regel för show i en css för alla läsare.

.show{
display: table-row;
}

och en för IE i ett hack eller i ett Conditional Commented block, typ

<!--[if IE]>
.show{
display: block;
}
<![endif]-->

Typ ;)

mv icaaq

voigtann1Medlem sedan juni 20018 810 inlägg
#14

kan även skrivas:

* html .show{
display.block;
}

i CSS filen för IE hack.

icaaqMedlem sedan okt. 20004 910 inlägg
#15

Vilket dock kan bli ett problem i IE 7
http://blogs.msdn.com/ie/archive/2005/10/12/480242.aspx

mv icaaq

voigtann1Medlem sedan juni 20018 810 inlägg
#16

Men IE 7 kommer väl ha liknande firefox tolkning av CSS om inte jag minns helt fel.

TroxyMedlem sedan mars 20041 508 inlägg
#17

voigtann1, det där lät lite konstigt.
IE7 kommer ha bättre tolkning av CSS som följer uppsatta standarder, vilket Firefox redan gör.

icaaqMedlem sedan okt. 20004 910 inlägg
#18

icaaq skrev:

Vilket dock kan bli ett problem i IE 7
http://blogs.msdn.com/ie/archive/2005/10/12/480242.aspx
mv icaaq

Som jag sa, det kan bli ett problem....

http://blogs.msdn.com/ie/archive/2005/10/12/480242.aspx skrev:

Call to action: Please check your pages

Here is a list of common CSS hacks to look out for (please also consider their variations):

html > body - http://css-discuss.incutio.com/?page=ChildHack
* html - http://css-discuss.incutio.com/?page=StarHtmlHack
head:first-child + body - http://centricle.com/ref/css/filters/tests/owen/
head + body - http://www.dithered.com/css_filters/css_only/head_adjacent_sibling_body.html
body > element - http://css-discuss.incutio.com/?page=ChildHack

We ask that you please update your pages to not use these CSS hacks. If you want to target IE or bypass IE, you can use conditional comments .

mv icaaq

zcorpanMedlem sedan dec. 20042 269 inlägg
#19

Jag vet inte om mitt förra inlägg gav ljus i tunneln eller inte...

Vad webbläsaren har för 'display' på tabellceller per default är inte intressant. Vi använder bara ett klassnamn, "hidden". Därefter byter vi mellan det klassnamnet och inget klassnamn. Varför göra det svårare än det är? :)

icaaqMedlem sedan okt. 20004 910 inlägg
#20

Ok, det var ju en lösning som jag inte tänkt på :)
Men anledningen av att jag gav mitt förslag var att jag för ett tag sedan sprang på det problemet när jag lekte med :target på en tr, och med :target kan jag ju inte ta bort classnamnet, utan då fick jag helt enkelt byta display-värde.

Men som sagt, använd zcorpan´s lösning :) om ni inte använder :target ;)

mv icaaq

Genererad på 383 ms · cache AV · v20260730165559-full.f96bc7eb