Autor Zpráva
jefitto44
Profil
Existuje nejaký spôsob, ako nastaviť hover elementu, ktorý má inline definovaný div?
<div style="blabla"> potrebujem takémuto divu nastaviť hover. Dá sa to nejako?
Plaváček
Profil
Třeba takto?

<style type="text/css">
div[style]:hover {
    color:#ffcc00
}
</style>
jefitto44
Profil
Nefunguje... dávam tu celý kód, aspoň budte vedieť, prečo to nemôžem dať do externého CSS

echo '<style type="text/css">
                                        a[style] :hover {
                                        border:4px solid #4eadff;
                                        }
                                        </style>';
                                print '<a style="border:4px solid #fff; border-radius:3px;width:150px;height:100px;display:block;background:url('.ROOTDIR.'/photos/thumbail/'.$img["src"] . '); background-position: center top;" href="'.FunkciaKtoraVygenerujeHrefPreKažduFotku($fotogaleria['id']).'">&nbsp;</a>';
Trejpa
Profil
jefitto44:
Najdi jeden rozdíl:
a[style] :hover
a[style]:hover
jefitto44
Profil
Nefunguje ani s medzerou, ani bez medzery
Skúšal som obidva

V prvom prípade uvádzam div preto, že tam bol pôvodne div. Teraz som to ale prerobil tak, že som ten div skopíroval do stylu odkazu
TomasJ
Profil
jefitto44:
Vlastnost :hover ve všech prohlížečích podporuje jen tag <a>, v novějších pak i tag <li> a některé další, ale DIV mezi to nepatří. Pokud chceš aby to byl opravdu div, použij následující konstrukci:

<style>
a:hover div{
  background: #444;
  color: white;
}
</style>
<a href="#"><div style="blablabla">Něco</div></a>

Pokud chceš použít hover jen na element a, ale ne na všechny elementy a, urči si například class:
<style>
a.special:hover{
  color: black;
  background: #ddd;
}
</style>
<a class="special" href="#">.............</a>
Plaváček
Profil
jefitto44:

No, mně to funguje. Viz http://klient.plavacek.net/hover.html.
peta
Profil
jefitto44: Php kod fakt prohlizec neumi.
* Inline styl ma prednost pres style tagem. Zkus pouzit !important.
* Trejpa
Jsi mohl dat html kod hned :)
jefitto44
Profil
TomasJ
Finta, ktorú uvádzaš je nevalidná a Content Manager mi to vráti, že si to mám niekde strčiť, pretože bude stránka nevalidná.

Neviem čo som za d*bila, ale viaceré veci mi fungujú nejako divne dneska...
TomasJ
Profil
jefitto44:

Finta, ktorú uvádzaš je nevalidná a...
Že používáš inline styly Ti nevadí? To neovlivní validitu, ale ubere podle některých měřičů na hodnocení SEO (viz seo-servis)

ale viaceré veci mi fungujú nejako divne dneska
A jak už píše Plaváček v příkladu a peta ve zprávě, použij na konec !important jak je psáno v odkazu v [#7]

peta:
Php kod fakt prohlizec neumi.
Asi jsi se přehlídnul, celé je to napsané v PHP (echo a print).
Bubák
Profil
TomasJ:
Vlastnost :hover ve všech prohlížečích podporuje jen tag <a>, v novějších pak i tag <li> a některé další, ale DIV mezi to nepatří.
Téměř všechny elementy podporují :hover, DIV mezi ně patří.

Že používáš inline styly Ti nevadí? To neovlivní validitu, ale ubere podle některých měřičů na hodnocení SEO (viz seo-servis)
Měření SEO má menší význam, něž měření pindíků.

jefitto44:
Finta, ktorú uvádzaš je nevalidná
Není tomu tak, je to validní.

ale viaceré veci mi fungujú nejako divne dneska...
Já nemám problém, změna barvy textu podle Plaváčka funguje, změna barvy pozadí bez !important nefunfuje, důvod vysvětlil [#8] peta a změna rámečku s !important funguje.
http://kod.djpw.cz/yncb-
http://kod.djpw.cz/yncb

Co ale nechápu, je, proč je nutné použít „Hover pri inline štýle“ a v PHP generuješ výše uvedenou fujku, která zejména znepřehledňuje kód.
Trejpa
Profil
TomasJ:
Vlastnost :hover ve všech prohlížečích podporuje jen tag <a>
Ve standardním režimu vlastnost :hover na prakticky všech elementech (včetně DIV) podporují všechny běžné prohlížeče, Internet Explorer od verze 7 (podpora pro nižší verze viz hover.htc, jinak to umí jen na odkazech). jefitto44 to navíc na odkaz použít chce. Horší je to s podporou zaměřování atributů (ta hranatá závorka), tu podporuje až Internet Explorer 8.

Že používáš inline styly Ti nevadí?
Proč by mělo? Třeba je inline styl použit třeba jen jako výjimka z ostatních stylů. Nebo má HTML kód, který nemůže změnit.

ubere podle některých měřičů na hodnocení SEO
Pojednání o zbytečnosti SEOmatů

peta:
Inline styl ma prednost pres style tagem.
Jak do inline stylu asi dostane :hover, o který mu celou dobu jde?

jefitto44:
Finta, ktorú uvádzaš je nevalidná
Na validitě prohlížečům, vyhledávačům ani návštěvníkům nezáleží, proč tobě ano? Zanoření bloku do odkazů prohlížečům nikdy nevadilo, navíc v HTML 5 to validní je, stačí vyměnit doctype za <!DOCTYPE HTML>.

Nejkompatibilnější řešení je použít na odkaz třídu a zaměřovat odkazy podle ní, nikoliv podle atributů.
<style>
.odkaz-se-stylem:hover {  }
</style>

<a href="#" style="" class=odkaz-se-stylem>odkaz</a>
peta
Profil
TomasJ: ??? Ja ti vubec nerozumim. Ze je to psane v php jsem preci psal. Kdyz jsem to chtel testovat, tak jsem z toho musel to php pracne odmazavat. Kdezto jemu stacilo v prohlizeci zobrazit kod a zkopirovat to z neho. Normalne bych se na to vybod, ale protoze jefitto je novacek, kterej ma o problem fakt zajem a ne pristup udelejte mi to.
Trejpa
Profil
jefitto44:
vždy mi ľudia vraveli, že do <a> nemôže ísť nič iné ako text
Posloucháš špatné lidi. Do odkazu nepatří formulářové prvky a jiné odkazy, jinak prakticky cokoliv.
Do verze HTML 4.01 byly v odkazech validní jen inline a inline-block elementy. Prohlížeče ale žádné verze HTML nerozlišují.

Inline style je preto, že si to z premennej ťahá obrázky do backgroundu.
Libovolný uživatelský obrázek je oprávněný požadavek na background-image v inline stylech, vše ostatní dej pryč:
<style>
.odkaz-se-stylem { /* to, co jsi měl v inline stylu, vč. výchozího obrázku */ }
.odkaz-se-stylem:hover { /* styly pod kurzorem, jen co se mění */ }
</style>
 
<a href="#" style="background-image:url('uživatelský-obrázek.png');" class=odkaz-se-stylem>odkaz</a>
jefitto44
Profil
Mám to napísať slušnejšie:

IE lt8 neriešime v robote vôbec, takže pohoda


Bubak, vždy mi ľudia vraveli, že do <a> nemôže ísť nič iné ako text, alebo img... ak tam môže ísť aj div, tak to som rád a veľmi mi to pomôže :) Dik


Inline style je preto, že si to z premennej ťahá obrázky do backgroundu. Nemôžem do style.css vypísať predsa php premennú, lebo sa to na mňa vykaká
Trejpa
Profil
jefitto44:
Reakce je výše [#14].
peta
Profil
jefitto44: Pomoci php muzes vypsat class. K nemu styly pak do css. Nebo muzes volat soubor.php?parametry, ktery ti vrati css (ale to je horsi reseni, protoze pak se css nebude kesovat). Take muzes udelat druhy css, ktery bude prave jako vystup soubor.php.
Mozna by slo pouzit JS, treba opet externi script jako soubor.php.
Zalezi na tom, ceho presne chces docilit.
Fisir
Profil
Existuje nějaká specifikace, podle které je možné definovat styly pro pseudotřídu :hover (a další) i při jejich inline zápisu. Bohužel, nepodařilo se mi to rozchodit.
anonymníí
Profil *
[#12] Trejpa
Horší je to s podporou zaměřování atributů (ta hranatá závorka), tu podporuje až Internet Explorer 8.
minimálně ve std. režimu je podpora od IE7 včetně.
jefitto44
Profil
IE8 stačí... už to baví podľa tohto:
2
3
4
5<style type="text/css">
div[style]:hover {
    color:#ffcc00
}
</style>

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

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