Ik vraag me al een tijdje af of het volgende op een eenvoudige manier in CSS mogelijk is.
Stel, ik heb een kolom met een bepaalde breedte (een sidebar bijvoorbeeld). Binnen deze kolom plaats ik een in principe willekeurig aantal elementen van een vaste breedte, waarvan er steeds twee naast elkaar dienen te verschijnen. De som van de breedtes van deze elementen is kleiner dan de breedte van mijn kolom en ik wil dan ook dat het eerste element helemaal links staat, het tweede helemaal rechts, het derde helemaal links, enzovoort.
Ik wil dus het volgende bereiken:

Welnu, de voor de hand liggende oplossing om een serie elementen naast elkaar te krijgen is het toepassen van een eenvoudige float: left. Dit levert uiteraard het volgende op:

Wat ik me dus afvraag is hoe ik het voor elkaar krijg dat de oneven elementen helemaal links in de kolom staan, terwijl de even elementen helemaal rechts staan. Ik kan niet zomaar een margin-right of margin-left op alle elementen zetten, want dan blijft er ongewenste tussenruimte over aan de linker- danwel rechterkant. Wat ik vaak gedaan heb is een class "odd" toevoegen aan alle oneven elementen en deze apart voorzien van een margin-right, maar dat is niet altijd mogelijk. Ik ben dus eigenlijk op zoek naar een universele oplossing waarbij ik geen aparte classes hoef toe te kennen aan de even of oneven elementen.
Kan dit?
Stel, ik heb een kolom met een bepaalde breedte (een sidebar bijvoorbeeld). Binnen deze kolom plaats ik een in principe willekeurig aantal elementen van een vaste breedte, waarvan er steeds twee naast elkaar dienen te verschijnen. De som van de breedtes van deze elementen is kleiner dan de breedte van mijn kolom en ik wil dan ook dat het eerste element helemaal links staat, het tweede helemaal rechts, het derde helemaal links, enzovoort.
Ik wil dus het volgende bereiken:

Welnu, de voor de hand liggende oplossing om een serie elementen naast elkaar te krijgen is het toepassen van een eenvoudige float: left. Dit levert uiteraard het volgende op:

Wat ik me dus afvraag is hoe ik het voor elkaar krijg dat de oneven elementen helemaal links in de kolom staan, terwijl de even elementen helemaal rechts staan. Ik kan niet zomaar een margin-right of margin-left op alle elementen zetten, want dan blijft er ongewenste tussenruimte over aan de linker- danwel rechterkant. Wat ik vaak gedaan heb is een class "odd" toevoegen aan alle oneven elementen en deze apart voorzien van een margin-right, maar dat is niet altijd mogelijk. Ik ben dus eigenlijk op zoek naar een universele oplossing waarbij ik geen aparte classes hoef toe te kennen aan de even of oneven elementen.
Kan dit?