HTML & CSS kezdőknek

HTML & CSS kezdőknek (27. rész): Az elemválasztókkal történő hozzáférés működése (2)

A bemutató összes videója HTML & CSS kezdőknek

A gyermekelemeknek nevezzük azokat az elemeket, amelyek közvetlenül más elemek alá vannak rendezve. Ez valóban kissé absztrakt hangzik, de egy példán keresztül könnyen érthetővé válik.

<test>
<p>Bekezdés 1</p>
<p>Bekezdés 2</p>
<p>Bekezdés 3</p>
</test>

Itt a test az őselem. A p-elemek mindegyike test gyermek eleme. Ennek alapján alkalmazható a gyermek elem szelektor.

test>p { 
   color: kék; 
}



Ez a szintaxis az összes bekezdést, amelyek közvetlen gyerekei a testnek, kék színűvé teszi.

A következő példa még egyszer megmutatja a különbségeket a body p és body>p két utasítás között.

<!DOCTYPE html>
<html lang="de">
<head>
<title>PSD-Tutorials.de</title>
<meta charset="UTF-8" />
<style>
test>p {
   betűtípus:"Courier New", Courier, egyszerű;
   betűméret: 200%;
}
test p {
   szín:#0066FF;
}
</style>
</head>
<test>
<p>Bekezdés 1</p>
<p>Bekezdés 2</p>
<p>Bekezdés 3</p>
<div>
  <p>Bekezdés 4</p>
</div>
</test>
</html>

Az első három definiált p-szövegbekezdés közvetlenül a test gyerekei. A test p utasítás minden szövegbekezdésnek kék színt rendel. test>p pedig csak az első három szövegbekezdésre hat. Ezért ezek a bekezdések nagyobb méretben jelennek meg.

HTML & CSS kezdőknek (27. rész): Így működik a hozzáférés a szelektorokkal (2)

Következő lépésként bemutatom a következőelem szelektort. Ez a szelektor egy olyan elemet jelöl meg, amely közvetlenül másik eleme követ és ugyanazt az őselemet birtokolja. Erről ismét egy példa:

cím1+p { 
   szín: kék; 
}



Ez a szintaxis beállítja egy bekezdés szövegszínét kék színűre. Azonban ez csak akkor érvényes, ha a bekezdés az első szintű címmel közvetlenül kapcsolódik.

<!DOCTYPE html>
<html lang="de">
<head>
<title>PSD-Tutorials.de</title>
<meta charset="UTF-8" />
<style>
h1+p {
   szín: kék;
}
</style>
</head>
<test>
<h1>Cím</h1>
<p>Bekezdés 1</p>
<h2>Cím</h2>
<p>Bekezdés 2</p>
<p>Bekezdés 3</p>
<div>
  <p>Bekezdés 4</p>
</div>
</test>
</html>

Tekintsétek meg az eredményt a böngészőben.

HTML & CSS kezdők számára (27. rész): Így működik a hozzáférés a szelektorokkal (2)



Csak az első bekezdés lesz itt kék színű. A többi bekezdés fekete. Ennek az az oka, hogy ezek a p elemek nem a h1, hanem az h2 után következnek.

Ami a következő elemeket illeti, a CSS3-ban további lehetőségek lettek bevezetve. Mostantól lehetséges az adott elem összes következő eleméhez való hozzáférés. Egy példa:

cím1~p { 
   szín: piros; 
}



Ezen szintaxis alapján az összes cím1 után következő bekezdést megjelöli.

HTML & CSS kezdőknek (27. rész): Így működik az elérések a kiválasztókkal (2)

Egyébként nem csak a közvetlen elemeket lehet ansprechen. Az elemek attribútumainak is lehet hozzáférni.

Néhány ilyen szelektor:

• [att] - Az elemnek csak tartalmaznia kell az attribútumot. Hogy értéket is megadnak-e, az lényegtelen.

• a[href] - Az összes hiperhivatkozást (<a href=…>) jelöli meg. Az elejnèv-helyekre (<a name=…>) ez nem vonatkozik.

• [align=left] - Az align attribútummal rendelkező összes elemet jelöli meg bal értelemben.

• [attr~=wert] - Azon elemeket jelöli meg, amelyekben az érték megtalálható egy szóközzel elválasztott értéklistában.

• [attr|=wert] - Jelöli az elemet, ha az általános a megadott érték egy kötőjellel elválasztott karakterláncban van az attribútumon belül.

• img[szélesség="200"] - Ez az összes képet jelöli meg, amelyeknek 200 pixel szélességűek.

Persze felmerül a kérdés, hogy mikor lehet hasznos az attribútum-szelektorok alkalmazása. Például egy űrlapra és az abban definiált jelölőnégyzetekre gondolva. A jelölőnégyzeteket - amit már tudtok - az input elem definiálja. Az a probléma azonban, hogy az input elemet a normál szövegbeviteli mezők definiálására is használják. Így az input segítségével nem lehet különböző formázást végrehajtani a jelölőnégyzetek és szövegbeviteli mezők között. Éppen itt jönnek be az attribútum-szelektorok. Jobb megértés érdekében tekintsétek meg a következő példát:

<test>
 Név: <input type="text" id="név" />
 <br />
 Férfi: <input type="checkbox" name="nem" id="nem" />
 <br />
 Nő: <input type="checkbox" name="nem" id="nem" />
 </test>



Egyes különböző űrlapelemeket definiáltunk.

• egy szövegbeviteli mező

• két jelölőnégyzet

Ezeknek az mezőknek kell formázni.

input { 
    border:3px solid #000;
    width: 10em;
 }

A mezőkhöz keret és szélesség lesz hozzárendelve.

HTML és CSS kezdőknek (27. rész): Így működik a hozzáférés a szelektorokkal (2)

A probléma az, hogy a meghatározott szélességet valójában csak a szövegbeviteli mezőre kellene alkalmazni, nem pedig a jelölőnégyzetekre. Az elem szelektorral azonban nincs lehetőség különbségtételre az egyes mezőtípusok között. Hogy egy ilyen megkülönböztetés működjön, attribútum szelektorokra lesz szükség. Íme egy példa arra, hogy milyen módon lehet ilyet csinálni:

input[type="checkbox"] {
    width: auto;
 }



A megadott szelektor ténylegesen csak azokra az input elemekre vonatkozik, amelyeknél az attributes:type="checkbox" kombináció található.

HTML & CSS kezdőknek (27. rész): Így működik a hozzáférés a szelektorokkal (2)

Ismétlések

A CSS most végül végre lehetőséget biztosít az ismétlések kezelésére. Persze felmerül a kérdés, hogy ez mire jó. Ezek a szelektorok például hasznosak lehetnek, ha egy táblázat minden második sorát más színnel szeretnénk formázni. Mielőtt bemutatnám a rendelkezésre álló szelektorokat, itt van egy nagyon tipikus példa:

<ol id="sprachen">
    <li>HTML</li>
    <li>HTML5</li>
    <li>CSS</li>
    <li>CSS3</li>
    <li>JavaScript</li>
    <li>JScript</li>
    <li>Java</li>
    <li>PHP</li>
    <li>Python</li>
</ol>



Ez egy hagyományos felsorolás. CSS segítségével most minden harmadik listaelem kap háttérszínt.

HTML & CSS kezdőknek (27. rész): Így működik a hozzáférés a szelektorokkal (2)

Ehhez a nth-child() szelektort használjuk. Ennek a szelektornak azon elemek vannak hatással, amelyek az n-edik gyerek elemek.

#sprachen li:nth-child(3n) {
    background-color: red;
}



A következő szelektorok állnak rendelkezésre:

• :root – A :root szelektorral egy dokumentum gyökérét lehet hivatkozni.

• :nth-child(n) – Kezeli az n-edik elemet egy szülőelemen belül. Ezt a szelestort különösen akkor használják, amikor több elemet különbözően kell formázni. Az n egy fix kulcsszó, amire számítások alkalmazhatók. Az n értéke egyenlőíthető az 1 értékkel.

• :nth-last-child(n) – Kezeli az n-edik elemet egy elemen belül, amelyeket hátulról kezd veszít.

• :nth-of-type(n)– Kezeli az n-edik elemet ugyanazon HTML típusú azonos szinten.

• :nth-last-of-type(n) – Kezeli az n-edik elemet ugyanazon szinten, melyeket hátulról kezd veszít.

• :first-child – Kezeli az első gyerek elemet egy elemen belül.

• :last-child – Kezeli az utolsó gyerek elemet egy elemen belül.

• :first-of-type – Kezeli az első elemét ugyanannak az HTML elem típusnak egy elemen belül.

• :last-of-type – Kezeli az utolsó elemét ugyanannak az HTML elem típusnak egy elemen belül.

• :only-child – Kezeli az olyan elemet, amelynek nincs testvéreleme és ezen elem az egyetlen gyerek az őselemen belül.

• :only-of-type – Kezeli az olyan elemet, amely nem azonos HTML típusú testvérelemekkel rendelkezik és ezen elem az egyetlen elem ezekből a típusokból az őselemen belül.

• :empty – Kezeli a üres elemek.

A bemutatott szelektorok segítségével az HTML-el való munka sokkal könnyebbé válik, mivel az időigényes osztálydefiníciók a múlté.