Autor Zpráva
Návštěvník
Profil *
Zdravím,
jakým způsobem udělat to, když mám dejme tomu na stránce s šířkou 960px tři sloupečky o šířce 300px, mezi kterými je mezera 30px.

Co mě napadá je. prvním dvou sloupečkům dát třídu s pravým marginem 30px; a třetímu sloupečku přiřadit jinou třídu s nulovým marginem.

Zajímalo by mě, jestli je toto vhodná volba, nebo je i nějaká lepší a elegantnější možnost? Horší to může být např. v případě takové galerie, kde bude např. více fotek pod sebou.
Trejpa
Profil
Návštěvník:
Můžeš jednomu z těch sloupečků nastavit jiné okraje, jak píšeš. Všechny nemusí mít třídu, jen jeden, u kterého bude ta změna.

Pokud však potřebuješ, aby bloky představující sloupečky měly stejnou nebo žádnou třídu:
• v novějších prohlížečích můžeš v CSS využít selektor prvního potomka - všem blokům nastavíš levý margin, ale prvnímu ho skrz tento selektor zase zrušíš,
• můžeš také využít záporný margin.
juriad
Profil
Trejpa:
Nebo může ten margin nastavit oboustraný jen tomu prostřednímu. To je asi nejjenodušší řešení.
Nebo nemusí rušit pomocí :first-child, ale zacílit rovnou druhý a každý další pomocí div+div.
Taurus
Profil
Nebo, pokud je to možné, můžeš dát všem sloupcům oboustraný margin 10 px. Já používám ve své šabloně juriadův nápad s +, má ještě lepší podporu než first-child. Ale v dnešní době je to možná jedno...
návštěvník
Profil *
Jak to myslíte s tím div+div? To jsou sousední sourozenci, jestli to dobře chápu. Ale jak docílit, aby to neovlivnilo jiné divy na stránce, to musím asi zase použít nějakou třídu ne?
juriad
Profil
návštěvník:
Ano, musíš to nějak zacílit, ale jelikož jsi neřekl, jak tvá stránka vypadá, může to být třeba:
#obsah>div+div
Tedy druhý a každý další div přímo uvnitř elementu s id obsah.

Poradil jsem tedy obecně, jak nastavit něco všem divům kromě prvního. Jak zajistíš, že se to bude týkat jen sloupců už je na tobě.
My vlastně ani nevíme, zda máš sloupečky realizovány pomocí divů.
Tomáš123
Profil
návštěvník:
Jak to myslíte s tím div+div?
Nejako takto:
Kód
Živá ukážka

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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