Autor Zpráva
Karel Zatloukal
Profil *
Proč mi tato konstrukce prosím Vás nefunguje #obal+h1 { margin: 50px; }? Zkoušel jsem h1+p { margin: 50px; } a takhle to ve Firefoxu funguje. První odstavec bude mít margin a ostatní ne. V prvním případě mi to nešlo s identifikátorem.
Timy
Profil
Karel Zatloukal
Těžko říct, bez dalšího kódu. Mimochodem tenhle selektor stejně IE neumí.
Bubák
Profil
Tipnul bych si, že nejde o nejbližšího následujícího sourozence, ale o něco takového:

<div id="obal">
<div id="obsah>
<h1>Há-1 nemá nejblíže do "obal", ale "obsah"</h1>
</div>
</div>

tenhle selektor stejně IE neumí.
Mám dojem, že IE 7 adjacent sibling selectors umí.
Trejpa
Profil
Karel Zatloukal
Plus slouží k vyjádření následujícího prvku na stejné úrovni, ne na vnořený. Bubák má pravdu. Vypadá to, že chcete použít styl na potomka, ale nastavujete ho sourozenci. Toto je použití selektoru + a ve FF samozřejmě funguje:

#obal+h1 { margin: 50px; }
<div id="obal">V #obalu, neodsazeno</div>
<h1>Nadpis, první sourozenec k #obal, odsazen podle stylu</h1>

Pokud ale potřebujete použít styl na h1, který je obalen pomocí #obal, potom takto:

#obal h1 { margin: 50px; } /* h1 vnořený do #obal a klidně do dalších elementů; použije se na všechny libovolně vnořené h1 */
#obal>h1 { margin: 50px; } /* h1 vnořený jen do #obal, ne do ničeho jiného; použije se na všechny stejně vnořené h1 */

Pokud se snažíte aplikovat styl pouze na prvního potomka, tak to nelze.

O selektorech se píše tady: http://interval.cz/clanky/css2-selektory-pseudotridy-a-pseudoelementy/
Toto téma je uzamčeno. Odpověď nelze zaslat.