Kihagyás

3. előadás

HTML DOM

Document Object Model

Az XML egy speciális változata, a HTML DOM szabványai szerinti speciális módosításokat tartalmazza

Hierarchia

  • Mindíg van egy gyökér elem
  • Szülő - Gyerek viszony
    • Közvetlen leszármazott
  • Szülő - Leszármazott viszony
    • Akárhány szinttel
  • Testvérek
    • Közös (Közbetlen) szülővel

ViewPort

Az aktuális ablak szélessége

Kotlin CSS kitérője

Selectorok

div, p, h2{
    /*Html tag-ek kiválasztása*/
}

.my_button, .side_drawer{
    /*Css osztályok kiválasztása*/
}

div[data-stg]{
    /*minden data-stg attribútummal rendelkező elemek*/
}

div[data-stg="some-value"]{
    /*minden data-stg attribútummal rendelkező elemek, amelyek értéke "some-value"*/
}

#navigation{
    /*Az egyedi(és egyedüli) "navigation" azonosítójú elem*/
}

div.my_class{
    /*az osztály, és attribútum selectorok összetehetőek*/
}

Hierarchia kiválasztói

:root{
    /*Gyökérelem kiválasztása*/
}

::selection{
    /*Felhasználó által kijelölt terület*/
}

h1, h2{
    /*egyszerűen több elemre értelmezett, nincsen köze a h1-nek itt a h2-höz*/
}

div + h2{
    /*A div első h2 eleme*/
}

div > p{
    /*Csak azon p-k-re értelmezett, amik közvetlen! leszármazottja egy div-nek*/
}

div button{
    /*Azon p elemekre értelmezett, amiknek valahol van legalább egy div szülője*/
}

p ~ iframe{
    /*Azon iframe-ekre értelmezett, amiknek van legalább egy p testvére*/
}

/*Új feature, csak Kotlin nem bír magával

Kotlin moment
:nod:
*/

nav:has(button.active){
    /*Csak arra a nav elemre értelmezett, aminek van ".active" osztályú button-je*/
}

Pszeudo osztályok

Egyes elemeke állapota ú.n. pszeudo osztályokkal jelöli a böngésző, ezeket css-el ki lehet választani

Néhány példa a pszeudo osztályokra

input:focus, input:focus-within{
    /*
    azon input elem, amibe a felhasználó fókuszál
    Fontos, hogy a :focused pszeudo osztály a hierarchiát követi, tehát az input összes szülője is fókuszáltnak számít
    */
}

input[type="checkbox"]:checked{
    /*Aktivált állapot*/
}

p:first-child, p:last-child{
    /*A p testvérek első, utolsó eleme*/
}

p:nth-child(2n-1){
    /*
    minden páratlanadik p testvér a DOM szerint
    */
}

Pszeudo elemek

A HTML elemeknek vannak olyan pszeudo elemei, amik a DOM-on túli további megjelenítési lehetőséget ad

Legfontosabb a ::before és ::after elemek, amik ha kapnak content értéket, megjelennek a DOM-ban, és stílus is értelmezhető rájuk

q {
  quotes: "“" "”" "‘" "’";
}
q.quoted::before {
    content: open-quote;
}
q.quoted::after {
    content: close-quote;
}
/*Automatikus idézőjelek beállítása, és alkalmazása*/

Media query

Egyes felhasználói preferenciát, böngészői beállításhoz a CSS is hozzáfér, ezeknek egy sajátos szintaxisa van

@media only screen and (max-width: 33rem) {

}

@media (prefers-color-scheme: dark) {

}

Színek

Vannak statikus, enevezett színek, valamint képlettel is megadhatók

p:first-child{
    color: salmon;
}

div:focus{
    color: #906090;
}

.designer[data-is-woman="true"]::before{
    content: "Elő";
    color: rgb(90,60,90);
}

#gucci.on{
    color: rgba(30,50,80,0.9);
    /*I can have my gucci on*/
}

#louis > vutton{
    color: hsl(100,10%,50%)
    /*I can have my luis vutton*/
}

.even ~ .with{
    color: rgba(0,0,0,0);
    /*but even with nothin' on*/
    /*I made you look*/
    /*I made you look*/
}

Mértékegységek

Abszolút

  • in
    • inch
  • cm
  • mm
  • pt
    • pont
    • 1/72 in
  • pc
    • pica
  • px
    • képpont

Fontos megjegyezni, hogy a CSS értelmezéséhez a pixel 'referencia' alapú

Relatív

  • em
    • Nyomdaipari mértékegység, a font 'M' karakteréhez becsült magasság
  • rem
    • A gyökérelem 1em-je
    • Nem örökölhető!
  • %
  • ch
  • ex
    • Az adott font 'X' betűméretéhez
  • vw
    • dvw
    • svw
  • v
    • dvh
    • svh