Autor Zpráva
Kyoshi
Profil
Ahoj,

potřebuju nějak vyřešit nefunkčnost targetu v IE8 (starší verze už neřeším). Bylo by mi celkem jedno jak, ale jen aby to fungovalo. Na stránkách mám menu, které po kliknutí na položky zobrazí určitou část stránek, jen tu. Ostatní je skryto pomocí opacity:0. Ten pseudo-selektor mi tedy odkryje jen určitou část obsahu. Problém je, že css:

.panel:target{opacity: 1;}

díky nepodpoře v IE8 nic nezobrazí, jelikož defaultně je vše skryto:

.panel{opacity: 0;}

Když nepůjde nic vyřešit pomocí css, tak jsem si říkal, že JS je jediná volba. Ještě jsem zkoušel http://selectivizr.com/, ale i přes správné nastavení IE8 do 'standardního režimu' target nefungoval. Nedal jsem tenhle dotaz rovnou do sekce JS proto, že pořád doufám v nějaký CSS hack, nebo mi někdo chytřejší poradí, jak rozchodit selectivizr.
Ohledně toho selectivizru to mám takhle:

<!--[if IE]>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js" type="text/javascript"></script>
<script type="text/javascript" src="js/selectivizr.js"></script>
<![endif]-->

Prý by už vše mělo fungovat automaticky, což se samozřejmě nestalo… jaké překvapení.

Předem veliké díky za jakoukoliv radu
margin
Profil *
Bez živé ukázky jde jen hádat, budu předpokládat, že tebou udávaná tabulka je pravdivá:
IE nemáš ve standardním režimu (málo pravděpodobné)
IE8 nezná opacity, a špatně pracuješ s filter. Raději, než s průsvitností bych doporučoval na zneviditelnění display, nebo visibility.
Pokud je mi známo, tak na :target žádný CSS hack není.
Kcko
Profil
Kyoshi:
Zkus http://code.google.com/p/ie7-js/
Chamurappi
Profil
Reaguji na Kyoshiho:
var targetId = location.hash.substr(1);
document.getElementById(targetId).className += " target";

pořád doufám v nějaký CSS hack
Pseudotřída :target je tak specifická věc, že pokud nemá v CSS nativní podporu, dá se nahradit jen velmi těžko.
Asi by šel v hodnotách vlastností použít expression s JS podmínkou (ale to už je JS).
V některých případech by šla použít finta s overflow.

jelikož defaultně je vše skryto
Proč přes opacity?

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: