Autor Zpráva
nethor
Profil
V kódu mám takovouhle konstrukci (zjednodušeno):
<div>
<a href="http://www.ozero.cz/">    
    <span style="display: block; width:300px; height:100px; overflow: hidden; background: #ccc;">
        <img src='http://www.ozero.cz/obr/ozero.gif' width="160" height="160" alt='Pellentesque'>    
    </span>
</a>    
</div>

Jde zhruba o to, aby obrázek, pokud je větší nepřetékal přes blok.
K mému překvapení ale nefunguje v IE odkaz při kliknutí na obrázek (mimo obrázek - do šedého ano).
živý příklad

1. Naprosto nechápu proč?

2. Jak to fixnout?
jannes
Profil *
Mne to funguje, mám IE8.
Chamurappi
Profil
Reaguji na nethora:
Zkusil bych nastavit odkazu display: block.
margin
Profil *
Já bych vyhodil span a místo něho bych nastyloval odkaz.
Asi jde o chybu IE7 a starších.
nethor
Profil
jannes:
Mě tedy ne, mám též IE8 (winXP), nefunguje ani v IEtester 5.5 , 6 , 7.
Ale na jiném compu s win7 IE9 funguje správně.

... tohle tedy asi patří spíš do kategorie Webové prohlížeče.

Obešel jsem to takhle:
<div>
 <a href="http://www.ozero.cz/">
     <span class='img' style='display: block; background-image: url(http://www.ozero.cz/obr/ozero.gif) repeat: no-repeat 50% 0; width:300px; height:100px; '></span>
</a>    
</div>

Ale připadá mi to jako opičárna.

Nechápu, proč původní kód nefunguje. ... dokonce ani validátor nic nenamítá

Chamurappi:
display: block; u odkazu nepomohlo.


Teď koukám, že to tady už kdysi někdo řešil.
Problém způsobuje overflow: hidden; - nevím proč.
Lukáš R.
Profil
Já používám nástroje pro vývojáře v Google Chrome a přišel jsem na zvláštní věc:
Odkaz nemá žádnou velikost (inlinový prvek NESMÍ obsahovat blokový prvek) a ve starých verzích IE se "klikatelnost" nedědí.
Tady je obrázek:


Já bych použil následující kód:
<span style="display: block; width:300px; height:100px; overflow: hidden; background: #ccc">    
  <a style="display: block" href="http://www.ozero.cz/">
    <img src="http://www.ozero.cz/obr/ozero.gif" width="160" height="160" alt="Pellentesque">    
  </a>
</span>

Popřípadě <span style="display: block"> nahradit za <div> (div je jen bloková verze spanu)
Chamurappi
Profil
Reaguji na Lukáše R.:
Odkaz nemá žádnou velikost
Myslím, že to je diskutabilní. Věc názoru prohlížeče…

inlinový prvek NESMÍ obsahovat blokový prvek
Není pravda. Toto pravidlo pochází z pradávných HTML specifikací, kde sloužilo zejména jako zjednodušení mnoha dílčích více či méně rozumných pravidel týkajících se konkrétních HTML elementů. Do CSS ho nikdy nikdo nepřenesl.

a ve starých verzích IE se "klikatelnost" nedědí
Běžně se dědí, jen v tomto případě mu něco vadí.
peta
Profil
Viz chamurapi, pouzil bych display:block pro A. Navic mu nastavil width, height. A Mozna position:relative; Pripadne tomu spanu dat tez position. Overflow totiz nemusi bez position fungovat.
Jinak to rikas spravne, odkaz je radkovy prvek. Ze v nem mas neco vetsiho pro nej nic neznamena, porad je klikatelna oblast jen radek. Da se to zjistit napr tim, ze nechas podbarvit u A background-color.
A o ostatni o dedicnosti a smi a nesmi, to uz psal cham, ze jsou jen kecy :)
margin
Profil *
peta:
pouzil bych display:block pro A. Navic mu nastavil width, height. A Mozna position:relative; Pripadne tomu spanu dat tez position.
To všechno jsem zkusil, zkoušel jsem z-index.

Overflow totiz nemusi bez position fungovat.
Musí.

Jinak to rikas spravne, odkaz je radkovy prvek. Ze v nem mas neco vetsiho pro nej nic neznamena, porad je klikatelna oblast jen radek. Da se to zjistit napr tim, ze nechas podbarvit u A background-color.
Kecy a bláboly, mezi tím, co se podbarví a plochou odkazu není žádná souvislost. Klikatelná oblast odkazu se "odjakživa" zjišťuje tabulátorem.

A o ostatni o dedicnosti a smi a nesmi, to uz psal cham, ze jsou jen kecy
Kecy jsou tvé připomínky, výše uvedená konstrukce funguje napříč všemi moderními prohlížeči, akorát se hledá, jak obejít chybu ve starších Explorerech.
peta
Profil
margin: Prosim te, zkus si to. Dekuji.
margin
Profil *
peta:
Prosim te, zkus si to.
Nemám důvod zkoušet znova.

Dekuji.
Klidně se zdekuj.

Vaše odpověď

Mohlo by se hodit

Odkud se sem odkazuje


Prosím používejte diakritiku a interpunkci.

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