Lietuvių

Įvaldykite CSS pozicijos pseudoklases, tokias kaip :first-child, :last-child, :nth-child() ir kt., kad pasiektumėte pažangų ir dinamišką stilių savo žiniatinklio projektuose.

CSS pozicijos pseudoklasės: pažangus elementų pasirinkimas dinaminiam stiliui

CSS pozicijos pseudoklasės siūlo galingą būdą pasirinkti ir stilizuoti elementus pagal jų poziciją dokumento medyje. Šie selektoriai leidžia pritaikyti specifinius stilius pirmajam, paskutiniam ar n-tajam elemento vaikui, atveriant galimybes kurti dinamines ir vizualiai patrauklias žiniatinklio sąsajas. Šis vadovas gilinsis į pozicijos pseudoklasių pasaulį, pateikdamas praktinius pavyzdžius ir naudojimo atvejus, kad pagerintumėte savo CSS įgūdžius.

CSS pseudoklasių supratimas

Prieš gilindamiesi į pozicijos pseudoklases, trumpai apžvelkime, kas yra pseudoklasės CSS. Pseudoklasės yra raktažodžiai, pridedami prie selektorių, kurie nurodo specialią pasirinkto elemento (-ų) būseną. Jos leidžia stilizuoti elementus remiantis kitais veiksniais, o ne jų pavadinimu, atributais ar turiniu; veikiau jie stilizuojami pagal jų poziciją, būseną ar kitus dinaminius kriterijus. Pavyzdžiui, pseudoklasė :hover pritaiko stilius, kai vartotojas užveda pelės žymeklį virš elemento.

Pozicijos pseudoklasių įvadas

Pozicijos pseudoklasės yra pseudoklasių pogrupis, kuris yra skirtas elementams pagal jų poziciją jų tėviniame elemente. Jie yra neįtikėtinai naudingi stilizuojant sąrašus, lenteles ar bet kokią turinio struktūrą, kur norite pritaikyti skirtingus stilius, atsižvelgiant į elemento vietą.

Pagrindinės pozicijos pseudoklasės

1. :first-child

Pseudoklasė :first-child pasirenka pirmąjį vaiko elementą savo tėviniame elemente. Tai naudinga norint pritaikyti specifinius stilius pirmajam sąrašo elementui, pirmajai lentelės eilei arba bet kokiam kitam scenarijui, kai norite išryškinti pradinį elementą.

Pavyzdys: Pirmojo sąrašo elemento navigacijos meniu stilizavimas.

nav ul li:first-child {
  font-weight: bold;
  color: #007bff;
}

Šis CSS kodas padarys pirmąjį sąrašo elementą <nav> elemento <ul> paryškintu ir mėlynu.

Praktinis pritaikymas: Įsivaizduokite el. prekybos svetainę. Galite naudoti :first-child norėdami vizualiai išryškinti pirmąjį produktą išskirtinių produktų skyriuje.

2. :last-child

Pseudoklasė :last-child, atvirkščiai, pasirenka paskutinį vaiko elementą savo tėviniame elemente. Tai puikiai tinka pridedant kraštinę arba paraštę visiems elementams, išskyrus paskutinį, arba taikant konkretų stilių paskutiniam elementui serijoje.

Pavyzdys: Paskutinio sąrašo elemento apatinės kraštinės pašalinimas.

ul li {
  border-bottom: 1px solid #ccc;
}

ul li:last-child {
  border-bottom: none;
}

Šis CSS kodas pridės apatinę kraštinę visiems sąrašo elementams, išskyrus paskutinį, sukuriant švarų vizualinį atskyrimą be papildomos kraštinės apačioje.

Praktinis pritaikymas: Kontaktų formoje galite naudoti :last-child norėdami pašalinti apatinę paraštę iš paskutinio įvesties lauko prieš pateikimo mygtuką.

3. :nth-child(n)

Pseudoklasė :nth-child(n) yra universalesnis selektorius, leidžiantis pasirinkti elementus pagal jų skaitinę poziciją jų tėviniame elemente. n atstovauja skaičiui, raktažodžiui (even arba odd) arba formulei.

Pavyzdys: Kiekvienos antros lentelės eilės stilizavimas.

table tr:nth-child(even) {
  background-color: #f2f2f2;
}

Šis CSS kodas pritaikys šviesiai pilką foną kiekvienai lyginei eilei lentelėje, pagerindamas skaitomumą.

Pavyzdys: Trečiojo vaiko pasirinkimas.

div p:nth-child(3) {
  color: green;
}

Šis CSS kodas padarys trečiąjį pastraipos elementą <div> elemente žalią.

Pavyzdys: Formulės naudojimas kiekvienam trečiajam vaikui pasirinkti.

ul li:nth-child(3n) {
  font-style: italic;
}

Šis CSS kodas pritaikys pasvirąjį stilių kiekvienam trečiajam sąrašo elementui.

Praktinis pritaikymas: Naujienų svetainėje galite naudoti :nth-child(n) norėdami stilizuoti kas trečią straipsnį skirtingai, sukurdami vizualią įvairovę ir išryškindami konkretų turinį.

4. :nth-of-type(n)

Pseudoklasė :nth-of-type(n) yra panaši į :nth-child(n), bet ji yra skirta elementams pagal jų tipą jų tėviniame elemente. Tai reiškia, kad skaičiuojant atsižvelgiama tik į to paties tipo elementus.

Pavyzdys: Antros pastraipos div viduje stilizavimas.

div p:nth-of-type(2) {
  font-size: 1.2em;
}

Šis CSS kodas padidins antrojo pastraipos elemento šrifto dydį <div> viduje. Jis ignoruos bet kokius kitus elemento tipus div skaičiuojant.

Praktinis pritaikymas: Blog'o įraše galite naudoti :nth-of-type(n) norėdami stilizuoti kas antrą paveikslėlį skirtingai, nepriklausomai nuo kitų elementų, tokių kaip pastraipos ar antraštės, buvimo.

5. :first-of-type

Pseudoklasė :first-of-type pasirenka pirmąjį savo tipo elementą savo tėviniame elemente. Tai naudinga stilizuojant pirmąją pastraipą, paveikslėlį ar bet kurį kitą konkretų elemento tipą konteineryje.

Pavyzdys: Pirmojo paveikslėlio straipsnyje stilizavimas.

article img:first-of-type {
  float: left;
  margin-right: 10px;
}

Šis CSS kodas perkels pirmąjį paveikslėlį <article> elemente į kairę ir pridės paraštę į jo dešinę.

Praktinis pritaikymas: Produkto aprašymo puslapyje galite naudoti :first-of-type norėdami ryškiai rodyti pagrindinį produkto paveikslėlį.

6. :last-of-type

Pseudoklasė :last-of-type pasirenka paskutinį savo tipo elementą savo tėviniame elemente. Tai yra :first-of-type atitikmuo ir naudojamas norint stilizuoti paskutinį konkretaus tipo elementą konteineryje.

Pavyzdys: Paskutinės pastraipos skyriuje stilizavimas.

section p:last-of-type {
  margin-bottom: 0;
}

Šis CSS kodas pašalina apatinę paraštę iš paskutinio pastraipos elemento <section> viduje.

Praktinis pritaikymas: Blog'o įraše galite naudoti :last-of-type norėdami pašalinti apatinę paraštę iš paskutinės pastraipos, sukurdami švaresnę vizualinę pabaigą.

Realaus pasaulio naudojimo atvejai ir pavyzdžiai

Panagrinėkime dar kelis sudėtingesnius ir praktinius pavyzdžius, rodančius, kaip pozicijos pseudoklases galima naudoti realaus pasaulio scenarijuose.

1. Navigacijos meniu stilizavimas

Navigacijos meniu yra dažnas elementas svetainėse, o pozicijos pseudoklasės gali būti naudojamos norint pagerinti jų išvaizdą.


<nav>
  <ul>
    <li><a href="#home">Pagrindinis</a></li>
    <li><a href="#about">Apie</a></li>
    <li><a href="#services">Paslaugos</a></li>
    <li><a href="#contact">Kontaktai</a></li>
  </ul>
</nav>
nav ul {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
}

nav ul li {
  margin-right: 20px;
}

nav ul li:first-child {
  font-weight: bold;
}

nav ul li:last-child {
  margin-right: 0;
}

Šis kodas stilizuoja navigacijos meniu taip, kad jis būtų horizontalus, pašalina kulkas ir paryškina pirmąjį elementą. Jis taip pat pašalina dešinę paraštę iš paskutinio elemento, užtikrindamas tinkamą tarpą.

2. Produkto sąrašo stilizavimas

El. prekybos svetainės dažnai rodo produktus tinklelio arba sąrašo formatu. Pozicijos pseudoklasės gali būti naudojamos norint sukurti vizualiai patrauklius produktų sąrašus.


<div class="product-list">
  <div class="product"><img src="product1.jpg" alt="Produktas 1"><p>Produkto 1 Aprašymas</p></div>
  <div class="product"><img src="product2.jpg" alt="Produktas 2"><p>Produkto 2 Aprašymas</p></div>
  <div class="product"><img src="product3.jpg" alt="Produktas 3"><p>Produkto 3 Aprašymas</p></div>
  <div class="product"><img src="product4.jpg" alt="Produktas 4"><p>Produkto 4 Aprašymas</p></div>
</div>

.product-list {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 20px;
}

.product {
  border: 1px solid #ccc;
  padding: 10px;
}

.product:nth-child(odd) {
  background-color: #f9f9f9;
}

Šis kodas rodo produktus dviejų stulpelių tinklelyje ir prideda kraštinę prie kiekvieno produkto. Jis taip pat taiko šviesiai pilką foną kiekvienam nelyginiam numeriui, pagerindamas vizualų atskyrimą.

3. Lentelės stilizavimas

Lentelės dažniausiai naudojamos lenteliniams duomenims rodyti. Pozicijos pseudoklasės gali pagerinti lentelės skaitomumą ir išvaizdą.


<table>
  <thead>
    <tr>
      <th>Vardas</th>
      <th>Amžius</th>
      <th>Šalis</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Džonas Doe</td>
      <td>30</td>
      <td>JAV</td>
    </tr>
    <tr>
      <td>Džeinė Smit</td>
      <td>25</td>
      <td>Kanada</td>
    </tr>
    <tr>
      <td>Deividas Li</td>
      <td>40</td>
      <td>JK</td>
    </tr>
  </tbody>
</table>

table {
  width: 100%;
  border-collapse: collapse;
}

th, td {
  border: 1px solid #ccc;
  padding: 8px;
  text-align: left;
}

thead {
  background-color: #f2f2f2;
}

tbody tr:nth-child(even) {
  background-color: #f9f9f9;
}

Šis kodas stilizuoja lentelę su kraštinėmis, užpildu ir pakaitinėmis eilučių spalvomis, kad būtų geresnis skaitomumas.

Pozicijos pseudoklasių derinimas su kitais selektoriais

Pozicijos pseudoklases galima derinti su kitais CSS selektoriais, kad būtų sukurtos dar konkretesnės ir galingesnės stilizavimo taisyklės. Pavyzdžiui, galite sujungti pozicijos pseudoklasę su klasės selektoriumi arba atributo selektoriumi.

Pavyzdys: Pirmojo elemento su konkrečia klase stilizavimas.

ul li.highlight:first-child {
  color: red;
}

Šis CSS kodas raudoną spalvą pritaikys tik pirmajam sąrašo elementui, kuris taip pat turi klasę "highlight".

Naršyklės suderinamumas

Pozicijos pseudoklasės yra plačiai palaikomos šiuolaikinių žiniatinklio naršyklių, įskaitant Chrome, Firefox, Safari, Edge ir Opera. Tačiau visada yra gera praktika išbandyti savo CSS kodą skirtingose naršyklėse, kad būtų užtikrintas nuoseklus atvaizdavimas.

Geriausia praktika ir svarstymai

Išvada

CSS pozicijos pseudoklasės yra vertingas įrankis žiniatinklio kūrėjams, leidžiantis pasirinkti pažangius elementus ir dinamiškai stilizuoti. Įvaldę šiuos selektorius, galite sukurti vizualiai patrauklias ir patogias naudoti žiniatinklio sąsajas, kurios prisitaiko prie skirtingų turinio struktūrų. Eksperimentuokite su pavyzdžiais, pateiktais šiame vadove, ir išbandykite begalines pozicijos pseudoklasių galimybes savo žiniatinklio projektuose.

Šis išsamus vadovas suteikia tvirtą pagrindą suprasti ir naudoti CSS pozicijos pseudoklases. Kai ir toliau mokysitės ir eksperimentuosite, atrasite dar daugiau kūrybinių būdų, kaip patobulinti savo žiniatinklio kūrimo įgūdžius ir sukurti išskirtinę vartotojo patirtį.

Tolimesnis mokymasis

Norėdami pagilinti savo supratimą apie CSS pozicijos pseudoklases, apsvarstykite galimybę išnagrinėti šiuos išteklius:

Laimingo stilizavimo!