Ukloni margine za prvi / zadnji element - CSS-trikovi

Anonim

Ponekad može biti poželjno ukloniti gornju ili lijevu marginu s prvog elementa u spremniku. Isto tako, desna ili donja margina od zadnjeg elementa u spremniku. To možete učiniti ručnom primjenom klasa na HTML:

.first ( margin-top: 0 !important; margin-left: 0 !important; ) .last ( margin-bottom: 0 !important; margin-right: 0 !important; )

Nultiranje "gornje" / "donje" korisno je s okomitim snopom elemenata, nuliranje "lijevo" / "desno" korisno za vodoravne redove (općenito). Ali ... ova metoda ovisi o tome da li sami dodate klase u HTML. Pseudo-selektori mogu biti bolji, manje nametljiv način:

* > :first-child ( margin-top: 0 !important; margin-left: 0 !important; ) * > :last-child ( margin-bottom: 0 !important; margin-right: 0 !important; )

Možda ćete htjeti zamijeniti * s određenijim selektorima prema vašim potrebama.

"Svaki treći" itd.

Pretpostavimo da ste imali plutajući blok od 9 elemenata, 3 puta 3. Vrlo je često da ćete možda trebati ukloniti desnu marginu iz 3., 6. i 9. predmeta. Tu bi vam mogao pomoći pseudo-selektor n-tog djeteta:

* > :nth-child(3n+3) ( margin-right: 0; )

Jednadžba tamo, 3n + 3, djeluje ovako:

(3 × 0) +3 = 3
(3 × 1) +3 = 6
(3 × 2) +3 = 9
itd.

jQuery

jQuery koristi CSS3 selektore, koji uključuju: prvo dijete, posljednje dijete i n-dijete (). To znači da će u preglednicima koji ne podržavaju ili ne podržavaju ove selektore RADITI u jQueryju, tako da CSS podršku možete zamijeniti podrškom za JavaScript. Na primjer:

$("* > :nth-child(3n+3)").css("margin-right", 0);

Podrška preglednika

: first-child i: last-child radi u najnovijem izdanju svih glavnih preglednika, ali ne i u IE 6.: first-child je podržan u IE 7+. : nth-child radi u Safariju 3+, Firefoxu 3.5+ i Chromeu 1+, ali još uvijek ne radi u IE8.

Također pogledajte članak Davida Olivera.