Only this pageAll pages
Powered by GitBook
1 of 68

Digitális kiadványok

Loading...

Digitális kiadványok

Loading...

Loading...

Loading...

Loading...

Loading...

HTML

Loading...

Loading...

Loading...

Loading...

Loading...

CSS

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

CSS technikák

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Bootstrap

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

VS Code

Loading...

Loading...

Loading...

Loading...

Egyéb eszközök

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

eKönyv

Loading...

Loading...

Függelék

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Webmotorok, tartalomkezelők, webshopok

Egyedi motorok

Egyedi programozású rendszereket számos cég készít, jellemzően egyedi igényeket elégítenek ki.

Egyedi rendszerek előnyei

  • Nincsenek ismert hibák, amit a hackerek (könnyen) kihasználhatnának.

  • Azt az igényt elégíti ki, amire a megrendelőnek szüksége van.

  • Nem tartalmaz felesleges funkciókat, így könnyebben optimalizálható.

Egyedi rendszerek hátrányai

  • Nincs mögötte a közösség ereje, tudása.

  • Jellemzően a legalapvetőbb funkciókon kívül mindent le kell fejleszteni.

  • Nem jönnek ki új frissítések, csak ha ezért fizetünk.

  • Megszűnik a fejlesztő cég nem biztos hogy (könnyen) találunk kompetens fejlesztőt.

Egyedi motorok esetében is szokás keretrendszer(-eket) használni, ezek általában a legalapvetőbb funkciókat, struktúrát tartalmazzák, példák keretrendszerekere: Smarty, Symfony, Laravel, Zend Framework, Django.

Webes tartalomkezelő rendszerek

A webes tartalomkezelő rendszerek (CMS - Content Management System) adatok (tartalmak) kezelésére szolgálnak, és lehetőséget biztosítanak több felhasználó kollaboratív együttműködésére.

Webes tartalomkezelők legjellemzőbb képességei:

  • Tartalmak kezelése, szerkesztése (szöveges, képi, multimédia)

  • Különböző tartalomtípusok kezelése (aloldal, blogbejegyzés, hír, publikáció, termék, naptár időpont stb.)

  • Tartalmak rendszerezésének lehetősége (kategóriák, cimkék, stb.)

  • Több felhasználó kezelése

Jellemző a bőség zavara, mind fizetős, mind ingyenes rendszerből számolatlan áll rendelkezésre, legelterjedtebb ezek közül:

WordPress

A egy nyílt forráskódú, ingyenes tartalomkezelő rendszer, eredetileg blogmotor volt, elsődleges célja a blog funkciók kiszolgálása, de sokoldalúsága, és számtalan bővítményének hála nagyon széles körben bevethető, akár webshop funkciókkal is fel lehet ruházni. 2003 óta létezik, és aktívan fejlesztik, számos technológia, például a Gutenberg interaktív szerkesztő a Wordpress-ből nőtt ki. aktív, és is elérhető. Telepítése egyszerű, 5 perc alatt elvégezhető (híres 5 perces telepítés). A WordPressnek jelentős elterjedsége van, a Világháló öszes weblapjának 33.9%-a WordPress alapú, a tartalomkezelők piacán 60.7%-ot mondhat magáénak (2018-as adatok alapján).

Drupal

A 2000 óta létző nyílt forráskódú, ingyenes CMS, általános célra készült, a funkcionalitása bővítmények segítségével fejleszthető, bővíthető, a kinézete témázható (itt sminknek hívják). Telepítése, konfigurálása bonyolult a többi ingyenes CMS-hez képest. A magyar közösség aktív, létezik több magyar , fontos a Drupalaton, a Balatonnál megtartott éves Drupál konferencia. Sok magyar fejlesztőcég dolgozik ezzel a tartalomkezelővel (pl. Penceo, Cheppers).

Joomla

A 2005-ben jött létre nyílt forráskódu ingyenes rendszerként egy korábbi tartalomkezelőből a Mambo-ból. Bővíthető, és témázható CMS. A mai napig aktív a fejlesztése. Korábbi kiemelkedő népszerűségét átvette a WordPress.

Typo3

A jellemzően német nyelvterületen elterjedt 2001 óta létező nyílt forráskódú ingyenes tartalomkezelő rendszer.

Tartalomkezelő rendszerek népszerűségének összehasonlítása a Google Trends-en:

Webshopok

A webshopok termékek és szolgáltatások forgalmazásra specializált tartalom kezelő rendszerek. A CMS alap funkciókon túl fel vannak ruházva az áruforgalom lebonyolításához szükséges képességekkel:

  • Árucikkek kezelése, szerkesztése

  • Raktárkészlet kezelése

  • Vásárlók kezelése

  • Kosár

Webáruház motorok tekintetében is bőséges kínálatból választhatunk:

Magento

A egy nyílt forráskódú e-kereskedelmi platform. Az Adobe 2018-ban megvásárolta a Magentót fejlesztő céget, és bemelte a Magentót a saját .

Opencart

Régi motoros a webshopok között az 1998 óta létező Opencart, ez szintén egy népszerű, nyílt forráskódú ingyenes rendszer.

WooCommerce

A plugin a WordPress-t ruházza fel webshop funkcionalítással. Létezik hozzá egy speciális WordPress téma, a , ez biztosítja a webshop megjelenést. Hatalmas előnye, hogy a WordPress-el együtt is gyorsan és egyszerűen telepíthető.

Webshop motorok népszerűségének összehasonlítása a Google Trends-en:

Egyéb alternatívák

Statikus oldal generáló (Static Site Generator)

A statikus oldal generáló szöveges állományokból, például állományokból állít elő egy teljes weboldalt, ezt a műveletet rendszerint az oldal szerzője, fejlesztője végzi el egy asztali gépen. Nagy előnye ezeknek a rendszereknek, hogy nincs szükség számításigényes szerveroldali technológiákra, adatbázisokra, így ezek az oldalak kifejezetten gyorsak, és biztonságosak. Hátrányuk az interaktivitás hiánya (nincsenek háttérműveletek).

Statikus oldal generálók: , ,

Felhő alapú weboldalkészítő (Cloude based website builder)

A kétezres évek közepén jelentek meg a felhő alapú weboldal készítő alkalmazások, és egyszerű kezelhetőségük miatt egyre növekszik a népszerűségük.

A felhő alapú weboldalkészítők egy online felületen drag and drop (fogd és vidd) technikával gyorsan összerakható, és szerkeszthető weboldalakat kínálnak.

Felhő alapú weboldalkészítő előnyei

  • Gyorsan megtanulható a használata

  • Nem szükséges csak minimális technikai háttér ismeret

  • Számos előre elkészített sablon, és bővítmény

Felhő alapú weboldalkészítő hátrányai

  • Kötve vagyunk a platformhoz, nem a miénk az oldal kódja, emiatt nem költöztethető

  • Korlátozottan optimalizálható teljesítmény, SEO szinten

  • Korlátozott funkcionalitása miatt egyedi igényeinket adott esetben nem tudja kielégíteni

Felhő alapú weboldal készítők: , , , ,

Az egyedi rendszerek költségvonzata is magasabb.

Felhasználói szintek (szuperadmin, admin, szerkesztő, tag, stb.)

  • Látogatói statisztikák biztosítása

  • Adatok exportálása, importálása

  • Frissítéskezelő

  • Bővíthetőség modulokkal, pluginokkal

  • Különböző a design-t, és a megjelenést befolyásoló témák

  • Online fizetés

  • Online számlázás

  • Szállítási költségkalkuláció

  • Visszaigazoló emailek kezelése

  • Könyvelés, statisztika

  • WordPress
    Magyar közösség
    magyar nyelvű kézikönyv
    Drupal
    kézikönyv
    Joomla
    Typo3
    https://trends.google.com/trends/explore?date=all&q=wordpress,drupal,joomla,typo3
    Magento
    felhő szolgáltatásába (Adobe Commerce Cloud)
    WooCommerce
    Storefront
    https://trends.google.hu/trends/explore?date=all&q=WooCommerce,Magento,Shopify,Opencart,PrestaShop
    markdown
    Jekyll
    Hyde
    Gatsby
    WIX
    Squarespace
    site123.com
    Weebly
    Unbounce
    WordPress adminisztrációs felülete
    Webshop Magento alapokon.
    Opencart jól áttekinthető kezelőfelülete.
    WooCommerce Storefront téma
    Wix vizuális szerkesztőfelülete

    Mi szükséges egy weboldal elindításához?

    Domain név

    A domain név egy könnyen megjegyezhető szöveges cím, amin a webes szolgáltatásokat és a honlapokat elérhetjük.

    A domain nevek formátumát a DNS (Domain Name System) szabvány szabályozza, tartományokra, és altartományokra osztva a hálózatokon, például az interneten elérhető számítógépeket.

    A domain név több egységből épül fel (ezek között a szeparátor szerepét egy pont . tölti be).

    Az első egység a tartomány (Top Level Domain - TLD), ami lehet top domain (például .org, .gov, .com, .net), vagy nemzeti tartomány (például .eu, .hu, .de, .at). Például a Wikipedia domain nevében a tartomány az org: wikipedia.org.

    A második egység (jobbról balra) az altartomány (Second Level Domain - SLD). A gyakorlatban ez azonosít egy tartomány alá besorolt számítógépet. Például a Wikipedia domain nevében ez a wikipedia: wikipedia.org

    A harmadik opcionális egység az altartomány alá további címek besorolását teszi lehetővé, ez az aldomain (subdomain vagy Third Level Domain). Például a Wikipédián a különböző nyelvű Wikipédia alegységeket így azonosítják, a magyar wikipédia címe hu.wikipedia.org, a német nyelvű wikipedia címe de.wikipedia.org.

    Domaint az úgynevezett domain regisztrátor cégeknél lehet igényelni, regisztrációs díj ellenében.

    Hogyan találja meg a beírt webcímhez tartozó szervert a böngészőnk? A webszerverek nem rendelkeznek nevesített címmel, amin elérhetjük őket az az IP címük (Internet Protokoll cím), ezt használják a számítógépek egymás azonosítására. Az IP címek hasonlítanak a telefonszámokra, a felhasználók számára nehezen olvasható, és megjegyezhető számsorozatokból állnak, példaként egy népszerű magyar internetes oldal IP címe: . De hogy lesz ebből .hu végződésű domain név? A böngészők lekérik az adott webcímhez, vagy domain-hez tartozó IP címet a DNS (Domain Name System) kiszolgálóktól. A DNS kiszolgálók vagy szerverek hálózata egyfajta internetes telefonkönyvként működik. A böngésző először lekéri a webcímhez tartozó IP címet (feloldja) a DNS hálózat szervereitől, ezután küldi el a kérést az IP címen található webszervernek (request). Természetesen a mi számítógépünk is rendelkezik az interneten IP címmel, erre küldi el a választ (response) a webszerver.

    Tárhely

    Hagyományos tárhelyek

    Általában egy szerverparkban elhelyezett számítógép, amin több felhasználói fiók (tárhely) található. A tárhelyekhez rendszerint tartozik egy adminisztrációs felület, mint például a , amin keresztül a rendszer beállításait a tárhely bérlője is el tudja látni (például mentés/helyreállítás). A tárhelyhez lehet csatlakozni, és ennek segítségével lehet a weboldalak állományait le, és feltölteni.

    Felhő alapú tárhelyek

    Felhő alapú tárhelyen az igényeinknek megfelelő virtuális szerverek létrehozására van lehetőség, ez a költségek hatékony minimalizálhatóságát is lehetővé teszi, de szükséges hozzá némi szaktudás, cserébe jóval nagyobb szabadságot kapunk (akár bármikor ki is törölhetjük egy óvatlan mozdulattal a gépet). Számos cég kínál felhő alapú tárhelyet, például: , , ...

    Szerver oldali technológiák

    A egy szerver oldali programozási nyelv, úgynevezett scriptnyelv. A webszerverek a PHP kódból készítik el a weboldal HTML állományait, és ezt kapja meg a kliens.

    A egy nyílt forráskódú adatbázis szerver, segítségével adatokat, például egy weboldal adatait tárolhatjuk egy webszerveren.

    A LAMP egy szoftver csomag, tartalmaz minden alapvető komponenst, amiből egy webes kiszolgáló felépül:

    • Linux (operációs rendszer)

    • Apache (HTTP szerver)

    • MySQL (adatbázis kezelő)

    • PHP (script futtató környezet)

    A fenti technológiai lista (stack) csak egy a lehetséges kombinációk közül, webmotortól függően, ettől teljesen eltérő infrastruktúrák is előfordulhatnak. Példák szerver oldali script nyelvekre: , , , . Példák adatbázis kiszolgálókra: , .

    Weblaptervezéshez szükséges ismeretek

    Alapfogalmak

    A HTML (HyperText Markup Language) a weboldal alapja, olyan, mint egy ház alapja, csupasz falai, teteje.

    A CSS (Cascading Style Sheets) felel a weboldal kinézetéért, olyan, mint a ház színe, dekorációja, bútorzata.

    A JavaScript programozási nyelv felel az oldalak működésért, olyan mint egy ház gépészete, elektromos rendszere (ha itt megnyomok egy kapcsolót, amott felgyúl a villany).

    Grafikai szoftverek

    Az Adobe termékei de facto iparági szabványként működnek, a webes grafikusok jelentős része Adobe Photoshop-ot használ, és PSD formátumú állományokkal látja el a fejlesztőket.

    Photoshop mellett az Adobe Illustrator, és a Fireworks is népszerű. Az Adobe termékek nyílt forráskódú alternatívája a Gimp ingyenes képszerkesztő, és az Inkscape vektorgrafikus szerkesztő.

    Animációs területen az Adobe Flash elvesztette a piaci monopóliumát, az Adobe beszüntette a platform támogatását, ezt a piaci rést a HTML5-ös animált bannerek töltik be, ezek szerkesztésére jött létre az ingyenes Google Web Designer.

    Google Web Designer felülete

    Az asztali alkalmazások mellett egyre terjednek az online felhő alapú grafikai programok, amik nagyban támogatják a kollaboratív munkát. MacOS rendszeren a Sketch jellemző, jó alternatíva a Figma, vagy az InVision. Az új trendre reagálva az Adobe is piacra dobta a saját felhő alapú megoldását, ez az Adobe XD-t.

    Figma böngészőben futó felülete

    Szövegszerkesztők

    A grafikai munkákon túl a fejlesztők szövegszerkesztőt (Text editor), és integrált fejlesztői környezetet (Integrated Development Environment azaz IDE) használnak, ezek a programok fel vannak ruházva a forráskódok irását, szerkesztését segítő funkciókkal, úgy mint intelligens kód kiegészítés (Emmet, Intelli Sense, TabNine), kód színezés, hibakiemelés, stb. Számos ingyenes és fizetős program létezik, a teljesség igénye nélkül: Visual Studio Code, Atom, Notepad++, Brackets, Sublime Text, Adobe Dreamweaver...

    A Visual Studio Code szövegszerkesztő

    Drótváz

    A drótváz készítés egy módszer, amely segítségével kialakíthatjuk egy weboldal felépítését. A drótvázat elsősorban olyan weboldalak tartalmának és funkcionalitásának meghatározására használjuk, melyek figyelembe veszik a felhasználói igényeket és a felhasználói viselkedést. A drótvázakat a fejlesztési folyamat korai szakaszában használjuk az oldal alapvető kialakítása előtt, megelőzi a tényleges online grafikai tervezést, és a (szöveges) tartalmak kialakítását. A drótváz kiváló eszköz arra, hogy költséges fejlesztés nélkül megismerjük az ügyfél igényeit, a fejlesztők pontos képet kapjanak az elkészítendő alkalmazás működéséről, ezen felül teret ad a kisérletezésnek, segítségével alacsony költségen kipróbálhatóak a projektekkel kapcsolatos ötletek.

    A drótváz készülhet kézi rajzzal papíron, táblán, de vannak speciálisan erre a célra szolgáló szoftverek, mint példáula a Scetch, vagy az Adobe XD, egy jó ingyenes nyílt forráskódú alternatíva a Pencil Projekt. Jellemző még ezen a területen az Adobe Illustrator használata.

    Célprogrammal készült drótváz.
    Webalkalmazás mobilos drótváza kézi rajzzal.
    A Pencil drótváz szerkesztő felülete egy egyszerű drótvázzal.

    A prototípus a következő lépés a drótváz után, ez már kattintható, bár a funkcionalitás csak mímelt (angol kifejezéssel mock, magyarosítva mokkolt). Jellemzően HTML, és CSS segítségével készül, erre a feladatra kiválóan alkalmas a Bootstrap keretrendszer is, ezzel gyorsan és hatékonyan lehet felületeket kialakítani. Egyes drótváz készítő programokból lehet kattintható prototípust előállítani.

    Bootstrap-ban készült prototípus.

    Bővebbebb cikk a témáról: Using wireframes to streamline your development process

    Grid rendszerek, vagy modulháló

    A grid, vagy modulháló a tervezés legalapabb alapja, nem újkeletű dolog (többszáz éve használja a nyomtatott grafika), de új értelmet nyert a reszponzív webdizájnban, ahol fix szélességek helyett dinamikusan alkamazkodó arányokat célszerű használni.

    A modulháló (grid system) részei

    Sorok (row)

    A grid rendszerek a tartalmakat különálló sorokba tagolják.

    Oszlopok (column)

    A sorok tovább tagolhatóak oszlopokra.

    Csatornák (Gutter vagy Gap)

    A sorok és oszlopok között a hézagot a csatornák alkotják.

    Margók

    A külső eltartást a margók szabályozzák.

    Régiók/területek

    A régiók több egymás melletti oszlopot ölelhetnek fel.

    Modulháló használata

    A weboldal részegységei régiókba tagolva.

    Weboldalunkhoz nem kell megírni külön a grid rendszert, számos kész rendszer a rendelkezésünkre áll: 960 Grid System, csswizardry-grids

    Grid rendszert készen beépítve megtaláljuk a jelentősebb CSS HTML keretrendszerekben: Bootstrap - Grid System, Zurb Foundation - The Grid

    A Bootstrap Grid System érdekessége, hogy magában a Bootstrap egyéb funkciói nélkül is beépíthetjük, és használhatjuk webes alkalmazásainkban.

    Bootstrap Grid System-el készült felület.
    A fenti Boodstrap Grid System felület a 12-es oszlop kiemelésével.
    Mi az a HTML?
    Mi az a CSS?
    Mi az a VS Code?
    Mi az a Bootstrap?
    Kliens oldali keretrendszerek
    Domain.hu weboldal a magyar domain regisztrátorok listájával.
    79.172.213.245
    Webmin
    FTP képes fájlkezelővel
    Amazon Web Services (AWS)
    Microsoft Azure
    Google Cloud
    PHP
    MySQL
    Perl
    Python
    Ruby on Rails
    Node.js
    MariaDB
    MongoDB

    Világhálóról dióhéjban

    A Világháló az Interneten működő egymással hiperhivatkozásokkal kapcsolódó weboldalak összessége. A felhasználók, akik igénybe akarnak venni egy szolgáltatást a Világhálón, internetképes eszközeikkel tehetik meg ezt (ez lehet hagyományos számítógép, okostelefon, konzol, még akár egy hűtőszekrény is). Az eszközön lévő böngésző vagy egyéb alkalmazás (kliens) egy kérést küld az interneten keresztül a kiszolgálónak (szerver). A kiszolgáló a kérésnek (request) megfelelően összeállítja a választ (response) csomagok formájában, és visszaküldi a kliensnek. A válaszként kapott csomagok alapján jeleníti meg a felhasználó gépén a kliens például a lekért weboldalt.

    A köznyelv az Internet és a Világháló fogalmát rendszerint szinonímaként kezeli, de érdemes elválasztani a kettőt egymástól. Az Internet olyan globális hálózat, amiben a hozzá csatlakozó számítógépek az Internet Protokoll (IP) segítségével kommunikálnak egymással. Ez a hálózat több mint 5 évtizedes múltra tekint vissza, míg a világháló csupán a 90-es évek óta képezi a részét. Az Internetnek a Világhálón kívül még számos szolgáltatása érhető el, többek között az elektronikus levelezés, FTP szerverek, pontos idő szerverek (NTP), illetve a Világhálóhoz hasonló zárt hálózatok (Onion, Darkweb).

    A kiszolgáló területét nevezzük backend-nek, vagy szerver oldalnak, a felhasználó gépét érintő területet frontend-nek, vagy kliens oldalnak.

    Kliens oldalon alkotóelemeire bontva egy weboldalt, három fő elkülöníthető technológiát tudunk azonosítani:

    Az első a , vagy hipertext jelölőnyelv, ez a szabvány a weboldalak strukturális felépítését (tartalmi szerkezetét) biztosítja. A második a , vagy egymásba ágyazható stíluslapok, ami a weboldalak megjelenéséért felel. A harmadik a JavaScript, ami a web programozási nyelve, és a weboldalak viselkedését vezérli.

    A kiszolgáló oldalán némileg összetettebb a helyzet, számtalan megoldással találkozhatunk. Napjainkban a hagyományos weboldalak között igen elterjedt, de közel sem az egyetlen megoldás, hogy a kiszolgálón egy PHP szerver oldali scriptnyelv futtatására alkalmas Unix környezet fut (LAMP - Linux Apache MySql PHP), maga a weboldal "programja" egy tartalomkezelő rendszer, ilyen például a Wordpress, vagy a Drupal.

    Bevezető

    Ennek a könyvnek a célja, hogy a Számalk-Szalézi Szakgimnázium Kiadványszerkesztő Technikus szakos hallgatóinak jegyzeteket biztosítson az órai gyakorlatok, és előadások mellett a Digitális kiadványok tantárgyban.

    Offline verzió letöltésézez a jobb oldali menüből az Export as PDF menüpontot kell választani (Entire space).

    Ez a könyv elérhető a Github-on, az alábbi linken: https://github.com/vargaLaszlo/digitalis-kiadvanyok

    Erre a könyvre a Creative Commons CC BY 4.0 licenc vonatkozik.

    Fő fejezetek

    Világhálóról dióhéjban
    Mi az a HTML?
    Mi az a CSS?
    Mi az a VS Code?
    Mi az a Bootstrap?
    HTML
    CSS

    Online tervezőgrafika

    A Internet, és később a Világháló megjelenése megreformálta az élet minden területét, így a hagyományos tervezőgrafikai műfajokat (plakátok, meghívók, oklevelek, könyv-, lemez-, CDés DVD-borítók, szórólapok, hirdetések stb.) is, új ág keletkezett: az online tervezőgrafika.

    Az új tervezőgrafikai műfajok:

    • webtervezés (desktop, tablet, mobil)

    • webes hirdetések, bannerek

    • animált média, videók (!)

    • weboldalakhoz, webáruházakhoz kapcsolódó grafika

    • közösségi oldalakra borítóképek (G+, FB, Instagram, Twitter)

    • közösségi oldalakra, blogokra bejegyzés-illusztrációk

    • online prezentációk (Prezi)

    Online tervezőgrafika korszakai

    A online tervezőgrafika egy fiatal műfaj, közege a Világháló, ami csupán 30-éves múltra tekint vissza:

    A Világháló az 1990-es évek előtt még nem létezett, elméleti koncepcióját 1989-ben dolgozta ki a kutatója, az , és is az ő nevéhez fűződik, szűk körben 1990-ben, széles nyilvánosság előtt 1991-ben mutatta be az új médiumot.

    1990-es évek

    Kilencvenes évek közepén jelentek meg az első böngészők, amik képeket is meg tudtak már jeleníteni, ezt tekinthetjük a webdesign hajnalának.

    A hagyományos tervezőgrafikai megközelítéseket ültették át online környezetbe (könyv, magazin)

    Feltűnik az interaktivitás a javaScript programozási nyelv megjelenésének köszönhetően. A weboldalakon elérhetővé válik a navigáció, gombok, űrlapok.

    Ebben a korszakban még nem álltak rendelkezésre a felület kialakítását megkönnyítő CSS technikák, így a fejlesztők a weboldalak felületét táblázatokból és frame-ekből építették fel, ezek a technológiák mára már teljesen elavultak.

    • 1990-ben adja ki az Adobe a Photoshop 1.0-át

    • 1996 CSS 1

    • 1996 Macromedia kiadja a Flash 1.0-át

    • 1998 Létrejön a Google internetes kereső

    2000-es évek első fele

    Piacra kerülnek a fejlett LCD monitorok, nagyobb felbontással és színmélységgel, ami lehetővé tette a fejlettebb webdizájnok megjelenését.

    • Oldal layout még mindig táblázatos struktúra

    • Fash animációk az oldalakon

    • Teljes weboldalak Flash-ben elkészítve

    • Egyszerűbb munkafolyamat (csak monitorra kellett tervezni)

    2000-es évek második fele

    2007-ben megjelenik az első okostelefon, az iPhone, ez alapvetően változtatta meg az élet szinte minden területét (folyamatos online jelenlét, tartalomfogyasztás, információszerzés, navigáció, játékok, stb).

    Megváltozik a világháló is Az Apple nem engedi az iPhone készüékekre a Flash animációkat, így ez a technológia lassan visszaszorul.

    Az új felhasználói felületek új kihívásokat támasztanak, már nem csak az asztali gépekre kell tervezni, fejleszteni, tenyérnyi kijelzőre is, és megjelenik az érintőképernyő mint beviteli eszköz.

    2010-es évek

    Megjelenik az internetképes eszközök széles skálája, például a 4-es iPhone a korábbiaknál nagyobb felbontással, az iPad az első tablet, az Android-os telefonok, és a Windows Phone készülékek. A fejlesztőknek már számtalan eszközre, és képernyő felbontásra kell optimalizálni a weboldalakat, létrejön a reszponzív design, ami rugalmasan alkalmazkodik a kijelzők méretéhez.

    A mobil ökoszisztémák virágzása elhozza az alkalmazások korszakát, megjelennek a webalkalmazások, és elterjednek HTML5 CSS3 alapú felhasználói felületek az alkalmazások között.

    Háttérbe szorul az anyagi valóságot mimelő felhasználói felület, tért nyer a minimalizmus, és a flat design. Erre legjobb példa a Google Android operációs rendszere, a -al.

    Megjelennek a fejlett keretrendszerek, mint a , vagy a .

    Töretlen a CSS fejlődése: animációk, flexbox, CSS grid rendszer, …

    Megfordult tendencia: az online tervezőgrafikai megközelítéseket ültetjük át hagyományos környezetbe (könyv, magazin)

    Online tervezőgrafika szempontjai

    Weboldaltervezés előtt tudni érdemes:

    • Mi a célja a weboldalnak (eladás, informálás, szórakoztatás)

    • Ki a célcsoport (nem, kor, ágazat)

    • Milyen motorra készül (nyílt forráskódú, egyedi programozás)

    • Technikai lehetőségek

    HTML rövid története

    Kezdetek

    1980 - Tim Berners-Lee az akkor a CERN-ben dolgozó fizikus létrehozta ENQUIRE dokumentációs rendszert

    1989 - Tanulmányt írt a hálózat alapú hipertext rendszerről, amiben lefektette a HTML koncepciójának alapjait.

    1990 - Elkészítette az első (szöveges) böngészőt, és webszervert.

    1991 - Kikerül az internetre az első weboldal (goo.gl/EApNkr).

    A web kiteljesedése

    1994 - Megalakul a W3C, szabványok és ajánlások formájában fejleszti és javítja az internet technológiáit

    1995 - HTML 2.0

    1997 - HTML 3.0 - HTML 4.0

    (Sötét) Középkor

    1997 - A HTML 4.0 ajánlás publikálása után bezárják a HTML munkacsoportot, két hónappal később megszületik az XML 1.0, ezt követően pedig az XHTML 1.0

    Jelenkor

    2004 - A gyártók fellázadnak és elkezdik fejleszteni a HTML 4 alapjain az újragondolt szolgáltatásokkal kibővített HTML 5-öt.

    2006 - A W3C behozhatatlan hátrányba kerül, lemaradnak az XHTML 2.0 szabvány fejlesztésében, ekkor egyesítik erőiket a gyártókkal.

    2008 - W3C ajánlásként kiadásra kerül a HTML 5

    HTML hibák, és javításuk

    Szintaktikai hibák

    Szintaktikai hibának számít, ha a HTML dokumentum forráskódja hibás.

    Ezt rendszerint nem vesszük észre, a hibák egy részének jelenléte nem okoz vizuális eltérést, vagy a böngészők sikeresen javítják a hibát az oldal betöltésénél.

    A hibákat , vagy fejlesztőeszközeink beépített tudjuk felderíteni.

    Miért kell elkerülni a szintaktikai hibákat?

    Nem minden böngésző tudja kijavítani, egy kevésbé elterjedt böngészőben, amiben nem teszteltük jelentkezhet a hiba.

    A fejlesztés későbbi fázisát akadályozza, eleve biztosabb mindent szabványosan felépíteni, hogy egy esetleges hiba miatt később ne ütközzünk nem várt akadályokba.

    Akadályozza a keresőket az oldal feldolgozásában.

    Jellemző hibák

    Kötelező elemek hiányoznak a dokumentumból.

    Pédául nincs !DOCTYPE. Vagy hiányoznak az alapvető elemek: html head body.

    A dokumentum típus meghatározásának hiányában a böngésző pontos "tervrajz" nélkül próbálja összerakni a weboldalt, ez a quirks mode, ami egy erőforrás igényes működés, feleslegesen lassítja a felhasználó gépét.

    A modern böngészők hibajavító funkciói automatikusan létrehozzák head elemet, ha az nincs benne a HTML dokumentumban (a régebbi böngészők erre nem képesek).

    Blokkos elem van szövegközi elembe ágyazva.

    A blokkos (block) és a szövegközi (inline) elemek megjelenítése nagyban eltér egymástól. A blokkos elemek 100%-ban kitöltik vízszintesen a böngésző ablakot, és maguk előtt, és után törést képeznek (mellettük nem lehet semmi). A szövegközi elemek úgy jelennek meg mint egy szó a folyóírásban, így ha szövegközi elembe ágyazunk blokkos elemet arra nincs egyértelmű és praktikus megjelenítési recept, így ezt a HTML szabványok tiltják.

    Lezáró tag hiányzik, vagy a lezáró tag-ből hiányzik a "/".

    Elemek rosszul vannak egymásba ágyazva

    Kötelezően megadandó tulajdonságok hiányoznak a HTML elemekből.

    Elavult elemek használata.

    A HTML szabvány korai fejlődési szakaszában számos elem, és tulajdonság szolgált dekorációs, megjelenési célt, ma már szinte teljesen elszeparálódott a megjelenés a HTML-től, erre a célra a CSS szolgál, így egyes elemek elavulttá váltak. Lista az elavult elemekről: MDN - Obsolete and deprecated elements

    Szemantikai "hibák"

    Szemantikai hiba, ha adott célra nem az annak megfelelő elemeket használjuk.

    Például szemantikus jelentéstartalommal rendelkező elemek helyett jelentés, vagy szerepkör nélküli elemekből építkezünk.

    Nem kapunk rá hibát a validátorban, viszont egyéb szempontokból tekintve nem optimális a megoldás.

    Mik lehetnek ezek a szempontok?

    SEO - Search Engine Optimalization Legfontosabb a keresőprogramok megítélése, a szemantikus elemek megkönnyítik a tartalom feldolgozását a keresők számára, ezért honorálják a számukra könnyen olvasható tartalmakat.

    Usability - Akadálymentesítés Szemantikus elemek könnyítik a tartalom gépi feldolgozását, így például a felolvasóprogramok is képesek értelmezni azt.

    Kód olvashatóság Szemantikus elemekkel könnyebben olvasható a forráskód (tudjuk, minek mi a feladata), ami ebben a lényeges, hogy nem csak a szerző, de egy másik fejlesztő is érteni fogja az elemek szerepét.

    Jellemző hibák

    Bekezdések helyett sortöréssel van tagolva a szöveg.

    Lista elemek helyett sortörésekkel létrehozott lista.

    Nem szemantikus elemekkel létrehozott kiemelések a szövegben.

    Címek nem cím elemekből felépítve, CSS-el cím szerűre formázva.

    HTML validátorral
    hibakeresőjével
    <!-- Hibás: -->
    <a href="#"><h1>Körtefa</h1></a>
    
    <!-- Helyes: -->
    <h1><a href="#">Körtefa</a></h1>
    <!-- Hibás: -->
    <div>
        <p>Almafa
    </div>
    
    <!-- Helyes: -->
    <div>
        <p>Almafa</p>
    </div>
    <!-- Hibás: -->
    <h1><span>Szilvafa</h1></span>
    
    <!-- Helyes: -->
    <h1><span>Szilvafa</span></h1>
    <!-- Hibás: -->
    <img src="fa.jpg">
    
    <!-- Helyes: -->
    <img src="fa.jpg" alt="Virágos kőris, pompás lombkoronával">
    <!-- Hibás: -->
    <center>Középre igazított szöveg</center>
    
    <!-- Hibás: -->
    <blink>Villogó szöveg</blink>
    <!-- Hibás: -->
    <p>Körtefa.
    <br>
    <br>
    Almafa</p>
    
    <!-- Helyes: -->
    <p>Körtefa.</p>
    <p>Almafa</p>
    <!-- Hibás: -->
    <p>* Körtefa<br>
    * Almafa<br>
    * Barackfa<br>
    * Narancsfa</p>
    ​
    <!-- Helyes: -->
    <ul>
        <li>Körtefa</li>
        <li>Almafa</li>
        <li>Barackfa</li>
        <li>Narancsfa</li>
    </ul>
    <!-- Hibás: -->
    <p>Ez egy <b>fontos</b> szöveg.</p>
    ​
    <!-- Helyes: -->
    <p>Ez egy <strong>fontos</strong> szöveg.</p>
    <!-- Hibás: -->
    <div class="fo-cim">Ez a főcím</div>
    ​
    <!-- Helyes: -->
    <h1>Ez a főcím</h1>

    Egyedüli kihívás az egységes megjelenés a különböző böngészőkben

    Milyen eszközökön fogják nézni (Asztali, laptop, mobil, tablet)

    Tim Berners-Lee
    CERN
    első weboldal
    internetes böngésző
    Material Design
    Bootstrap
    Zurb Foundation
    Az első weboldal
    Korabeli cikk részlet a Web születéséről.
    Az első grafikus felhasználói felülettel (GUI) rendelkező böngésző, a Mosaic.
    A Fehér Ház honlapja a kilencvenes években (whitehouse.gov)
    https://twitter.com/timberners_lee

    Mi az a HTML?

    Mi a HTML?

    A HTML egy a webes szabványok közül. A webes szabványok közül a legfontosabb a HTML, a CSS és a JavaScript, ezek hármasa együtt alkotja a weboldalak technológiai alapját.

    HTML egy mozaikszó, jelentése HyperText Markup Language, vagyis hiperszöveges jelölőnyelv.

    A HTML egy leírónyelv, ami a webalkalmazások strukturális vázát, tartalmát adja.

    A HTML-t mint szabványt a (World Wide Web Consortium) kezeli.

    A HTML nyelv elsajátítása az első lépés azon az úton aminek a végén képessé válunk weboldalakat, web alapú alkalmazásokat készíteni.

    Építőelemek

    A HTML dokumentum tag-ekből (címke) épül fel, ezekből képezi le a böngésző a HTML elemeket, miután beolvasta és feldolgozta a dokumentumot.

    Egy lehetséges HTML elem:

    Hiperhivatkozások

    A weboldalak legfontosabb építőelemei a hiperhivatkozások (link vagy hyperlink). Ezek kötik össze egy globális egységgé a weben található dokumentumokat.

    CSS stílusok felépítése

    CSS elhelyezése HTML állományokban

    Szövegközi stílusok (inline style)

    A CSS stílusokat egy HTML elem style tulajdonságában elhelyezve csak arra az egy elemre fognak vonatkozni. A következő példában egy bekezdés, vagyis egy p elem szövegszínét és betűméretét állítjuk be:

    Beágyazott stíluslapok

    A CSS stílusokat elhelyezhetjük egy HTML állomány egy style elemben. A style elemben CSS nyelvi szabályok lesznek érvényesek.

    Külső stíluslapok

    A CSS definícióinkat elhelyezhetünk CSS állományokban (rendszerint a HTML állomány mellett elhelyezve), ezeket az állományokat elemmel kapcsolhatjuk a HTML állományunkba ().

    A külső CSS állomány kiterjesztése .css lehet.

    A link elemeket minden esetben a HTML állomány fejlécében, a head elemben kell elhelyezni:

    A külső CSS állomány nagy előnye, hogy több HTML oldalba is be lehet kötni ugyan azt a CSS állományt, így csökken a letöltendő adatmennyiség, és a stílusokat egy központi helyen tudjuk kezelni.

    CSS importálása

    Egy CSS állományba behívhatunk egy másik CSS állományt @import segítségével.

    Megjegyzések

    Megjegyzés (comment) /* */ jelek használatával hozható létre CSS-ben

    A /* és a */ karaktersorozatok közötti részt a böngésző figyelmen kívül hagyja.

    Stílusok felépítése

    CSS stílus (CSS rule)

    A célozza be az elemeinket a HTML struktúrának megfelelően (úgy kell elképzelni mint egy címzést, ami egy, vagy több elemre hivatkozik). A meghatározásblokk tartalmazza a kijelölt elemekre vonatkozó tulajdonságokat.

    Kijelölők (selector)

    A kijelölő a kapcsos zárójel előtt helyezkedik el, és tipusától függően hivatkozik egy vagy több HTML elemre. A következő példában az összes h1 (főcím) elem szövegszínét állítjuk be vörösre:

    A kijelölőket lehet csoportosítani vesszővel elválasztva több elemre is vonatkoztathatjuk ugyan azt a szabályt. A következő példában már nem csak a h1 elem szöveg színét állítjuk be, a h2 h3 h4 HTML elemek szövegszínét is vörösre állítjuk:

    A kijelölő szűrhet bizonyos elemkombinációkra, ekkor a szülőkön keresztül célozzuk meg az adott elemet. A következő példában a h1 elemekben lévő span elemek szövegszínét kékre állítjuk:

    Meghatározások

    A meghatározásokat a kijelölő utáni kapcsos zárójelben helyezzük el, egymástól pontosvesszővel elválasztva. Az utolsó meghatározás, vagy CSS szabály után nem kell pontosvessző (általában ki szoktuk tenni).

    Egy meghatározás kulcsszóból, vagy névből, és a hozzá tartozó értékből áll, kettősponttal elválasztva.

    Léteznek gyorsírásos szabályok, amikben több értéket is megadhatunk. Ebben az esetben az értékeket szóközzel kell elválasztani.

    HTML állomány felépítése

    HTML állomány kiterjesztése

    A HTML állományok kiterjesztése .html vagy .htm lehet.

    A böngészők, és a fejlesztésre használt szövegszerkesztők automatikusan felismerik, és statikus weboldalként kezelik ezeket az állományokat.

    Doctype

    A HTML dokumentum a típusmeghatározással kezdődik, ez a !DOCTYPE.

    Ez alapján azonosítja be a böngésző a dokumentum típusát, ettől függ az elemek megjelenítésének módja.

    Kötelezően a HTML állomány első sorában, a többi elem előtt kell elhelyezni.

    A !DOCTYPE nem érzékeny a kis- és nagybetűk különbözőségére

    XHTML 1.0:

    Régebbi verzióknál a !DOCTYPE tartalmazta a DTD (Document Type Definition) állományokra mutató hivatkozást, a HTML 5 esetében ez az elem is egyszerűsödött.

    HTML 5

    Mi történik akkor ha elhagyjuk a dokumentum típusát? A böngésző megpróbálja kitalálni a dokumentum tartalma alapján, hogy hogyan kell azt megjelenítenie. Ez a quirks mode, ami erőforrás igényesebb a normális futásnál, így lassabban tölti be az oldalt, mintha eleve megmondanánk neki, hogy hogyan jelenítse meg azt (spórolva a kliens gép erőforrásaival).

    Megjegyzések (Comment)

    A HTML állományban elhelyezhetők megjegyzések:

    A megjegyzés nyitó <!--, és záró --> karaktersorozata közötti részt a böngésző figyelmen kívül hagyja.

    A megjegyzés lehet kód magyarázat, jelölhetjük vele szekciók elejét és végét, ez a forráskód olvashatóságát könnyíti.

    Elrejthetünk vele HTML elemeket is:

    A fenti példában a középső lista elemet nem hozza létre a böngésző.

    HTML Címkék (Tag)

    A HTML dokumentum tag-ekből (címke) épül fel, ezekből képezi le a böngésző a HTML elemeket, miután beolvasta a dokumentumot.

    Egy lehetséges HTML elem:

    A HTML elemek nyitó és záró tagből állnak, amennyiben lehet tartalmuk:

    Az elemek egymásba ágyazhatóak:

    A fenti példában az ul egy lista, amiben lista elemek li vannak, ez a tartalma. Az li-k az ul gyermek elemei, és egymásnak testvér elemei.

    Vannak HTML elemek, amiknek nem lehet tartalma, így záró tag-re nincs szükség:

    Tulajdonságok (Atributes)

    A HTML elemeket fel lehet ruházni tulajdonságokkal, illetve egyes HTML elemeknek kötelező megadni bizonyos tulajdonságokat.

    Korábbi példa:

    A tulajdonságok a nyitó tag-ben helyezhetőek el, szóközökkel elválasztva egymástól, és HTML tag nevétől.

    Minden tulajdonság egy név-érték pár, balra a tulajdonság neve, jobbra az értéke, egyenlőségjellel elválasztva.

    Az értéket idézőjelbe kell tenni, ha tartalmaz szóközt. Bár nem kötelező, az olvashatóság megkönnyítése érdekében ezt érdemes minden esetben kitenni.

    Egyes tulajdonságok a HTML elemünk azonosítását könnyítik meg.

    Az id (egyedi azonosító) tulajdonsággal egyedi nevet adhatunk elemeinknek:

    Az class (osztály) tulajdonság csoportokba szervezi az elemeket:

    További példák tulajdonságokra:

    Az input (beviteli mező) elem megjelenése és viselkedése a type tulajdonságától függ.

    Következő példában egy img (kép), az src a képállományra mutató hivatkozás, a title a kép címe, az alt pedig a kép tartalmának szöveges leirata:

    Példa HTML állomány

    Ebben a példában egy egyszerű HTML állomány tartalma látható:

    Kijelölők

    Mire szolgál a CSS kijelölő?

    A kijelölők segítenek kiválasztani azokat a HTML elemeket, amelyekre CSS stílus szabályokat szeretnénk alkalmazni. Minden stílusnak tartalmaznia kell egy kijelölőt, amit úgy kell elképzelni mint egy címzést, ami egy, vagy több elemre hivatkozik.

    A következő példában, a HTML állományunkban elhelyzünk egyh1 címet:

    A HTML elemek megjelenését CSS stílusokkal tudjuk befolyásolni, a lenti példában a h1 elem szövegszínét vörösre állítjuk. Maga a kijelölő a kapcsos zárójel nyitó eleme előtt található (h1).

    A kijelölők hivatkozhatnak több elemre, vagy bizonyos típúsú elemekre (a fenti példában az összes h1 elemre), de egészen specifikusan egy-egy elemet is kiválaszthatunk velük.

    A kijelölők könnyebb megértését segíti a CSS Diner nevű játék, ami elérhető az alábbi linken:

    Általános kijelölő

    Az általános kijelölő minden elemre általánosan hivatkozik, segítségével a HTML dokumentumban lévő összes elemre vonatkozó stílusokat tudunk megadni.

    Az általános kijelölőt csillag (*) karakterrel hozhatunk létre.

    Az általános kijelölő hatással van a HTML dokumentum fejlécére is, próbáljuk csak ki az alábbi stílust:

    * { display: block; }

    Elem kijelölő

    Az elem kijelölő ez elemeket típusuk alapján azonosítja, például lista elemre, vagy elemekre a kijelölő a következőképpen hivatkozhat:

    Az alábbi példában a bekezdésekre célzunk, ez azt jelenti, hogy az összes p elem a dokumentumban megkapja a vörös szövegszínt:

    Az elem összes példányát ki fogja választani az elem kijelölő az adott HTML dokumentumban.

    A következő példában az összes cím (h1-h6) elemet kiválasztjuk vesszővel elválasztva (így minden cím a HTML dokumentumban vörös szövegszínű lesz):

    Osztály kijelölő

    Az osztály kijelölő az elemet az class (osztály) tulajdonsága alapján célozza be.

    Az osztály kijelölő ponttal kezdődik (.) ezt követi az osztály neve.

    Ugyanazzal az osztállyal több elem is rendelkezhet, és egy elem rendelkezhet több osztállyal is. Így lehetőség van elemeinket rugalmasan csoportosítani.

    Azonosító kijelölő

    Az azonosító kijelölő az elemet az id (egyedi azonosító) tulajdonsága alapján célozza be.

    Az azonosító kijelölő rácsjellel (#) kezdődik, ezt követi az azonosító neve.

    Egy HTML dokumentumban egy elem rendelkezhet egy adott egyedi azonosítóval, és ezt az elemet az azonosítókijelölővel tudjuk célozni.

    Az osztály és az azonosító nevére vonatkoznak bizonyos megkötések, ezek a következők: Speciális karakter nem lehet a névben, a speciális karakterek közül kivételt képez a kötőjel (-), és az aláhúzás jel (_), ezek megengedettek. Nem kezdődhetnek számmal, két kötőjellel, vagy egy kötőjellel, és egy számmal. Az alábbi osztálynevek és azonosítók hibásak:

    • &item

    Leszármazott kijelölő

    Ezzel a kijelölővel szülő elem alapján tudunk szűkíteni egy elemre (leszármazott). A szülőt és a gyermeket a kijelölőben szóközzel választjuk el. A következő példában csak a section elemben lévő bekezdés kap vörös szövegszínt, a második bekezdés, ami nincs benne a section elemben nem kapja meg:

    A gyermeknek nem kell közvetlenül a szülőben lennie, lehet egy vagy több szinttel beljebb is, abben a példában mindkét bekezdésre hatással van a css (mindkettő leszármazottja a section elemnek):

    Lehetőség van kettőnél több szint megadására, és a korábban megismert kijelölők szabadon kombinálhatóak:

    Gyermek kijelölő

    A gyermek kijelölő az alapján jelöli ki az adott HTML elemet, hogy közvetlenül melyik elemben található (szülő).

    Gyermek kijelölőt a > jellel hozhatunk létre, a > jel bal oldalán a szülő, jobb oldalán a gyermek található. Ebben a példában kizárólag a közvetlenül a p HTML elemekben lévő span elemek szövegszínét festi vörösre a CSS stílus:

    Szomszédos testvér kijelölő

    Ezzel a kijelölővel egy bizonyos elem után következő elemet célozhatunk meg.

    A fenti esetben a második, és a harmadik bekezdésre fog vonatkozni a stílus (ezek a bekezdések találhatóak egy másik után, az első nem).

    Álosztályok

    Állapot álosztályok

    Ezekkel a kijelölőkkel egy bizonyos állapotban lévő elemre hivatkozhatunk. Ilyen állapot például ha egy link fölött áll az egérkurzor, vagy ha egy beviteli mezőbe írunk éppen.

    :active Aktív állapotban lévő elemre vonatkozik, egy link addig aktív, amíg lenyomva tartjuk az egér gombot. :focus Azokra az elemekre vonatkozik, amik fókuszban vannak (ráléptettünk tabbal, vagy benne állunk egy űrlap mezőben). :hover Az egérkurzor alatti elemekre vonatkozik. :visited Azokra a hivatkozásokra vonatkozik, amiket korábban már bejártunk. :empty Üres, és gyermek nélküli elemeket lehet kiválasztani vele. :link Eddig még nem bejárt linkeket lehet vele célozni. :checked Megjelölt input elemeket céloz.

    A fenti példában a linkek vörös szövegszínt kapnak, ha föléjük kerül az egér kurzor.

    Pozíció álosztályok

    Ezekkel a kijelölőkkel egy bizonyos pozícióban lévő elemre hivatkozhatunk. Ilyen pozíció, hogy egy elem páratlan, vagy páros elem egy sorozatban, esetleg az első vagy az utolsó darabja egy sorozatnak.

    :nth-child(n) n-edik elem a sorban :nth-type(n) n-edik bizonyos elem :first-child első elem :last-child utolsó elem :first-of-type első egy bizonyos elem típusból :last-of-type utolsó egy bizonyos elem típusból

    Ebben a példában a lista elemek szövegszínét módosítjuk, az első elemét a :first-child (első gyermek) kijelölő segítségével vörösre, a harmadik lista elem színét a :nth-child() (n-edik elem) kijelölővel zöldre, és végül az utolsó lista elem színét kékre a :last-child (utolsó gyermek) kijelölővel.

    Álelemek

    Minden HTML elemhez hozzá lehet rendelni két álelemet, ezek az eredeti elem gyermekei lesznek, egyet a tartalma előtt, egyet pedig a tartalma után tud megjeleníteni a böngésző. Az így létrejövő elemek virtuális elemek, a CSS stílus hozza létre őket, nem képezik a HTML dokumentum részét.

    Az álelemek CSS-ében el kell helyezni egy tartalom content meghatározást, ez adja meg az álelem tartalmát, e nélkül a böngésző nem hozza létre az álelemeket. Ez rendszerint szöveg vagy kép lehet, de üresen is lehet hagyni.

    Álelemet az elem tartalma előtt a :before kijelölővel, a tartalom után az :after kijelölővel hozhatunk létre. Az álelemek alapesetben inline (szövegközi) elemek, és CSS stílusokkal módosítható a megjelenésük.

    A következő példában egy főcím szövege előtt, és után elhelyezünk egy-egy kötőjelet, és a két kötőjelnek a szövegszínét is beállítjuk a :before, és az :after kijelölők segítségével:

    Kijelölők listája

    Mi az a CSS?

    Mi a CSS?

    A CSS egy a webes szabványok közül. A webes szabványok közül a legfontosabb a HTML, a CSS és a JavaScript, ezek hármasa együtt alkotja a weboldalak technológiai alapját.

    A CSS egy mozaikszó, jelentése Cascading Style Sheets - Egymásba ágyazható stíluslapok.

    A CSS a webes alkalmazások megjelenését szabályozó stílusnyelv:

    • A stíluslapok definiálják, hogy hogyan jelenjenek meg vizuálisan a HTML elemek.

    • Segítenek, hogy a tartalom, és a megjelenés elkülönüljön egymástól.

    • Külső állományban is elhelyezhető, így több HTML állomány is használhatja ugyanazt a CSS-t.

    • Egy elemre több stílus is hatással lehet.

    CSS rövid története

    Korábban a HTML tartalmazta a megjelenésre vonatkozó utasításokat.

    A fejlesztői igények növekedésével végül 1994-ben , és kidolgozta a CSS alapjait.

    1996-ban adta ki hivatalos ajánlásként a W3C Consortium a CSS level 1 -et.

    A CSS 2. kiadása 1998-ban lett hivatalos ajánlás, ez a kiadás radikálisan kibővítette az első kiadás lehetőségeit.

    2005-ben a 3. kiadás szakított az eddig fejlesztési formával, nem egységes dokumentumként, hanem modulokra bontva folyik a fejlesztés, így lehetőség van építőelemenként fejleszteni a szabványt.

    <h1>Helló világ</h1>
    4item
  • --item

  • -4item

  • HTML elem id tulajdonsága alapján

    Leszármazott kijelölő

    .parent .child

    HTML elem a szülői alapján

    Gyermek kijelölő

    .parent > .child

    HTML elem a közvetlen szülője alapján

    Szomszédos testvér kijelölő

    h1 + p

    HTML elem az előző testvér elem alapján

    Álosztály

    a:hover

    HTML elem egy bizonyos minősége,

    állapota, sorrendje alapján

    Kijelölő

    Formátum

    Cél

    Általános kijelölő

    *

    Minden HTML elem

    Elem kijelölő

    p

    Egy típusba tartozó összes elem

    Osztály kijelölő.

    .container

    HTML elemek class tulajdonsága alapján

    Azonosító kijelölő

    https://flukeout.github.io/

    #main-menu

    <elem tulajdonsag="ertek">tartalom</elem>
    W3C
    HTML állomány felépítése
    HTML elemek
    fejlécében
    link
    link elemről bővebben
    kijelölő
    Kijelölők
    Håkon Wium Lie
    Bert Bos

    Doboz modell

    Tömbszerű (vagy blokkos) elemek jellemzői

    A blokkos elemek vízszintesen kitöltik, a rendelkezésre álló helyet, mellettük más elem nem lehet, az elem maga előtt és után sortörést hoz létre. Magasságuk a tartalmuktól függ, a tartalom tolja szét a blokkos elemeket függőlegesen.

    A böngészők blokkos elemként jelenítik meg az ebbe a kategóriába tartozó HTML elemeket - lásd HTML elemek listája.

    CSS-el fel lehet ruházni ezzel a megjelenítési móddal a nem blokkos elemeket is.

    Tartalom - content

    Ha külön nem határozzuk meg egy blokkos elem szélességét, és magasságát, az elem 100% széles lesz, vízszintesen teljesen kitölti a rendelkezésre álló helyet. Az elem magasságát a tartalma határozza meg, például a benne lévő szöveg. Tartalom hiányában az elem 0px magasságú.

    A blokkos elemeknek megadhatjuk a szélességégét, magasságát a width és a height CSS tulajdonságokkal, ez felülbírálja az alapbeállításokat, az elem magassága függetlenül méretezhető a tartalmától, szélessége függetlenül méretezhető a rendelkezésre álló helytől.

    Alapestben a böngésző határozza meg a width és height értékét, ez az auto, vagyis a fentebb taglalt elvek alapján számítja a szélességet, és magasságot.

    A szélességnek, és a magasságnak megadhatunk minimum és maximum értéket is:

    A min-height, és min-width CSS tulajdonságokban meghatározott érték alá nem csökken az elem szélessége és magassága (alapértéke 0px).

    A max-height, és max-width CSS tulajdonságokban meghatározott érték fölé nem növekszik az elem szélessége és magassága (alapértéke none, vagyis nincs felső méret korlát).

    Belső margó - padding

    A blokkos elemeknek meg lehet adni belső margót a padding CSS tulajdonsággal, ez felveszi a háttér színét, és belső eltartása hozzáadódik a tartalom szélességéhez és magasságához (alapértéke 0px), a tartalom és az oldal széle között képezve eltartást (úgy kell elképzelni, mint egy hagyományos képkeret esetén a paszpartut a festmény és maga a képkeret között).

    A padding -et megadhatjuk külön külön oldalanként, a padding-top, padding-right, padding-bottom és badding-left CSS tulajdonságokkal:

    Vagy gyorsírásos módszerrel, felsorolhatjuk az összes oldalt is (fentről kezdve az óra járásával megegyező irányban következnek az oldalak):

    Meghatározhatjuk egy érték megadásával az összes oldal padding értékét is, feltételezve, hogy az összes oldal belső margójának mérete megegyezik:

    Keret - border

    A blokkos elemeknek lehet kerete, a keret megjelenik vizuálisan, és hozzáadódik az elem magasságához és szélességéhez. Ha a keretnek vannak átlátszó részei az elem háttere látszódik ezeken a területeken.

    Keret stílus

    A border-style (keret stílus) tulajdonsággal határozhatjuk meg a keret vizuális megjelenését (alapértéke a none, vagyis nincs keret).

    Lehetséges értékei:

    • none, hidden - nincs keret

    • solid - folytonos vonal

    • dotted - pontozott

    • dashed - szaggatott vonal

    A keret stílust is megadhatjuk gyorsírásos formában (fentről kezdve az óra járásával megegyező irányban következnek az oldalak):

    Lehetőség van az összes oldal keretének border-style értékét is beállítani egy értékkel, feltételezve, hogy az összes oldal keret stílusa megegyezik:

    Keret szélesség

    A border-width (keret szélesség) tulajdonságnak az értéke adja a keret vastagságát. Negatív értéket nem vehet fel (alapértéke medium, vagyis közepes).

    A keret szélesség megadható gyorsírásos formában, oldalanként eltérő értékkel (fentről kezdve az óra járásával megegyező irányban következnek az oldalak):

    Egy értékkel meghatározva is megadhatjuk az összes oldal keret szélességét, feltételezve, hogy minden oldalon megegyezik az értéke:

    Keret szín

    A border-color a keret színét határozza meg. Értéke lehet bármely CSS színrendszer szerinti szín (alapértéke felveszi a szövegszínt, vagyis a color tulajdonságban meghatározott színt).

    A keret színt is megadhatjuk gyorsírásos formában (fentről kezdve az óra járásával megegyező irányban következnek az oldalak):

    Meghatározhatjuk egy érték megadásával az összes oldal border-color értékét is, feltételezve, hogy az összes oldal keretének színe megegyezik:

    Gyorsírásos keret

    Gyorsírásos módszerrel megadhatjuk oldalanként a kereteket, ehhez meg kell adnunk a keret színét, stílusát és szélességét szóközökkel elválasztva border-top, border-right, border-bottom vagy border-left CSS tulajdonságokban meghatározva:

    Egy még kompaktabb megoldás, amikor az összes oldal keretét egy border tulajdonságban írjuk le, feltételezve, hogy a keret minden oldalon egyező stílussal színnel, és vastagsággal rendelkezik:

    Külső margó - margin

    A margin, vagy külső margó az elemek közötti eltartást határozza meg. Értéke lehet negatív, ebben az esetben egymásra csúsznak az elemek. Alapértéke 0px.

    A margin esetében is van gyorsírásos variáns, oldalanként külön értékkel (fentről kezdve az óra járásával megegyező irányban következnek az oldalak):

    Be tudjuk állítani egy érték megadásával az összes oldal margin értékét is, feltételezve, hogy az összes oldal margójának mérete megegyezik:

    A margin-nak van egy speciális értéke, ez az auto, vagy automatikus margó, ha ezt vízszintesen, vagyis jobb és, vagy bal oldalt megkapja egy elem, a margója az adott oldalon addig nyúlik, amíg a rendelkezésre álló hely el nem fogy. Ez lehetővé teszi, hogy automatikus margóval balra, középre, vagy jobbra rendezzük a blokkos megjelenítésű elemeket.

    Az auto margin számos CSS megoldás alapját képezi, lásd:

    Alapesetben függőlegesen hatástalan az automatikus margó, ha egy elem margin-top vagy margin-bottom tulajdonságát auto-ra állítjuk, akkor a böngésző azt nullának fogja venni, ez alól kivételt képez a flex (rugalmas) megjelenítési mód, ahol a rugalmas elemekre vertikálisan is alkalmazható az automatikus margó.

    Doboz méretezése - box-sizing

    A box-sizing tulajdonság alapján számolja a böngésző az elemek méretét.

    Két lehetséges értéke lehet, az alapérték a content-box ebben az estben az elem tartalmának szélességéhez, magasságához hozzáadódik a belső margó és a keret szélessége, magassága.

    Sötétebb kékkel a padding, és a border, alapestben ezek hozzáadódnak az elem szélességéhez (fehér nyilakkal jelölve).

    A box-sizing tulajdonság második lehetséges értéke a border-box, amikor a szélességbe, és magasságba beleszámít a belső margó és a keret szélessége, magassága.

    Border-box esetében a padding, és a border nem növeli az elem méretét, befelé képződik (fehér nyilakkal jelölve).

    Ábra

    HTML elemek

    A HTML elemek a weboldalak, és webes alkalmazások építőelemei, ebben a fejezetben ezekből az építőkockákból ismerhetjük meg a legfontosabbakat:

    Gyökérelem

    A html elem az összes többi elem szülője. Ebbe kerül az oldal teljes tartalma.

    Jellemző, hogy az oldalak nyelvét a html elemen a lang (nyelv) tulajdonsággal határozhatjuk meg.

    HTML dokumentum fejléce

    A head a dokumentum fejléce, a dokumentum metaadatait, és egyéb állományokra való hivatkozásokat tartalmaz, ezeket nem jeleníti meg a böngésző vizuálisan (jellemzően ezek általános információk, amit a böngésző program, internetes keresők dolgoznak fel).

    A head elemet közvetlenül a html elemben kell elhelyezni.

    HTML elemek a fejlécben

    Az oldal címe

    A title elemben megadott szöveg azonosítja a HTML dokumentumot, és ez jelenik meg a böngészőablak címsorában. Kötelezően szerepelnie kell a head elemben.

    A title fontos azonosítója az adott oldalnak, az internetes keresők ezt jelenítik meg kiemelve a találati listájukban. Ha lementünk a böngészőnkbe, vagy a számítógépünkre egy weboldal linket, a title alapján jön létre a mentett link neve.

    Az oldal meta adatai

    A meta elemben helyezhetünk el információkat a weboldalunkról (ez nem jelenik meg a látható tartalomban). A meta elemeknek egy name (név) és egy content (tartalom) tulajdonsága van. A name határozza meg a meta információ típusát, a content pedig a hozzá rendelt információt.

    Kivétel a charset amivel az oldal karakter kódolását határozhatjuk meg, ez csak egy charset tulajdonsággal rendelkezik.

    Példák meta információra:

    Linkek

    A link elemmel hivatkozhatunk külső állományokra, ezek egy részét be fogja tölteni a böngésző. A link elemmel köthetünk be például egy CSS állományt a dokumentumunkba.

    Stílus

    A style elemben a HTML dokumentum megjelenését szabályozó stílusokat helyezhetünk el. A style nyitó és záró eleme által közrefogott részen a érvényesek.

    HTML dokumentum törzse

    A body a dokumentum törzse, ezt jeleníti meg a böngésző vizuálisan, ennek az elemnek a gyermeke az összes böngészőben megjelenő elem. A body elemet közvetlenül a html elemben a head elem után kell elhelyezni.

    Szöveges elemek

    Címek

    A HTML dokumentum tartalmát 6 cím mélységig lehet fejezetekre, alfejezetekre bontani, ezt a h1 h2 h3 h4 h5 h6 elemekkel tehetjük meg.

    Bekezdések

    Az oldal szöveges tartalmát bekezdésekben p helyezhetjük el.

    Listák

    Két típusát különböztetjük meg, számozott lista ol, és pontozott lista ul, mindkettőnek gyermekei a lista elemek li.

    Számozott lista:

    Pontozott lista:

    A listákat egymásba is lehet ágyazni, így lehet több szintű listákat létrehozni.

    Képek

    Képeket a HTML dokumentumba az img (kép) elem segítségével tudunk beilleszteni. Két kötelező tulajdonsága van, az src (forrás), ami a behivatkozott kép elérési útvonala, és az alt (alternatív szöveg), a kép tartalmának szöveges leirata.

    Ha a képünk csak dekorációs célokat szolgál, és nem kapcsolódik szorosan a dokumentum szöveges tartalmához, akkor is kötelező az alt tulajdonság, de üresen hagyhatjuk az értékét.

    A képeket a böngésző megpróbálja eredeti méretükben megjeleníteni, amennyiben a megfelelő ablakméret rendelkezésre áll. A width (szélesség) és a height (magasság) tulajdonságokkal ezt felülbírálhatjuk. Ha csak az egyik értéket adjuk meg a böngésző az oldalarányok megtartásával számolja ki a másikat. Az értékek pixelben értendőek.

    Fontos kitölteni a képek alternatív leírását, mert ha a kép nem tud betöltődni ez a szöveg fog megjelenni a felhasználóknak, illetve a gyengén látó felhasználók csak ezt "látják", ezt olvassa fel nekik a szövegfelolvasó programjuk. Az internetes keresők (a szövegkörnyezet mellett) az alt tulajdonság alapján kategorizálják be a honlapokon található képeket (ennek hiányában nem fog megjelenni a kép a képkeresőkben).

    Szövegközi elemek

    A HTML elemekben lévő szöveget szövegközi (inline) elemekkel módosíthatjuk. A szövegközi elemek teljes szöveges blokkok, vagy szövegrészletek megjelenését, viselkedését módosítják.

    A fenti példakódban a bekezdés egyes szakaszai fontosként (<strong>), vagy hangsúlyosként (<em>) vannak megjelölve.

    E helyen fontos megjegyezni a szövegközi elemekkel kapcsolatos korlátozást, hogy szövegközi (inline) elemben nem lehet elhelyezni blokkos (block) elemet, az elemek e módon történő nem szabványos. Például egy b elembe nem kerülhet bekezdés elem (p). Ennek a fejezetnek a végén az itt felsorolt megtaláljuk, hogy mely elemek rendelkeznek blokkos, vagy szövegközi megjelenítési móddal.

    Egyes szövegközi elemek csak vizuális hatást érnek el, egyes elemek jelentésbeni külömbséget is hordoznak. Például a strong elemben található szöveget nagyobb súllyal veszi figyelembe a Google kereső, vagy az em elemben lévő szöveget más hangsúllyal ejtik ki a szövegfelolvasó programok. Ezek az elemek elsősorban a webalkalmazás szövegét feldolgozó programoknak szolgáltatnak fontos információkat.

    Hiperlink

    A hiperlinkek, vagy linkek kattinthatóvá teszik a bennük foglalt szöveget. Linket az a elemmel lehet létrehozni. Van egy kötelező tulajdonsága a href ami azt a címet tartalmazza, amit a böngésző be fog tölteni kattintás esetén. Ez a cím lehet egy másik HTML dokumentum vagy egyéb állomány, internetes cím (URL), vagy e-mail cím.

    A linkek módosítják a szöveg megjelenését is, a böngésző kék szövegszínnel, és aláhúzva jeleníti meg a kattintható szöveget, így könnyű a linkeket felismerni.

    Span

    Van egy szövegközi elem, ami nem hordoz jelentéstartalmat, és nem módosítja a bele foglalt szöveget vizuálisan, ez a span elem (szabad fordításban dirib-darab).

    Felmerül a kérdés, hogy mi az értelme egy elemnek, ami nem ad jelentést konteksztustól függően, és megjelenésben sem okoz érzékelhető változást. Több okból is előnyös lehet: segíti a dokumentum tartalmának strukturálását, illetve CSS segítségével módosíthatjuk a megjelenését.

    Dekorációs elemek

    Sortörés

    A br (sortörés) elem új sorba töri a szöveget, amiben elhelyezzük, úgy hogy a br elem után következő szöveg már új sorba törik.

    Vízszintes vonal

    A hr (vízszintes vonal) elem egy vízszintes vonalat hoz létre. Célja a tartalom tagolása.

    Strukturális elemek

    Általános konténer elem

    A div (csoport, rész) elemmel hozhatunk létre általános gyűjtőelemeket, úgynevezett konténereket. A div nem hordoz semmilyen jelentéstartalmat, és a megjelenése is teljesen semleges, hasonlóan a korábban tárgyalt span elemhez, csak amíg a span szövegközi elem, addig a div blokkos elem.

    Ezzel az elemmel foghatunk össze egy csoportba több elemet (ha úgy tetszik részekre bonthatjuk div elemekkel egy oldal tartalmát). A div-ekben bármilyen tartalom típusú elemet elhelyezhetünk, például címeket, szöveget, listákat, képet, linket, más div-eket, vagy egyéb strukturális elemeket.

    A div szemantikus variációi

    A HTML korábbi verzióiban a div elemet ruháztuk fel szerepekkel a role (szerep) tulajdonság segítségével, ez a lehetőség most is megvan, de megjelentek a HTML5-ben új elemek amik kiváltják ezt az igényt.

    Navigáció

    A nav elem kifejezetten egy weboldalon belüli (aloldalak közötti) navigációra szolgál, így helyezhetünk el benne.

    Bonyolultabb navigáció, például egy weboldal főmenüje esetében a csoportosíthatjuk a nav elemen belül.

    A menü linkek helyezése lehetővé teszi több szintű almenü struktúra létrehozását.

    Fejléc elem

    A header elem használható egy weboldal fejléceként (ebbe kerül például az oldal logója, főmenüje), vagy kisebb tartalmi egységek fejléceként is szolgálhat. Nem összekeverendő a elemmel!

    Fő tartalmi egység

    A main elembe kerül a lényegi tartalom egy oldalon, minden ami nem a tartalommal közvetlenül kapcsolatos (például ), az ezen az elemen kívül helyezendő el. Egy HTML dokumentumban csak egy main elem helyezhető el.

    Másodlagos tartalom

    Másodlagos, a fő tartalomhoz csak kapcsolódó tartalmaz az aside elemben helyezhetünk el. Jellemző, hogy a weboldalak oldalsávjait (sidebar) aside elemekből építjük.

    Lábléc elem

    A footer elem a header elem párja, értelemszerűen vizuálisan a dokumentum (vagy a dokumentum egy alegységének) alján alkalmazandó.

    Szekció

    Egy nagyobb szerkezeti egységet tagolhatunk a section elemekkel kisebb egységekre.

    Cikk

    Az article egy nagyobb összefüggő szöveges tartalmi egység. Egy ilyen tartalmi egység lehet egy blogbejegyzés, hír, recept, fórum hozzászólás, közlemény... Egy HTML dokumentumban több article is lehet.

    Űrlapok

    Az űrlap elem

    Űrlapokat a form elemmel hozhatunk létre, az összes kitölthető űrlap mező (pár kivételtől eltekintve) ebben az elemben helyezendő el. A form elem képes a tartalmát elküldeni a webszervernek.

    A beviteli elem

    Az űrlap mezőit az input (beviteli mező) elemmel hozhatjuk létre. Az input elem viselkedését, kinézetét meghatározza a type (típus) tulajdonsága.

    Címke elem

    Az űrlap beviteli mezőit a label elem látja el feliratokkal. A label elem for tulajdonságában megadott egyedi azonosító összeköti a label-t az azonosítóval ellátott beviteli mezővel. Ekkor ha a címkére kattintunk, a kurzor automatikusan beáll a beviteli mezőbe.

    Ez a kötés létrejön akkor is, ha a beviteli mező a label gyermeke:

    Szövegdoboz

    A textarea hasonló a szöveges beviteli mezőhöz, csak ez egy több soros, és átméretezhető beviteli eszköz.

    A rows és cols (sorok és oszlopok) tulajdonságaival meghatározhatjuk a kiinduló méretét is.

    Lenyíló lista

    A select elem option elemeket tartalmaz, ezek a lenyíló lista választható opciói. Az option elemek közül az lesz az alapértelmezett, amelyik rendelkezik a kiválasztott (selected) tulajdonsággal.

    Táblázatok

    Táblázat

    A table elem a táblázat szülőeleme, a sorokat a tr elemek képzik, az oszlopokat, vagy cellákat a td elemek.

    Minden sorban egyező számú oszlopot kell elhelyezni.

    Táblázat fejléc

    Táblázat cella helyett lehet táblázat fejléc cellát alkalmazni, ez a th elem. A táblázat fejléc cellában lévő tartalom vizuálisan hangsúlyosabban jelenik meg.

    Elavult elemek Az idők során az újabb és újabb HTML verziókban számos korábbi elem került kivezetésre. Jellemzően ennek az oka, hogy a JavaScript, és a CSS átvett bizonyos HTML funkciókat, például a center elem korábban középre rendezte a szöveget, ezt mostmár CSS segítségével végezzük el, hasonló a frame vagy keret, amivel görgethető felületeket lehetett kialakítani az oldalakon. Példák elavult elemekre: acronim, applet, basefont, big, center, dir

    Felsorolt elemek listája

    Színek, színrendszerek

    Hexadecimális - #rrggbb

    RGB szín, 256^3 bit mélységben, amit színenként egy két helyi értékű 16 számrendszerben kifejezett szám ad meg. (16*16=256)

    Hexadecimális rövid - #rgb

    Mint a hexadecimális, csak kevesebb árnyalatot tartalmaz, 256^3 helyett csak 16^3 eltérő árnyalatot lehet kifejezni vele. Hexadecimális színek közül azokat, amelyeknél egy szín két helyi értéke egyezik.

    #000000 = #000 #777777 = #777 #112233 = #123 #ffffff = #fff

    RGB színek - rgb(r, g, b)

    Megadhatjuk a színeket direkt rgb értékük alapján, vagy egy 0-255 ig terjedő számmal, vagy százalékosan is.

    RGBA színek - rgba(r, g, b, a)

    Hasonló mint az RGB, de itt van egy alfa csatorna is, ami meghatározza a szín átlátszóságát, az alfa csatorna értéke egy 0 és egy közötti szám, tört érték esetén részleges az átlátszóság.

    HSL színek - hsl(h, s, l)

    HSL (Színezet telítettség fényesség) alapú színrendszer, az első értéke 0 -től 360 -ig terjedő szög érték, ami a HSL színkörön jelöl ki egy színt, második értéke a telítettség, harmadik a világosság, ez a kettő százalékos.

    HSLA színek - hsla(h, s, l, a)

    Itt is van alfa csatorna mint az RGBA esetében.

    Kulcsszavas színek

    Színeket megadhatunk a nevük alapján is, kulcsszavas formában. A modern böngészők 140 kulcsszavas színt támogatnak.

    Átlátszó

    A transparent (átlátszó) kulcsszóval adhatunk meg (teljesen) átlátszó színt.

    Rangsor

    Mi az a rangsor?

    Egy elemre jellemzően több CSS szabály is vonatkozhat, amik felülbírálhatják egymást, a böngészők rangsorolással döntik el, hogy mely szabály lesz érvényes az adott elemre (melyik az erősebb).

    Eredet

    Három forrásból származhat stílus: A böngésző alapértelmezett készlete, a felhasználó által definiált, és a webalkalmazás saját CSS-e, ez utóbbi felülbírálja a többit.

    A User agent CSS a böngésző alapértelmezett formázásai egy alapot adnak a weboldalak tartalmának, így az minden nemű stílus formázás nélkül is értelmezhető lesz, ez a leggyengébb, legegyszerűbben felülírható stílus. A felhasználó által definiálható Reader CSS valamivel erősebb, de mindkettőt felülbírálja a webalkalmazások saját CSS stílusai, az Author CSS.

    Sorrend

    A korábbi szabályokat felülírják a későbbiek. Minél később található a kódban egy stílus, annál erősebb. Ez az állományok bekötési sorrendjére is érvényes.

    Szűkítés

    4 szinten hoz létre minden szabály alapján a böngésző egy rangsort, a magasabb értékkel rendelkező szabály fog érvényesülni, felülbírálva a sorrendet. A szűkítés értékét a kijelölő alapján határozza meg a böngésző.

    A szűkítés értékei összeadódnak, és a kapott érték alapján a rangsorolja a böngésző a CSS szabályokat. Ezek nem helyi értékek, egy darab egyedi azonosító a kijelölőben bármennyi osztályt felülbírál.

    A szűkítésnél megfigyelhetjük, hogy a kijelölők súlyozása az általánostól egyre erősödik a specifikusabb, szűkebb kijelölők felé. Leggyengébb az általános kijelölő, ami minden elemre vonatkozik, legerősebb az azonosító kijelölő, ami csak egy bizonyos elemre.

    A HTML elemen a style tulajdonságban elhelyezett szövegközi stílusok erősebbek a többi stílusnál, szűkítési értékük mindig 1.0.0.0, ezt a CSS állományban, elhelyezett CSS nem tudja felülbírálni (kivételt képez a következő fejezetben tárgyalt fontosság).

    Fontosság (!important)

    !important jelöléssel ellátott szabály mindig erősebb a nem important szabálynál, két important közözött a további rangsorolási szabályok érvényesülnek. Az fontosság felülbírálja az eredetet, a sorrendet, és a szűkítést is.

    Az !important jelölés ismételt használata egy idő után nehezen olvashatóvá teszi a kódot a szűkítés folyamatos felülbírálása miatt, ezért használata kerülendő, csak akkor érdemes használni, ha minden más lehetőséget kimerítettünk.

    Mértékegységek

    Százalék

    A legtöbb értéket megadhatjuk százalékban, hosszmértékként értelmezve ezt általában a szülő konténer mérete alapján számolja a böngésző.

    Képpont - pixel

    Tekinthetjük alap mértékegységnek, egy képpontja a magjelenítő eszköznek. A böngészők minden egyéb hosszmértéket erre számítanak át. Ez eltérhet a nagyobb képpont sűrűségű eszközökön, például retina eszközön egy pixel egy 3*3 képpontos négyzet.

    Tipográfiai mértékegységek

    A tipográfiai mértékegységek jellemzően egy bizonyos betű magasságát veszik egy egységnek.

    Em - M magasság

    A nagy M betű magassága alapján számolja a távolságokat. Ez a legelterjedtebb tipográfiai mértékegység. A szülőhöz képest állítja be a fontméretet, ha a szülőnek 2em a font mérete, a gyermeknek pedig 1em, a szülő és a gyermek számított font mérete megegyező lesz.

    Rem - Relatív M magasság

    Az em párja, de ez nem öröklődik, a body fontmérete alapján számítja ki a böngésző.

    Egyéb tipográfiai mértékegységek

    Ex

    Az ex a kis x magassága alapján számolt egység, az em érték fele pixelben

    ch

    A ch a 0 karakter szélessége alapján számolt egység.

    Fizikai hosszmértékek

    A méreteket megadhatjuk fizikai kiterjedés alapján, ez a HTML dokumentum nyomtatása estén használatos.

    cm - centiméter mm - miliméter in - incs pc - nyomdai pica pt - nyomdai pont

    Képernyőméret

    Képernyőmező szélesség - viewport width

    A vw egy egysége a képernyő szélességének századrésze. vagyis egy 100vw szélességű elem a képernyő teljes szélességét kitölti.

    Képernyő magasság - viewport height

    A vh egy egysége a képernyő magasságának századrésze. vagyis egy 100vh magasságú elem a képernyő teljes szélességét kitölti.

    Kisebb képernyő dimenzió - viewport min

    A vmin egy egysége a vh és a vw értéke közül a kisebbel lesz egyenlő.

    Nagyobb képernyődimenzió - viewport max

    A vmax egy egysége a vh és a vw értéke közül a nagyobbal lesz egyenlő.

    Idő

    Animációk, átmenetek vagy hang időzítése esetén az időfaktor beállítására használhatjuk.

    Szögek

    Elemek forgatása esetén használatos mértékegységek:

    deg - fok grad - újfok (derékszög század része) rad - radiáns turn - teljes fordulat (360°)

    h1 {
        color: red;
    }
    * {
        color: red;
    }
    li {}
    <p>Lorem ipsum dolor sit amet.</p>
    <p>Consectetur adipiscing elit.</p>
    p {
        color: red;
    }
    h1,
    h2,
    h3,
    h4,
    h5,
    h6 {
        color: red;
    }
    <p class="first-paragraph">Lorem ipsum dolor sit amet</p>
    .first-paragraph {
        color: red;
    }
    <div class="osztaly-1 osztaly-2 osztaly-3">...</div>
    <p id="introduction">Lorem ipsum dolor sit amet</p>
    #introduction {
        color: red;
    }
    <section>
        <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>
    </section>
    <p>Aenean et nunc nec ligula condimentum luctus et a urna.</p>
    section p {
        color: red;
    }
    <section>
        <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>
        <div>
            <p>Aenean et nunc nec ligula condimentum luctus et a urna.</p>
        </div>
    </section>
    section p {
        color: red;
    }
    header .main-title h1 span {
        color: red;
    }
    <div class="parent">
        <div class="child">
            Lorem ipsum dolor sit amet, consectetur adipiscing elit.
        </div>
    </div>
    .parent > .child {
        color: red;
    }
    p > span {
        color: red;
    }
    <p>Lorem ipsum dolor sit, amet consectetur adipisicing elit.</p>
    <p>Doloremque impedit laborum eum ad fugiat.</p>
    <p>Error quam voluptatibus sequi dolore iure corrupti ab.</p>
    p + p {
        color: red;
    }
    a:hover {
        color: red;
    }
    <ul>
        <li>Első elem</li>
        <li>Második elem</li>
        <li>Harmadik elem</li>
        <li>Negyedik elem</li>
        <li>Ötödik, vagy utolsó elem</li>
    </ul>
    li:first-child {
        color: red;
    }
    
    li:nth-child(3) {
        color: green;
    }
    
    li:last-child {
        color: blue;
    }
    p:before {
        content: "";
    }
    
    p:after {
        content: "";
    }
    p:before {
        content: "Lorem ipsum dolor...";
    }
    
    div:before {
        content: url('ribbon.png');
    }
    <h1>Lorem Ipse</h1>
    h1:before,
    h1:after {
        content: " - ";
    	color: red;
    }
    <a href="fontos.html">Fontos információ!<a>
    <p style="color: blue; font-size: 1.5em;">Lorem ipsum dolor sit amet</p>
    <style>
        p {
            font-size: 1.5em;
        }
        
        p.blue {
            color: blue;
        }
    </style>
    <link rel="stylesheet" type="text/css" href="style.css">
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <title>Document</title>
        <link rel="stylesheet" href="style.css">
    </head>
    <body>
    ...
    @import url('style.css');
    /*
        Ez egy megjegyzés.
    */
    h1 {
        color: red;
    }
    h1,
    h2,
    h3,
    h4 {
        color: red;
    }
    h1 span {
        color: blue;
    }
    p {
        color: #323232;
        font-size: 1.25em;
        line-height: 1.125em
    }
    p {
        margin: 10px auto 15px auto;
        padding: 0px 5px;
        font: small-caps italic bold 16px Helvetica;
    }
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" ".../xhtml1-transitional.dtd">
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" ".../xhtml1-strict.dtd">
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" ".../xhtml1-frameset.dtd">
    <!DOCTYPE html>
    <!-- Ez egy megjegyzés -->
    <ul>
        <li>Alma</li>
        <!--<li>Körte</li>-->
        <li>Barack</li>
    </ul>
    <elem tulajdonsag="ertek">tartalom</elem>
    <ul>
        <li>Ez egy lista elem</li>
        <li>Ez egy másik lista elem</li>
        <li>Ez pedig egy harmadik!</li>
    </ul>
    <br> <!-- Sortörés -->
    
    <hr> <!-- Vízszintes vonal -->
    
    <img src=kep.jpg> <!-- Kép -->
    <elem tulajdonsag="ertek">tartalom</elem>
    <h1 id="main-title">Ez a főcím</h1>
    <p class="red">Én a pirosak közé tartozom?</p>
    <p class="blue">Igen, én kék vagyok, de ettől még lehetünk barátok...</p>
    <input type="text">      <!-- Szövegbeviteli mező -->
    <input type="button">    <!-- Gomb --> 
    <input type="checkbox">  <!-- Pipa --> 
    <input type="password">  <!-- Jelszó -->
    <img 
        src="images/kutya.jpg"
        title="Alvó labradorkölyök"
        alt="A képen egy 6 hetes alvó labradorkölyök látható.">
    index.html
    <!DOCTYPE html>
    <html lang="hu">
        <head>
            <meta charset="UTF-8">
            <title>Helló Világ!</title>
        </head>
        <body>
            <h1>Helló Világ</h1>
        </body>
    </html>
    span {
        display: block;
    }
    <html>
        <!-- Ide kerül az oldal tartalma -->
    </html>
    <html lang="hu">
    #000000; /* Fekete */
    #808080; /* 50%-os szürke */
    #ffffff; /* Fehér */
    
    
    #ff0000; /* Vörös */
    #00ff00; /* Zöld */
    #0000ff; /* Kék */
    div {
        width: 60%;
        height: 60%;
        right: 20%;
        top: 20%;
    }

    Kép úsztatása szövegben

    div {
        font-size: 18px;
        width: 350px;
        padding: 30px 25px;
    }
    p {
        font-size: 1em;
        line-height: 1.2em;
    }
    p {
        font-size: 1rem;
        line-height: 1.2rem;
    }
    .container1 {
        width: 55vw;
        height: 66vh;
    }
    
    .container2 {
        max-width: 99vmin;
        width: 20vmax;
    }
    transition: all 0.3s ease 0.1s;

    double - dupla vonal

  • outset - kiemelkedő

  • inset - süllyesztett

  • groove - bemélyített

  • ridge - kidomborodó

  • Középre rendezés
    Konténer középre rendezése
    A belső margó a tartalom, és az elem széle között képez eltartást.
    A belső margón kívül helyezkedik el a keret (jelen esetben vörös színnel).
    Oldalanként eltérő keret szín.
    Ebben a példában a gyermek elem margója függőlegesen szétnyomja a szülő elemet.
    Ebben a példában a bal oldali auto margin jobbra tolja az elemet.
    A bal és jobb oldali auto margin vízszintesen középre rendezi az elemet.
    ,
    font
    ,
    frame
    ,
    frameset
    ,
    isindex
    ,
    layer
    ,
    menu

    none

    link

    Link

    none

    style

    Style information

    none

    body

    Document body

    block

    h1 h2 h3 h4 h5 h6

    Heading

    block

    p

    Paragraph

    block

    ul

    Unordered list

    block

    ol

    Ordered list

    block

    li

    List item

    list-item

    a

    Hiperlink

    inline

    img

    Image

    inline

    b

    Bold

    inline

    strong

    Strong

    inline

    i

    Italic

    inline

    em

    Emphasis

    inline

    small

    Small text

    inline

    time

    Time

    inline

    sup

    Superscript

    inline

    sub

    Subscript

    inline

    s

    Strikethrough

    inline

    span

    Span

    inline

    br

    Break line

    inline

    hr

    Horisontal line

    block

    div

    Division

    block

    nav

    Navigation

    block

    header

    Header

    block

    main

    Main content

    block

    aside

    Aside

    block

    footer

    Footer

    block

    section

    Section

    block

    article

    Article

    block

    form

    Form

    block

    input

    Input field

    inline-block

    textarea

    Text area

    inline-block

    button

    Button

    inline-block

    label

    Label

    inline

    table

    Table

    table

    tr

    Table row

    table-row

    td

    Table cell

    table-cell

    th

    Table cell header

    table-cell

    meta name

    Leírás

    description

    Rövid leírás az oldalról

    keywords

    Az oldalhoz kapcsolódó kulcsszavak

    author

    Az oldal szerzője

    viewport

    Utasítás a böngészőnek az oldal megjelenítésének módjáról

    elem

    leírás

    b

    Vastagon szedett szöveg, szemantikus jelentése nincs.

    strong

    Fontos szövegrészlet, vastagon jelenik meg.

    i

    Dőlt betűs szöveg, szemantikus jelentése nincs.

    em

    Hangsúlyos szöveg, dőlt betűvel jelenik meg.

    mark

    Megjelölt szöveg, sárga háttérrel jelenik meg

    elem

    leírás

    small

    Csökkenti a font méretet.

    time

    Időt, dátumot jeleníthetünk meg vele.

    sup

    Felső index, megemeli a szöveget

    sub

    Alsó index, lesüllyeszti a szöveget

    s

    Elavult információt jelöl, vonallal áthúzva jelenik meg.

    Elem

    Hosszú név

    Megjelenítési mód

    html

    Root element

    block

    head

    Document header

    none

    title

    Title

    none

    meta

    CSS
    CSS nyelv szabályai
    Kódpélda
    egymásba ágyazása
    elemek listájában
    Kódpélda
    linkeket
    linkeket
    lista elemekben
    listába
    head
    navigáció

    Metadata

    HSL színkör, minden színárnyalathoz tartozik egy konkrét 0-tól 360-ig terjedő szög érték.
    HSL színrendszer egy lehetséges modellje, a színgömb.

    Kijelölő típusa

    Súlyozás értéke

    Szövegközi stílusok

    1.0.0.0

    Egyedi azonosító kijelölő

    0.1.0.0

    Osztály kijelölő, álosztály

    0.0.1.0

    Elem kijelölő

    0.0.0.1

    Általános kijelölő

    0.0.0.0

    kijelölője

    Háttérszínek, háttérképek

    Háttérszín

    A background-color segítségével színt adhatunk elemeink hátterének. Átlátszó szín esetén az elem mögött lévő elemek is (részlegesen) látszódni fognak. A háttérszín az elem teljes hátterét kitölti, látható a belső margó (padding), és a keret átlátszó része alatt (border). Alapértéke a transparent, vagyis átlátszó.

    Háttérkép

    A background-image értékeként egy kép elérési útvonalát adhatjuk meg, url('elérési útvonal') formában. A kép valós méretében jelenik meg az elem hátterében. Alapértéke a none, vagyis nincs.

    Háttérkép ismétlődése

    A background-repeat segítségével szabályozhatjuk a háttérkép ismétlődését.

    Értékei:

    • no-repeat - nincs ismétlődés

    • repeat - ismétlődés (ez az alapérték)

    • repeat-x - ismétlődés csak vízszintesen

    • repeat-y

    Háttérkép helyzete

    A background-position a kép helyzetét határozza meg vízszintesen, és függőlegesen.

    Megadhatjuk kulcsszavakkal, ezek:

    • center - középen

    • top - fent

    • bottom - lent

    • left - balra

    Két értéket is megadhatunk első a vízszintes, második a függőleges helyzetet adja meg.

    Hosszértéket, vagy százalékot is felvehet, ebben az esetben a bal felső sarok lesz az origó (innen eltolva jelenik meg a kép).

    Háttérkép méretezése

    A background-size határozza meg, hogy az elem hátterének mekkora hányadát fedje a háttérkép. Alapértéke az auto vagyis a kép eredeti méretében jelenik meg.

    Megadhatjuk hosszmértékben a méretet, például pixelben, vagy százalékban, ami az elem méretéhez képest értendő.

    Kulcsszavas értékei:

    • auto - eredeti méret (alapérték)

    • cover - a háttérkép teljesen lefedi az elemet

    • contain - a kép addig növekszik, amíg vízszintesen, vagy függőlegesen be nem tölti az elemet.

    Gyorsírásos háttér

    A background gyorsírásos forma, amivel egy menetben több háttér jellemzőt is megadhatunk.

    Többszörös háttérkép

    Egy HTML elemnek meg lehet adni több háttérképet is, ehhez vesszővel (nem pontosvesszővel) elválasztva kell a háttérképeket felsorolni:

    A background-image tulajdonsághoz hasonlóan a további háttér beállításokat is megadhatjuk képenként, szintén vesszővel elválasztva:

    Hasonlóképpen működik a background gyorsírásos CSS tulajdonság:

    A fenti példában háttérképenként új sorba van törve a kód, ez nagyban könnyíti az olvashatóságot.

    Ha több háttérképet állítunk be egy HTML elemnek, előfordulhat, hogy kitakarják egymást, mindíg a sorrendben korábban megadott kép fog rálapolódni a később megadott képre (az elsőnek megadott kép lesz legfölül, az utolsónak megadott kép legalul).

    Középre rendezés

    Vízszintes középre rendezés külső margóval.

    A következő technikával blokkos megjelenítésű elemeket lehet a szülő elemükben középre rendezni. A vízszintes középre rendezéshez auto értéket kell beállítani a jobb és bal oldali margin (külső margó) tulajdonságnak.

    div {
        margin-left: auto;
        margin-right: auto;
    }

    Az elem szélességét is szükséges megadni, ez lehet relatív szélesség (százalék, vagy viewport), vagy fix érték például pixel (ha nincs megadva szélesség az elem teljesen kitölti a szülő elemet).

    Ez a technika csak működik, display: inline (szövegközi) elemekre hatástalan (nincs külső margójuk).

    A technika úsztatott elemek esetében nem működik.

    Szövegek, szövegközi elemek

    Szövegközi elemek jellemzői

    A szövegközi elemek nem törik meg a szöveget sortöréssel, egyszerűen úgy viselkednek, mint egy szó, vagy mondat.

    A strong elem szövegközi elem lévén több sorba törik.

    A szövegközi megjelenítésű elemekre nem érvényesülnek a doboz modell tulajdonságok. Nem határozhatjuk meg a szélességüket, és a magasságukat, illetve nem működik a margó.

    A padding (belső margó), és a border (keret) használható, a blokkos elemektől némileg eltérő módon.

    CSS-el megváltoztathatjuk az elemek megjelenítési módját szövegközire:

    Betűtípusok, betűcsaládok

    Betűcsalád (font-family)

    Betűcsaláddal határozhatjuk meg az elemeink szövegének a betűtípusát. Vesszővel elválasztva több betűtípust is megadhatunk, ezeket sorrendben megpróbálja betölteni a böngésző, ha az elsőt nem találja, megkísérli a következőt.

    A fenti példában az első az Arial betűtípus, ami "minden" Windows-os gépen megtalálható, a második a Helvetica, ami nagyon hasonlít az Arial betűtípusra, de OSX operációs rendszeren elterjedt. A sans-serif általános betűcsalád (generic-family), a böngésző az ebbe a kategóriába eső elérhető fontok közül próbál egyet betölteni.

    Több font felsorolásával, és általános betűcsalád megadásával biztosíthatjuk, hogy a böngésző kezelni tudja a szöveg betűtípusát, hiányzó fontok esetén is.

    Általános betűcsaládok:

    • serif

    • sans-serif

    • cursive

    • monospace

    Web biztos fontok

    Web biztos fontok azok a betűkészletek, amik széles körben elérhetőek a különböző operációs rendszereken. Az első nagyobb csomagot a Microsoft adta ki 1996-ban Core fonts for the Web néven.

    Az alábbi fontokat tartalmazza: Andalé Mono, Arial, Arial Black, Comic Sans MS, Courier New, Georgia, Impact, Times New Roman, Trebuchet MS, Verdana, Webdings

    @font-face

    A @font-face segítségével mi is létrehozhatunk betűcsaládokat, és betölthetünk betűkészleteket a HTML állományainkba. Ehhez szükséges a böngészők számára is emészthető fontok (webfontok) használata.

    Az interneten elérhetőek @font-face generátorok, ezekkel egy adott fontból elkészíthetjük a böngészőkkel kompatibilis font állományokat, a webfontokat, és a szükséges CSS-t is. A legismertebb szolgáltatás a Font Squirrel (). Egy jó alternatíva a Transfonter (). Mindkét szolgáltató a letölthető állományok között ad egy HTLM állományt töltelékszöveggel, amiben megnézhetjük a generált fontokat.

    Ha nem akarjuk mi kiszolgálni a font állományokat egy jó ingyenes alternatíva a Google font szolgáltatása (), ahol 500 fölötti fontot érünk el magyar ékezettel.

    Font formátumokról:

    EOT (Embedded Open Type) - Az első webfont, de a böngészők közül csak a Microsoft Explorer/Edge böngészők támogatják. Már csak akkor használjuk, ha a webalkalmazásokat régi, elavult Microsoft böngészőkre is optimalizálni kell.

    TTF (True Type Font) - Egy időben ez volt a legszélesebb körben támogatott webfont, bizonyos újabb böngészőkben feltételes a támogatottsága.

    WOFF (Web Open Font Format) - Új webfont formátum, ami gyorsabb letöltődés tesz lehetővé, a régi típusokhoz hasonló, de optimalizált, tömörített formátum. A modern böngészők már mind támogatják.

    Betűméret (font-size)

    A betűmérettel határozhatjuk meg a szöveg méretét. A böngészők a nagy M betű alapján méretezik a betűket (em méret), ezért az elterjedt mértékegységek a em, és a rem, illetve a pixelben megadott méret.

    Betűvastagság (font-weight)

    A font-weight-et (betűvastagságot) megadhatjuk kulcsszóval, vagy számmal (100-as lépésekben). Az hogy az adott érték érvényesül-e a szövegre nagyban függ az adott betűtípustól.

    Használható kulcsszavak: normal, bold, bolder, lighter Használható számértékek: 100-900 -ig, ahol a 400 a normal méret, 700 a vastagon szedett (bold).

    Az hogy mely betű vastagság értéket lehet használni függ az adott fonttól. A legtöbb webfont, vagy rendszerfont a 400-as (normal), és a 700-as (bold) értékekeket támogatja csak.

    Betűstílus (font-style)

    A betűstílussal tehetünk dőltté egy szöveget. Alapértéke a normal, a dőlt értékei italic vagy oblique.

    Betűvariáns (font-variant)

    Betűvariáns segítségével készíthetünk kiskapitális szöveget. A kiskapitális szövegben a kisbetűk is olyan alakúak, mint a nagybetűk, de magasságuk megegyezik a kisbetűk magasságával (bizonyos betűtípusoknál eltérhet). Alapértéke a normal.

    Szöveg igazítás (text-align)

    A text-align segítségével lehet igazítani egy blokkos elemen belül a szöveget vízszintesen.

    Lehetséges értékei:

    • left: balra igazítás

    • right: jobbra igazítás

    • center: középre igazítás

    • justify: sorkizárt

    Szöveg díszítés (text-decoration)

    A text-decoration-al húzhatjuk át, vagy alá a szöveget.

    Lehetséges értékei:

    • none: nincs dekoráció

    • underline: aláhúzás

    • overline: föléhúzás

    • line-trought: áthúzás

    Szöveg behúzás (text-indent)

    A text-indent a bekezdés első sorában behúzást hoz létre. Negatív értéke is lehet, aminek hatására ki fog lógni az elemből az első sor. Megadhatjuk százalékban is, de inkább jellemző az em, vagy a pixeles értékadás. Alapértéke 0 (nincs behúzás).

    Szöveg transzformáció (text-transform)

    A text-transform-al csupa kis vagy nagybetűssé változtathatunk egy szöveget attól függetlenül, hogy a HTML állományban hogy szerepel.

    Értékei:

    • none: nincs

    • capitalize: szóeleji nagybetű

    • uppercase: csupa nagybetű

    • lowercase: csupa kisbetű

    Sormagasság (line-height)

    A line-height határozza meg a szöveg két sora közötti távolságot. Alapértéke normal, megadhatjuk százalékban, vagy hosszmértékben.

    A tartalom terület (vörös vonalakkal határolva a fenti képen) a nagy M-betű magasságával egyező magasságú, gyakorlatban ez a font mérete (tipográfiában a verzál magasság, ezen túlnyúlhatnak a betűk fel- és lenyúló szárai). A szövegközi mező magassága a sormagasság (kék vonalakkal határolt terület a fenti képen).

    A tartalom terület és a szövegközi mező külömbsége a sortávolság (adott esetben negatív értéket is felvehet) - vonjuk ki a line-height (sormagasság) értékéből a font-size (betűméret) értékét, így megkapjuk a két sor pontos távolságát.

    Szóköz (word-spacing)

    A word-spacing határozza meg a szavak közötti távolságot. Alapértéke a normal, ez nullával egyenlő, a módosított értéke a betűtípus szóköz karakterének szélességét módosítja, akár negatív irányban is, ekkor egymásra csúsznak a szavak.

    Betűköz (letter-spacing)

    A letter-spacing (betűköz) határozza meg a betűk karaktermezői közötti távolságot. Alapértéke a normal, ezt módosíthatjuk hosszmérték megadásával. Értéke lehet negatív, ebben az esetben a betűk közelebb kerülnek egymáshoz.

    Rugalmas dobozok

    Mi az a rugalmas dobozok

    A Flexbox, vagy rugalmas dobozok egy lineáris elem rendezési metódus. Egy konténer elemeit lehet vele sorba, vagy oszlopba rendezni. Az elemek méretét, helyzetét, sorrendjét rugalmasan szabályozhatjuk. Ehhez a konténer megjelenítés (display) értékét kell flex-re állítani:

    Rugalmas irány - flex-direction

    A flex-direction CSS szabállyal adhatjuk meg a rugalmas elemek rendeződésének ​ fő irányát (fő tengely).

    Sor - row

    Sorba rendezve az elemek vízszintesen rendeződnek egy sorba, és sorrendben balról jobbra következnek eymás után. Ez az alapértelmezett beállítás.

    Fordított sor - row-reverse

    Ugyanaz mint a sor, csak az elemek jobbról balra rendeződve jönnek egymás után a sorrendjük szerint.

    Oszlop - column

    Az elemek függőleges oszlopba rendezve jelennek meg, sorrendjük szerint fentről lefelé.

    Fordított oszlop

    Ugyanúgy mint az oszlop esetében, a fordított oszlopban nis függőlegesen rendezve jelennek meg az elemek, de a sorrendjük szerint lentről fölfelé alakul a sorrendjük.

    Rugalmas törés - flex-wrap

    A flex-wrap szabályozza az elemek több sorba törését. Ha nincs törés, az elemek összenyomódnak, és arra törekednek, hogy elférjenek egy sorban.

    Nincs törés - no-wrap

    Alapesetben az elemek egy sorban helyezkednek el, és rugalmasan összenyomódnak.

    Törés - wrap

    A törés engedélyezése esetén, ha elfogy az elemek helye egy sorban, akkor új sorba törnek.

    Fordított törés - wrap-reverse

    A elemeink törhetnek még fölfelé is.

    Tartalom rendezése - justify-content

    A justify-content határozza meg, hogy merre rendeződjenek az elemek a rugalmas konténerben, illetve hogy a közöttük lévő térközöket hogyan számolja ki a böngésző.

    Némi hasonlóságot mutat a szöveg rendezéssel (text align) csak itt nem szövegsorokat rendezünk balra, vagy jobbra, esetleg középre, hanem rugalmas elemeket.

    Kezdőponthoz rendezés - flex-start

    Végponthoz rendezés - flex-end

    Középre rendezés - center

    Eltartás az elemek közé - space-between

    Eltartás az elemek közé - space-around

    Egyenlő eltartás - space-evenly

    Elemek igazítása - align-items

    ...

    Sorok, oszlopok igazítása - align-content

    ...

    Rugalmas elemek tulajdonságai

    ...

    Sorrend - order

    ...

    Rugalmas nyúlás - flex-grow

    ...

    Rugalmas összehúzódás - flex-shrink

    A flex-shrink tulajdonság határozza meg, hogy a többi elemhez képest mekkora mértékben húzódjon össze az adott elem.

    Önigazítás - align-self

    Az align-self ugyan úgy működik, mint az align-items (), csak ez egyetlen elemre vonatkozik.

    Ábra

    @media

    A @media direktíva a megjelenítő eszköz típusa, és tulajdonságai alapján léptet életbe CSS szabályokat.

    Segítségével eltérő kinézetet valósíthatunk meg eltérő képernyőfelbontásokon, vagy eszközökön.

    Megjelenítő eszköz típusa (media types)

    A közvetlenül a @media kulcsszó után kell megadni. Lehetséges értékei:

    • all - minden típus

    • print - nyomtatás

    • screen - kijelző

    • speech - felolvasóprogram

    Nem kötelező megadni, ebben az esetben az alapértéket, az all-t veszi fel.

    A fenti példában a bekezdések színe képernyőn vörös, kinyomtatva viszont fekete színű lesz.

    Megjelenítő eszköz tulajdonsága (media features)

    Megjelenítő eszköz szélesség alapján

    Mobil eszközök esetén ez a megjelenítő eszköz szélessége, asztali böngésző esetén a böngésző ablaka mérvadó.

    Megjelenítő eszköz magasság alapján

    Megjelenítő eszköz orientációja alapján

    ...

    További eszköz tulajdonságok

    Reszponziv webalkalmazások építéséhez az eddig felsorolt eszköz tulajdonságok bő eszközkészletet biztosítanak, de rajtuk kívül még további tulajdonságok is elérhetőek. További példák:

    • aspect-ratio - képernyő arány

    • resolution - pixel sűrűség (retina)

    • color - megjelenítő eszköz színei

    • monochrome - monokróm e a kijelző

    Logikai operátorok

    not (nem)

    A not operátorral megfordíthatunk egy @media direktívát.

    Ebben a példában minden eszköz típusra, ami nem print érvényes CSS szabály.

    and (és)

    Az and operátorral összekapcsolhatjuk az eszköztípusokat és jellemzőket, így több szabálynak kell megfelelnie az adott eszközön, hogy érvénybe lépjen a @media-ba foglalt CSS.

    A fenti példában média típust, és média tulajdonságot is megadtunk.

    , (vagy)

    A , operátorral több eszköz szabályt is megadhatunk, ha egy közülük érvényes, a @media direktívában lévő CSS szabály(-ok) érvénybe lépnek.

    Ebben a példában 100px alatt és 200px felett is érvényesül a CSS.

    Úsztatás

    Úsztatás (float)

    Az úsztatott elemek a tartalmazó konténerük felső sarkába igyekeznek, az úsztatás irányában. Az előttük lévő tartalom alá úsznak be, az utánuk következő tartalom pedig körülfolyja őket.

    Az úsztatott elemek nem hoznak létre sortörést, és nem tolják szét a tartalmazó konténerüket.

    Ha nincs közöttük nem úsztatott elem vízszintesen egy vonalba rendeződnek az úsztatás irányának megfelelően.

    Úsztatott elemek viselkedése szövegben.

    Az úsztatott elemeket a szöveges tartalom, és a szövegközi elemek körbefolyják, körbeveszik.

    Úsztatott elemek egymásra gyakorolt hatása

    Az úsztatott blokkos elemek megpróbálnak egy sorba rendeződni, ezt úgy kell elképzelni, mintha betűk, vagy szavak lennének egy szövegben. Nem képeznek sortörést, és nem tolják szét az őket tartalmazó elemeket függőlegesen, így ezeknek az elemeknek be kell állítani a magasságát, vagy egyéb módon kell gondoskodni arról, hogy ne 0 legyen a magasságuk.

    Úsztatás törése (clear)

    A clear értékkel rendelkező elem mellé nem kerülhet úsztatott elem (abban az esetben sem, ha maga úsztatott elem). Beállíthatjuk, hogy csak az elem bal, vagy jobb oldalán left, right, vagy mindkét oldalán both akadályozza az úsztatott elemeket. Alapérték a none, vagyis nincs.

    Úsztatott elemek törése

    Aránytartó téglalap, négyzet

    A CSS alapesetben nem kínál fel lehetőséget arra, hogy oldal arányait rugalmasan, reszponzív módon tartó téglalapot, vagy négyzetet hozzunk létre. A szélesség meghatározására számos lehetőségünk van, ha rugalmas felületeket akarunk létrehozni, a százalékos szélesség megadás egy optimális lehetőség, de a magasságot nem lehet úgy százalékosan megadni, mint a szélességet.

    Fix méretű négyzetet egyszerűen készíthetünk, ha a szélességét és magasságát pixelben adjuk meg:

    .square {
        width: 250px;
        height: 250px;
    }

    Ez nem egy reszponzív megoldás, és ha megpróbáljuk százalékos értékkel helyettesíteni a szélességet, és a magasságot, az elem magassága 0 lesz.

    .square {
        width: 50%;
        height: 50%; /* ez nem működik :( */
    }

    A magasság helyett használjuk a padding-bottom (alsó belső margó) tulajdonságot, az elem szélességével megegyező százalékos méretben.

    .square {
        width: 50%;
        padding-bottom: 50%;
    }

    Ha átméretezzük a böngésző ablakát a négyzet megtartja az arányait, és a böngésző ablak szélességétől függően méreteződik át.

    Elegánsabb megoldás, ha álelemet használunk, ebben az esetben egyenlő arányú oldalaknál 100% padding-bottom-ot kell megadni:

    Ha eltérő oldalarányt szeretnénk (téglalapot, nem négyzetet) módosítsuk a padding százalékos értékét az aránynak megfelelően.

    Pozicionálás

    Dokumentumfolyam

    A dokumentumfolyam az elemek sorozata, ennek a sorozatnak a sorrendje alapján rajzolja ki a böngésző a HTML elemeket.

    A pozicionálás az elemek a böngésző által, a dokumentumfolyam alapján meghatározott eredeti helyét módosítja. Az elem pozicionálásának típusát a position CSS tulajdonsággal lehet beállítani.

    Statikus pozíció (static)

    Ez az alapállapot, ebben az estben az elem statikus, nem változik a pozíciója (nincs pozicionálva).

    Eltolás

    A nem statikus helyzetű elemek helyzetét tudjuk módosítani a következő tulajdonságokkal:

    • left - eltolás balról

    • right - eltolás jobbról

    • top - eltolás fentről

    Az eltolás alapértéke auto ez nem befolyásolja az elem helyzetét. Megadhatjuk hosszmértékben, vagy százalékban. Százalékos érték esetén a pozicionálás típusától függő (szülő-)elem mérete alapján számolja ki a böngésző az eltolás mértékét. Felvehet negatív értéket is.

    Viszonylagos pozíció (relative)

    Viszonylagos pozicionálás esetén az elem eredeti helyéhez képest eltolódik a megadott mértékben.

    Az elem eredeti helye megmarad a dokumentum- folyamban, az utána következő elemeket eltolja, ugyanúgy, mintha statikus helyzetű lenne a pozicionált elem.

    Független pozíció (absolute)

    Független pozíció esetén a legközelebbi nem statikus pozicionálású szülő elemhez képest történik az eltolás (ha az elem közvetlen szülője például relative pozíciójú, akkor ahhoz képest). Ha nincs nem statikus szülő, akkor a body elemhez képest történik az eltolás.​

    Az abszolút pozicionálású elem nem lesz ráhatással a dokumentumfolyamra (eltűnik). Eredeti helyére becsúsznak az őt követő elemek, illetve nem tolja ki szülőelemeinek magasságát sem.

    Rögzített pozíció (fixed)

    Rögzített pozíció esetén a böngésző ablakához képest történik az eltolás, ebben az esetben a pozicionált elem nem scrollozódik együtt a többi elemmel (rögzített).

    Eredeti helyére becsúsznak az őt követő elemek, illetve nem tolja ki szülőelemeinek magasságát sem - hasonlóan a független pozicionálású elemekhez.

    Z magasság (z-index)

    A dokumentumfolyam meghatározza az elemek egymásra lapolódását is, a később jövő elemek a korábbiak fölé kerülnek.

    Ezen módosíthatunk a z-index tulajdonsággal.

    A böngésző ablak síkjára merőleges tengelyen (z) mozgathatjuk vele az elemeket. A pozitív érték emel az elemen, a negatív érték süllyeszt. Értéke egész szám lehet (negatív is), alapértéke az auto vagyis a dokumentumfolyam alapján számított magasság.

    Kör, ellipszis

    Kör

    Kört a border-radius (keret lekerekítés) CSS tulajdonsággal lehet létrehozni blokkos elemekből. Alapfeltétel, hogy az elem szélessége és magassága megegyezzen. A border-radius értéke 50%, vagy nagyobb kell legyen, hogy létrejöjjön a kör.

    div {
        width: 150px;
        height: 150px;
        border-radius: 50%;
    }

    Ellipszis

    Annyiban különbözik a körtől, hogy az oldalak hosszai nem ugyanakkorák, ha a szélessége nagyobb a magasságánál, fekvő ellipszis jön létre, ha a magassága nagyobb szélességénél, álló ellipszis.

    Háttérkép és keret is használható ezzel a technikával:

    Konténer középre rendezése

    A konténer középre rendezése egy széles körben elterjedt technika, a lényege, hogy a weboldalak tartalma egy bizonyos szélesség fölött középre van rendezve, ha a böngésző ablaka szélességben kisebb ennél a bizonyos szélességnél, a weboldal tartalma teljesen kitölti a böngésző ablakot.

    A jobb és bal oldali egyenlő eltartásért a margin-left: auto , és a margin-right: auto felel, a konténer maximális szélességét a max-width CSS tulajdonsággal lehet beállítani

    A konténer magasságát a tartalma határozza meg (tolja ki), de megadhatunk neki fix értéket is.

    Layout kialakítása úsztatással

    Egy webes alkalmazás, vagy weboldal felületének kialakítása esetén felmerül annak az igénye, hogy elemeket helyezzünk el egymás mellett. Jellemző példa erre a weboldalak fő, és alárendelt tartalmi blokkjai, a lényegi tartalom oszlopa mellett helyezkedik el jobb vagy bal oldalon az oldalsáv, vagy oldalsó panel:

    Ahhoz hogy a fő tartalmi részt, a main-t, és az oldalsó panelt, az aside-ot egymás mellé tudjuk rendezni meg kell határozni a szélességüket, erre a legmegfelelőbb a százalékos méretezés, úgy hogy az egymás mellé úsztatott elemek szélessége ne haladja meg a 100%-ot.

    A következő lépésben úsztatjuk az elemeket, balra, és jobbra.

    Az irányok felcserélésével a vizuális sorrendet tudjuk szabályozni.

    Az úsztatott elemek után következő elemek megjelenítése eltérhet a megszokottól, ebben az estben érdemes clearfix-et használni, vagy a soron következő elemre elhelyezni egy clear: both CSS tulajdonságot.

    Clearfix

    A Clearfix arra a problémára ad megoldást, hogy az nem tolják szét a szülő konténerük magasságát, így például ha egy elem csak úsztatott elemeket tartalmaz, a magassága 0-val lesz egyenlő.

    Az alábbi példában a nem úsztatott elem a szülő magasságát széttolja (a szülő elem vörös kerettel van körbevéve).

    A gyermeket balra vagy jobbra úsztatva a szülő elem magasságára már nem lesz hatással:

    Ez jellemzően akkor jelent gondot, ha szövegben úsztatunk egy képet, és a kép túllóg a szülő elem határán:

    Az alábbi CSS-t elhelyezve a szülő elemen az úsztatott gyermekek befolyásolják az elem magasságát:

    div {
        width: 60%; /* szélesség */
        height: 640px; /* magasság */
    }
    div {
        min-width: 15%;     /* legkissebb szélesség */
        min-height: 15em;   /* legkisebb magasság */
        max-width: 125px;   /* legnagyobb szélesség */
        max-height: 55%;    /* legnagyobb magasság */
    }
    div {
        padding-top: 10px;     /* Felső padding */
        padding-right: 20px;   /* Jobb padding */
        padding-bottom: 3em;  /* Alsó padding */
        padding-left: 15%;    /* Bal padding */
    }
    div {
        /* Gyorsírásos padding oldalankén különböző értékkel */
        padding: 10px 5px 3px 1px;
    }
    div {
        padding: 3em;      /* Gyorsírásos padding */
    }
    div {
        border-top-style: none;      /* Felső keret stílus */ 
        border-right-style: solid;  /* Jobb keret stílus */
        border-bottom-style: dotted; /* Alsó keret stílus */
        border-left-style: dashed;   /* Bal keret stílus */
    }
    div {
        /* Gyorsírásos keret stílus oldalanként különböző értékekkel */
        border-style: solid none dotted dashed;    
    }
    div {
        border-style: solid;    /* Gyorsírásos keret stílus */    
    }
    div {
        border-top-width: 1px;     /* Felső keret szélesség */
        border-right-width: 1em;   /* jobb keret szélesség */
        border-bottom-width: 5px;  /* Alsó keret szélesség */
        border-left-width: 1.2rem; /* Bal keret szélesség */
    }
    div {
        /* Gyorsírásos keret szélesség oldalanként különböző értékekkel */
        border-width: 1px 2px 3px 4px;
    }
    div {
        border-width: 15px;     /* Gyorsírásos keret szélesség */
    }
    div {
        border-top-color: rgba(255, 0, 0);    /* Felső keret szín */
        border-right-color: green;            /* Jobb keret szín */
        border-bottom-color: #0000ff;         /* Alsó keret szín */
        border-left-color: #ff0;              /* Bal keret szín */
    }
    div {
         /* Gyorsírásos keret szín oldalanként eltérő színnel */
        border-color: #e1e1e1 #d3d3d3 #d4d4d4 #e2e2e2;            
    }
    div {
        border-color: purple;             /* Gyorsírásos keret szín */
    }
    div {
        border-top: 5px solid black;       /* Gyorsírásos felső keret */
        border-right: none;                /* Gyorsírásos jobb keret */
        border-bottom: 3px double #449b44; /* Gyorsírásos alsó keret */
        border-left: 1px dashed red;       /* Gyorsírásos bal keret */
    }
    div {
        border: 1px solid purple;          /* Gyorsírásos keret */
    }
    div {
        margin-top: 1.25em;     /* Felső margó */
        mergin-right: auto;     /* Jobb margó */
        margin-bottomm: 33px;   /* Alsó margó */
        margin-left: -25px;     /* Bal margó */
    }
    div {
        /* Gyorsírásos margin oldalankén különböző értékkel */
         margin: 0 auto 15px auto;
    }
    div {
        margin: 3em;      /* Gyorsírásos margin */
    }
    div {
        margin-top: 50px;
        margin-right: 50px;
        margin-bottom: 50px;
        margin-left: auto;  /* Jobbra tolja az elemet */
    }
    div {
        margin-top: 50px;
        margin-bottom: 50px;
        /* A bal és jobb oldali auto margin középre rendezi az elemet: */
        margin-right: auto;
        margin-left: auto; 
    }
    div {
        box-sizing: content-box;
    }
    div {
        box-sizing: border-box;
    }
    <html>
        <head>
            ...
        </head>
    </html>
    <title>Az oldal címe</title>
    <meta name="description" content="Oldal rövid leírása">
    <meta charset="UTF-8">
    <meta name="description" content="Oldal rövid leírása">
    <meta name="keywords" content="Kulcsszavak, vesszővel, elválasztva">
    <meta name="author" content="Szerző Krisztina">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link rel="shortcut icon" type="image/png" href="favicon.ico" />
    <link rel="stylesheet" type="text/css" href="style.css" />
    <style>
        p {
            color: red;
        }
    </style>
    <html>
        <head>
            ...
        </head>
        <body>
            ...
        </body>    
    </html>
    <h1>1-es cím</h1>
    <h2>2-es cím</h2>
    <h3>3-as cím</h3>
    <h4>4-es cím</h4>
    <h5>5-ös cím</h5>
    <h6>6-os cím</h6>
    <p>Lorem ipsum dolor sit amet, consectetur 
    adipiscing elit. Praesent et ligula magna. 
    Aliquam vestibulum fringilla tincidunt. 
    Etiam in leo mi. Nunc magna quam, 
    consectetur eget elit in, cursus lacinia 
    justo. Aenean condimentum suscipit lectus 
    sit amet pharetra. Maecenas varius ac 
    libero nec varius. Praesent aliquam 
    tincidunt tortor, nec imperdiet nisi 
    pharetra a.</p>
    <ol>
        <li>Ez egy lista elem</li>
        <li>Ez is egy lista elem</li>
        <li>És ez is</li>
    </ol>
    <ul>
        <li>Ez egy lista elem</li>
        <li>Ez is egy lista elem</li>
        <li>És ez is</li>
    </ul>
    <ol>
        <li>Ez egy lista elem</li>
        <li>Ez is egy lista elem</li>
        <li>És ez is, de ennek vannak gyermekei
            <ul>
                <li>Ez egy lista elem</li>
                <li>Ez is egy lista elem</li>
                <li>És ez is</li>
            </ul>
        </li>
    </ol>
    <img src="images/kutya.jpg" alt="6 hetes alvó labradorkölyök">
    <img src="page-decoration.png" alt="">
    <img
        src="puppy.png"
        width="360"
        height="240"
        alt="3 hónapos labradorkölyök"
    >
    <p>A <strong>Web</strong> alapelveit <em>Tim Berners-Lee</em>, a
    CERN részecskefizikai kutatóközpont munkatársa dolgozta ki
    1989-ben. Eredeti  célja a különböző intézményekben világszerte 
    dolgozó kutatók közötti  automatizált <em>információmegosztás</em> 
    volt.</p>
    <p>
        <b>Vastagon szedett szöveg</b> <br>
        <strong>Fontos szöveg</strong> <br>
        <i>Dőlt betűs szöveg</i> <br>
        <em>Hangsúlyos szöveg</em> <br>
        <mark>Kiemelt szöveg</mark>
    </p>
    <p>
        <small>Kis méretű szöveg</small> <br>
        <time>20:00</time> <br>
        E=mc<sup>2</sup> <br>
        H<sub>2</sub>O <br>
        <s>Elavult imformáció</s>
    </p>
    <p>Ebben a szövegben egy szó <a href="document.html">kattintható</a>,
    rákattintva a böngésző betölt egy másik HTML dokumentumot.</p>
    <p>Ebben a szövegben van egy <span>szakasz</span>, aminek 
    nem módosul a kinézete, és a szemantikai jelentése</p>
    <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.<br>
    Donec facilisis sit amet nisi nec mattis.</p>
    <hr>
    <div>
        <!-- Ide kerülnek azok az elemek, amiket össze kell fogni egy csoportba -->
    </div>
    <nav>
        <a href="/homepage">Home</a>
        <a href="/contact">Contact</a>
    </nav>
    <nav>
        <ul>
            <li><a href="/homepage">Home</a></li>
            <li><a href="/products">Products</a></li>
            <li><a href="/blog">Blog</a></li>
            <li><a href="/about">About us</a></li>
            <li><a href="/contact">Contact us</a></li>
        </ul>
    </nav>
    <nav>
        <ul>
            <li><a href="/homepage">Home</a></li>
            <li><a href="/products">Products</a>
                <ul>
                    <li><a href="/products/books">Books</a></li>
                    <li><a href="/products/magazines">Magazines</a></li>
                    <li><a href="/products/comic">Comic</a></li>
                    <li><a href="/products/albums">Albums</a></li>
                    <li><a href="/products/guides">Pocket guides</a></li>
                </ul>
            </li>
            <li><a href="/contact">Contact us</a></li>
        </ul>
    </nav>
    <form>
        ...
    </form>
    <form>
        <input id="name" type="text" placeholder="Your name">
    </form>
    <form>
        <label>Szövegbeviteli mező</label> <input type="text"> <br>
        <label>E-mail</label> <input type="email"> <br>
        <label>Jelszó</label> <input type="password"> <br>
        <label>Állomány feltöltés</label> <input type="file"> <br>
        <label>Rádiógomb</label> <input type="radio"> <br>
        <label>Jelölőnégyzet</label> <input type="checkbox"> <br>
        <label>Gomb</label> <input type="button" value="Elküldés">
    </form>
    <form>
        <label for="name">Your Name</label>
        <input id="name" type="text">
    </form>
    <form>
        <label>
            Your Name
            <input id="name" type="text">
        </label>
    </form>
    <form>
        <textarea rows="4" cols="50"></textarea>
    </form>
    <select>
        <option selected>Almafa</option>
        <option>Körtefa</option>
        <option>Barackfa</option>
    </select>
    <table>
        <tr>
            <td>Első sor, első oszlop</td>
            <td>Első sor, második oszlop</td>
            <td>Első sor, harmadik oszlop</td>
        </tr>
        <tr>
            <td>Második sor, első oszlop</td>
            <td>Második sor, második oszlop</td>
            <td>Második sor, harmadik oszlop</td>
        </tr>
    </table>
    <!-- Fejléc cellák vízszintesen. -->
    <table>
        <tr>
            <th>Fejléc</th>
            <th>Fejléc</th>
            <th>Fejléc</th>
        </tr>
        <tr>
            <td>Cella</td>
            <td>Cella</td>
            <td>Cella</td>
        </tr>
    </table>
    
    
    <!-- Fejléc cellák függőlegesen. -->
    <table>
        <tr>
            <th>Fejléc</th>
            <td>Cella</td>
            <td>Cella</td>
        </tr>
        <tr>
            <th>Fejléc</th>
            <td>Cella</td>
            <td>Cella</td>
        </tr>
    </table>
    rgb(0, 0, 0) /* Fekete */
    rgb(128, 128, 128) /* 50%-os szürke */
    rgb(255, 255, 255) /* Fehér */
    
    rgb(255, 0, 0)  /* Vörös */
    rgb(0, 255, 0)  /* Zöld */
    rgb(0, 0, 255)  /* Kék */
    
    rgb(53%, 76%, 29%) /* Százalékos rgb */
    rgba(0, 255, 0, 0.1)  /* 10%-ban átlátszatlan zöld */
    rgba(0, 255, 0, 0.5)  /* 50%-ban átlátszatlan zöld */
    rgba(0, 255, 0, 0.9)  /* 90%-ban átlátszatlan zöld */
    hsl(0, 0%, 0%) /* Fekete */
    hsl(0, 0%, 50%) /* 50%-os szürke */
    hsl(0, 0%, 100%) /* Fehér */
    
    hsl(0, 100%, 50%)  /* Vörös */
    hsl(120, 100%, 50%)  /* Zöld */
    hsl(240, 100%, 50%)  /* Kék */
    hsla(120, 255%, 50%, 0.1)  /* 10%-ban átlátszatlan zöld */
    hsla(120, 255%, 50%, 0.5)  /* 50%-ban átlátszatlan zöld */
    hsla(120, 255%, 50%, 0.9)  /* 90%-ban átlátszatlan zöld */
    black /* Fekete */
    gray /* 50%-os szürke */
    white /* Fehér */
    
    red  /* Vörös */
    lime  /* Zöld */
    blue  /* Kék */
    transparent
    div {
        color: red;
        color: blue; /* a későbbi érvényesül */
    }
    
    span {
        color: green;
    }
    
    span {
        color: purple; /* a későbbi érvényesül */
    }
    div {}                    /* értéke: 0.0.0.1 */
    label.name {}             /* értéke: 0.0.1.1 */
    .name {}                  /* értéke: 0.0.1.0 */
    #contact {}               /* értéke: 0.1.0.0 */
    div#contact {}            /* értéke: 0.1.0.1 */
    div#contact .name {}      /* értéke: 0.1.1.1 */
    div#contact label.name {} /* értéke: 0.1.2.1 */
    div {
        color: red !important;
    }
    div {
    	background-color: purple;
    }
    
    ul li {
    	background-color: rgba(14%, 75%, 10%, 0.75);
    }
    <p>Lórum ipse nem kérlő linc, hanem izismély. <strong>Több ménylő 
    fejtő hajszolta ki,hogy a sörökök kedő.</strong> Sítos egyveklőjét 
    azért zubálja gyetlennek.</p>
    div {
        display: flex;
    }
    .img-left {
        float: left;
    }
    
    .img-right {
        float: right;
    }
    - ismétlődés csak függőlegesen

    right - jobbra

    fantasy

    WOFF2 (Web Open Font Format v2)
    - A WOFF2 még optimálisabb, kisebb, támogatottsága egyenlőre részleges, nem minden modern böngésző képes feldolgozni, így az egyes verzióval együtt érdemes használni.

    SVG (Scalable Vector Graphyc Font) - Az SVG szabványon alapul, támogatottsága részleges, a modern böngészők csak egy része képes feldolgozni, ráadásul nem használ tömörítést, így az SVG fontok mérete túl nagy.

    https://www.fontsquirrel.com/tools/webfont-generator
    https://transfonter.org/
    https://fonts.google.com/
    Google Fonts
    Font Squirrel
    Különböző betűméretek pixelben meghatározva.
    Open Sans betűtípus különböző betű vastagságai.
    Jobbra, balra, középre igazított, és sorkizárt szöveg.
    A bal hasáb pozitív szöveg behúzást kapott, a jobb hasáb negatív szöveg behúzást.
    Szöveg transzformációk sorrendben: none, capitalize, uppercase, lowercase.
    Különböző sormagasság értékek em-ben megadva.
    Különböző szóközök pixelben megadva.
    Különböző méretű betűközök pixelben meghatározva.
  • pointer - pozicionáló eszköz típusa (egér)

  • bottom - eltolás lentről

    A következő példában egy weboldal főbb szerkezeti elemeinek szervezését tekinthetjük át:
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title>Flex Layout</title>
        <link rel="stylesheet" href="layout.css">
    </head>
    <body>
        <div class="container">
            <header>header</header>
            <main>main</main>
            <aside>aside</aside>
            <footer class="cf">footer</footer>
        </div>
    </body>
    </html>
    Konténer középre rendezése
    Clearfix
    <div class="cf">
         <img src="tiger.jpg" alt="Sleaping tiger">
         <p>Lorem ipsum dolor sit amet ...</p>  
    </div>
    
    .cf:before,
    .cf:after {
      content: " ";
      display: table;
    }
    
    
    .cf:after {
      clear: both;
    }
    úsztatott elemek
    A gyermek elem jobbra úsztatva.
    A szövegben a kép balra van úsztatva.
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title>Center block element</title>
        <link rel="stylesheet" href="center.css">
    </head>
    <body>
        <main>
            <div></div>
        </main>
    </body>
    </html>
    blokkos elemekkel
    elemek igazítása
    A szövegben az első sorban egy balra úsztatott kép, a bekezdés közepén egy jobbra úsztatott kép látható.
    Figyeljük meg, hogy jobbra úsztatás esetén az elemek sorrendje megfordul.
    A clear tulajdonsággal ellátott elem új sorba törik.
    .square {
    	width: 50%;
    }
    
    .square:before {
    	content: '';
    	display: block;
    	padding-bottom: 100%;
    }
    div {
        width: 200px;
        height: 150px;
        border-radius: 50%;
    }
    .container {
        width: 100%;
        max-width: 960px;
        margin-left: auto;
        margin-right: auto;
    }

    Tartalmak

    Tipográfia

    A Bootstrap a HTML elemeket előformázza, a szöveges tartalmakat egy natív fontkészlettel látja el, minden operációs rendszernek a megfelelő rendszer fontkészletét töltve be.

    A megszokott címeken kívül lehetőség van nagy fontméretű, kiemelt címeket is használni, a display-1, display-2, display-3, display-4 CSS osztályokkal:

    Hasonlóan a címekhez, a bekezdéseknek is van egy kiemelt verziója, amit a lead osztállyal hozunk létre. A példában csak az első bekezdésre tesszük rá:

    Képek

    Reszponzív képek

    Reszponzív, környezetéhez adaptálódó méretű képet az img-fluid CSS osztállyal tudunk készíteni:

    Ezek a képek nem nyomják szét a szülő elemüket, autómatikusan felveszik a rendelkezésre álló helyet szélességben.

    Képek úsztatása szövegben

    Kép szövegbe ágyazását a float left, és a float-right CSS osztályok teszik lehetővé:

    Kép lekerekített sarkokkal

    A kép sarkának lekerekítéséhez lássuk el egy rounded osztállyal:

    Állítható a lekerekítés mértéke is, a rounded osztály mellett használhatjuk a rounded-sm és a rounded-lg osztályokat.

    További kép stílusok

    Kezdő lépések

    Bootstrap beágyazása külső szolgáltatótól (CDN)

    A Bootstrap külső szolgáltatónál elhelyezett CSS állományát egyszerűen beemelhetjük HTML állományainkba egy link segítségével (ezt a HTML dokumentum fejlécében kell elhelyezni):

    Egyes interaktív szolgáltatások eléréséhez szükség van a Bootstrap JavaScript állományára is, ehhez a következő 3 sort el kell helyezni a HTML állomány lezáró body eleme előtt:

    Amennyiben nem használunk interaktív elemeket, mint például a felugró ablakok, vagy lenyíló menük, akkor nem szükséges beemelni a JavaScript állományokat.

    A következő példa dokumentumba be van emelve az összes CSS és JavaScript állomány:

    Bootstrap bemelése a HTML állomány mellé

    A Bootstrap állományait direkt módon beemelhetjük a HTML állományaink mellé. Ehhez a Bootstrap csomagot, a kapott zip állományt kicsomagolva igény szerint helyezzük el a HTML állomány mellett a CSS állományokat és ha interaktív elemeket is használunk, a JavaScritp állományokat is.

    A CSS állomány bekötéséhez a HTML dokumentum fejlécében helyezzünk el egy link-et:

    Válasszuk a bootstrap.min.css elnevezésű állományt, ez ez összes szolgáltatást tartalmazza, és tömörített formátumú.

    A JavaScript állományok beemeléséhez a Bootstrap állományain kívül szükségünk lesz a jQuery keretrendszerre, és a popper.js felugró ablak kezelőre is. Az összes JavaScript állományt helyezzük el a html dokumentum mellett (a Bootstrap js mappája erre megfelel), és a body elem záró része előtti sorban helyezzük el a következő 3 hivatkozást:

    A következő példa dokumentumba be van emelve az összes CSS és JavaScript állomány:

    Bootstrap 4 letöltés link: jQuery letöltés link: Popper.js letöltés link:

    Az alábbi linken a fenti példa HTML dokumentum, és az összes hivatkozott állomány egyben letölthető:

    Hasznos eszközök

    Bootstrap témák

    A Bootstrap keretrendszer könnyen témázható, mi is létre tudunk belőle hozni egyedi témát, ehhez a Bootstrap forrásállományait szükséges szerkeszteni. A forrásállományok szerkesztése haladó nehézségű feladat, szerencsére elérhetőek előre elkészített színsémák a Bootswatch.com weboldalon a témák menüpontban.

    A téma használatba vételéhez töltsük le a témához kapcsolódó bootstrap.min.css állományt, és kössük be a HTML állományunkba.

    Bootstrap Modulháló Chrome böngészőhöz

    Ezzel az eszközzel a bootstrap modulhálóját jeleníthetjük meg a Chrome böngészőben, ami könnyíti a felület kialakítását.

    Hogy helyi, a számítógépünkön található állományokon is használni tudjuk ezt a bővítményt, engedélyeznünk kell a következő opciót (Chrome-ban bővítmények kezelése):

    Bootstrap kódkiegészítő VScode bővítmény

    A Visual Studio Code alapból nem kezeli a Bootstrap kód részleteket, ezzel a bővítménnyel elérhetővé válnak a Bootstrap HTML struktúrái a b4 kulcsszóra.

    Vízszintes menü úsztatással

    A technika kiindulási alapja egy navigációs menü egy listából, és lista elemekből felépítve (nav elemről bővebben itt):

    Formázatlan menü megjelenése.

    Első lépésként eltüntetjük a lista elemek pontjait, és a listán lévő külső és belső margót:

    Lista pontok nélkül.

    Második lépésként balra úsztatjuk a lista elemeket, ennek következtében egy sorba rendeződnek:

    nav li {
        float: left;
    }
    Lista elemek vízszintesen rendezve.

    A harmadik lépés, hogy a menüpontokat széthúzzuk, belső margó segítségével, ezt az a elemre tesszük. Ahhoz, hogy a belső margót rá tudjuk tenni az a elemre, blokkos elemmé kell alakítani, alapesetben szövegközi elem (inline).

    Kész a vízszintes menü, jelen formájában már használható, a következő példában további stílusokkal látjuk el (elemek magassága, szövegszín, háttérszín):

    Konténer elem

    A Bootstrap rendelkezik egy konténer elemmel, ez a legalapvetőbb elem, ezen alapszik a Bootstrap modulháló rendszere a grid.

    A konténer elem felel a webes alkalmazásunk külső margójáért.

    Konténer elemet úgy tudunk létrehozni, hogy egy HTML elemen elhelyezünk egy container osztályt. Ez az elem rendszerint egy div, de más elemeken is használható a container osztály.

    <div class="container">
      <!-- Ide jön a középre zárt tartalom -->
    </div>

    container-fluid

    Van egy alternatív változata, ami nem rendezi középre a tartalmat, viszont gondoskodik a jobb és bal oldali egységes eltartásról. Az alternatív konténert a container-fluid osztály hozza létre:

    Mi az a Bootstrap?

    A Bootstrap egy nyílt forráskódú, ingyenes kliens oldali keretrendszer. A Twitter Inc. belső fejlesztésű rendszereként indult, 2011-ben nyilvánosan is elérhetővé tették. A jelenlegi 4-es verzió 2015-ben jelent meg. A Bootstrap számos előre elkészített felhasználói felület "darabkát" tartalmaz, úgymint navigációs menük, táblázatok, gombok, űrlapok, satöbbi ezek az úgynevezett komponensek. A komponensek jellemzően egy HTML kódrészletből, és a hozzá tartozó CSS stílus formázásból álnak, de egyes komponenseknek lehet javaScript része is.

    Bootstrap honlapja: https://getbootstrap.com Bootstrap forráskódja a Github-on: https://github.com/twbs/bootstrap

    Bootstrap4-el készült hírportál sablon.

    Komponensek

    A Bootstrap komponensei előre elkészített felhasználói felület darabkák, rendszerint egy kötött formátumú HTML struktúrából állnak, amire a Bootstrap CSS stílusai, és adott esetben a Bootstrap JavaScript hatással van.

    Ebben a fejezetben bemutatásra kerülő komponensek a legjellemzőbben használtak közül lettek kiválogatva, bővebben a komponensekről az alábbi linken olvashatunk:

    Média elem

    A média elem segítségével képet helyezhetünk el egy cím és a hozzá tartozó bekezdés(-ek) mellett. Jellemző felhasználása blog, vagy hír lista.

    A kép és a szöveges tartalom megcserélésével vízszintesen tudjuk rendezni az elemeket:

    Média elemről bővebben:

    Kártya

    A kártyákban különböző tartalmakat helyezhetünk el, például képet a tetején vagy az alján a card-img-bottom és card-img-top osztályokkal (ezt a képen kell elhelyezni).

    A kártyában elhelyezett card-body osztályú elem gondoskodik az elemek eltartásáról:

    A kártyákban el lehet helyezni előre formázott listákat, ezekből függőleges navigációs menü szervezhető:

    Kártyáról bővebben:

    Jumbotron

    A Jumbotron, vagy marketink banner a weboldalunk nyitó eleme, méretéből kifolyólag szöveges vagy képi tartalmára irányítja a látogató tekintetét.

    A Jumbotronnak van egy széles (faltól falig érő) változata. ezt a jumbotron-fluid osztállyal hozzuk létre.

    Jumbotronról bővebben:

    Navigációs sáv

    A navigációs sáv (navbar) egy Bootstrapban készült alkalmazás, vagy weblap fejléce. Tartalmazza a szokásos fejléc elemeket, például a logót, menüt, kereső mezőt. A navigációs sáv a Bootstrap egyik leg összetettebb komponense:

    A következő példában a könnyebb áttekinthetőség miatt csak egy szintű menü, található:

    Bővebben a navigációs sávról:

    Gomb

    A Bootstrap gomb komponense jelentéstartalomtól függő megjelenést biztosít a linkeknek (a), és a elemeknek (button).

    Használhatunk a vagy button elemet, a megjelenésük meg fog egyezni:

    A btn-sm és a btn-lg CSS osztályokkal kis és nagy méretű gombokat tudunk létrehozni:

    Gomb komponensről bővebben:

    Egyedi megjelenés

    A Bootstrap-nek módosíthatjuk a beállításait, így tudunk egyedi megjelenést biztosítani a felhasználói felületeknek, a számos lehetőség közül például használhatunk egyedi színeket, betűtípust, vagy módosíthatjuk a modulháló beállításait.

    Stílus forrásállományok fordítása

    Ahhoz hogy érvényesíteni tudjuk a beállításainkat, a Bootstrap stílusait a Sass forrás állományaiból kell fordítanunk, ezt rendeszerint egy fejlesztői keretrendszerrel végezzük, de lehetőség van erre a Visual Studio Code szövegszerkesztőben is egy bővítmény segítségével. Ehhez töltsük le a Live Sass Compiler bővítményt:

    Telepítéshez nyissuk meg a Visual Studio Code bővítmény kezelőjét (Extensions), és a keresőbe írjuk be a bővítmény nevét (Live Sass Compiler ).

    Emmet

    Mi az az Emmet?

    Az Emmet egy automatikus kódkiegészítő, ami megkönnyíti a munkát HTML és CSS dokumentumokkal, úgy hogy drasztikusan csökkenti a gépelés mennyiségét (és a gépelési hibákat).

    Számos fejlesztői eszközbe alapértelmezetten be van integrálva, köztük a szövegszerkesztőbe, és a online szövegszerkesztőbe is.

    Segédek

    A segédek (utilities) CSS osztályok, amik segítségével egyszerű stílusokat tudunk alkalmazni a HTML elemeinkre, például be tudunk állítani nekik háttér vagy szövegszínt.

    Szövegszín

    A szövegek színét a text- osztályokkal lehet beállítani a Bootstrap előre definiált szín palettájából:

    Mi az a VS Code?

    A Visual Studio Code (röviden VS code vagy Code) a Microsoft cég által fejlesztett ingyenes és nyílt forráskódú szövegszerkesztő.

    Támogatja az automatikus kódkiegészítést (InteliSense, , TabNine), rendelkezik beépített hibakeresővel, és Git verziókezelő támogatással, és még számos egyéb szolgáltatással. segítségével további szolgáltatások, és funkciók adhatóak hozzá.

    A felhasználói igényeknek megfelelően testreszabható, ebben sokat segítenek a letölthető .

    A VS Code több platformos alkalmazás, elérhető Windows, Linux és OS X operációs rendszerekre.

    A VS Code honlapja:

    div {
        background-image: url('images/background.png');
    }
    
    ul li {
        backgroud-mage: url('http://mydomain.hu/picture.jpg');
    }
    div {
        background-repeat: repeat;
    }
    
    ul li {
        backgroud-repeat: no-repeat;
    }
    div {
    	background-position: center;
    }
    
    span {
    	backgroud-position: left;
    }
    div {
    	background-position: left top;
    }
    
    span {
    	backgroud-position: right bottom;
    }
    div {
    	background-position: 50% 50%;
    }
    
    span {
    	backgroud-position: 10px 15px;
    }
    div {
    	background-size: cover;
    }
    
    ul li {
    	backgroud-size: auto contain;
    }
    div {
    	background: #c5c6c7 center no-repeat cover url('img/background.png');
    }
    
    ul li {
    	backgroud: none;
    }
    div {
        background-image: url('firs-image.jpg'), url('second-image.png');
    }
    div {
        background-image: url('firs-image.jpg'), url('second-image.png');
        background-position: left top, right bottom;
        backgroud-repeat: no-repeat, no-repeat;
    }
    div {
        background: 
            url('images/firs-image.jpg') left top no-repeat, 
            url('images/second-image.png') center repeat-x,
            url('images/third-image.png') right bottom no-repeat;
    }
    div {
        display: inline;
    }
    p {
        font-family: Arial, Helvetica, sans-serif;
    }
    <p style="font-family: serif">Lorem ipsum dolor sit amet.</p>
    <p style="font-family: sans-serif">Lorem ipsum dolor sit amet.</p>
    <p style="font-family: cursive">Lorem ipsum dolor sit amet.</p>
    <p style="font-family: monospace">Lorem ipsum dolor sit amet.</p>
    <p style="font-family: fantasy">Lorem ipsum dolor sit amet.</p>
    @font-face {
      font-family: 'MyWebFont';
      src: url('webfont.woff2') format('woff2'),
           url('webfont.woff') format('woff'),
           url('webfont.ttf')  format('truetype');
      font-weight: normal;
    }
    
    body {
      font-family: 'MyWebFont', sans-serif;
    }
    @font-face {
      /* A font-family határozza meg a létrehozott betűcsalád nevét */
      font-family: 'MyWebFont';
      /* Az src-ben (source) adhatjuk meg a font 
         állományokat, vesszővel felsorolva. 
         A formátumot is meg kell adni, ez általában az
         állománykiterjesztéssel egyezik.
      */
      src: url('webfont.woff2') format('woff2'),
           url('webfont.woff') format('woff'),
           url('webfont.ttf')  format('truetype');
      /* Megadhatjuk a betűcsalád tagjának betűvastagságát is
         (vastagságonként egy @font-face-ben kell felvinni a fontokat) */     
      font-weight: normal;
    }
    
    body {
      /* Itt hivatkozunk a @font-face-ben létrehozott új betűcsaládra. */
      font-family: 'MyWebFont', sans-serif;
    }
    p {
        font-size: 16px;
    }
    
    span {
        font-size: 1.125em;
    }
    p {
        font-weight: 400;
    }
    
    span {
        font-weight: bold;
    }
    p {
        font-style: normal;
    }
    
    span {
        font-style: italic;
    }
    p {
        font-variant: normal;
    }
    
    span {
        font-variant: small-caps;
    }
    p {
        text-align: center;
    }
    p {
        text-decoration: none;
    }
    
    span {
        text-decoration: underline;
    }
    p {
        text-indent: 1em;
    }
    
    p {
        text-indent: -1em;
    }
    p {
        text-transform: none;
    }
    
    span {
        text-transform: uppercase;
    }
    p {
        line-height: normal;
    }
    
    span {
        line-height: 1.25em;
    }
    p {
        word-spacing: normal;
    }
    
    span {
        word-spacing: 0.125em;
    }
    p {
        letter-spacing: normal;
    }
    
    span {
        letter-spacing: 0.125em;
    }
    p {
        color: red;
    }
    
    @media print {
        p {
            color: black;
        }
    }
    /* Pontos szélesség */
    @media (width: 600px) {
        ...
    }
    
    /* Legkisebb szélesség */
    @media (min-width: 601px) {
        ...
    }
    
    /* Legnagyobb szélesség */
    @media (max-width: 599px) {
        ...
    }
    /* Pontos magasság */
    @media (height: 600px) {
        ...
    }
    
    /* Legkisebb magasság */
    @media (min-height: 601px) {
        ...
    }
    
    /* Legnagyobb magasság */
    @media (max-height: 599px) {
        ...
    }
    @media not print {
        ...
    }
    @media screen and (min-width: 800px) {
        ...
    }
    @media (max-width: 100px), (min-width: 200px) {
        ...
    }
    div {
        position: static;
    }
    top: 33px;      /* Felső eltolás */
    right: 55%;     /* Bal eltolás */
    bottom: -5em;   /* Alsó eltolás */
    left: 9px;      /* Bal eltolás */
    div {
        position: relative;
        left: 50px;
        top: 50px;
    }
    div {
        position: absolute;
        left: 50px;
        top: 50px;
    }
    div {
        position: fixed;
        left: 50px;
        top: 50px;
    }
    div {
        position: relative;
        z-index: 150;
    }
    /* Konténer középre rendezése */
    .container {
        margin-left: auto;
        margin-right: auto;
        max-width: 960px;
    }
    
    /* Fő tartalmi elemek stílusa */
    header {
        height: 120px;
        background-color: #339af0;
    }
    
    main {
        float: right;
        width: 70%;
    
        background-color: #51cf66;
        min-height: calc(100vh - 240px);
    }
    
    aside {
        float: left;
        width: 30%;
    
        background-color: #fcc419;
        min-height: calc(100vh - 240px);
    }
    
    footer {
        clear: both;
    
        height: 120px;
        background-color: #ff6b6b;
    }
    main {
        width: 70%;
    }
    
    aside {
        width: 30%;
    }
    main {
        float: left;
        width: 70%;
    }
    
    aside {
        float: right;
        width: 30%;
    }
    footer {
        clear: both;
    }
    main {
    	padding: 30px 0;
    	background-color: #ffec99;
    }
    
    div {
    	margin-left: auto;
    	margin-right: auto;
    	
    	width: 200px;
    	height: 200px;
    	background-color: #f03e3e;
    }
    .row {
        flex-direction: row;
    }
    .row-reverse {
        flex-direction: row-reverse;
    }
    .column {
        flex-direction: column;
    }
    .column-reverse {
        flex-direction: column-reverse;
    }
    .nowrap { 
        flex-wrap: nowrap;
    }
    .wrap { 
        flex-wrap: wrap;
    }
    .wrap-reverse { 
        flex-wrap: wrap-reverse;
    } 
    .flex-start {
      align-self: flex-start;
    }
    
    .flex-end {
      align-self: flex-end;
    }
    
    .center {
      align-self: center;
    }
    
    .stretch {
      align-self: stretch;
    }
    
    .baseline {
      align-self: baseline;
    }
    div {
        float: left;
    }
    div {
        float: right;
    }
    div {
       clear: none;
    }
    
    span {
        clear: left;
    }
    .float-left {
    	float: left;
    }
    
    .clear-left {
    	clear: left;
    }
    <h1>H1 cím</h1>
    <h2>H2 cím</h2>
    <h3>H3 cím</h3>
    <h4>H4 cím</h4>
    <h5>H5 cím</h5>
    <h6>H6 cím</h6>
    <p>Bekezdés, lorem ipsum dolor sit amet consectetur
    adipisicing elit. Quasi commodi excepturi ullam
    doloremque quam amet veniam aut asperiores veritatis
    rem aliquam voluptatem accusamus, optio odio quisquam
    perspiciatis exercitationem id. Consequuntur!</p>
    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css" integrity="sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh" crossorigin="anonymous">
    <script src="https://code.jquery.com/jquery-3.4.1.slim.min.js" integrity="sha384-J6qa4849blE2+poT4WnyKhv5vZF5SrPo0iEjwBvKU7imGFAV0wwj1yYfoRSJoZ+n" crossorigin="anonymous"></script>
    <script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js" integrity="sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo" crossorigin="anonymous"></script>
    <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js" integrity="sha384-wfSDF2E50Y2D1uUdj0O3uMBJnjuUD4Ih7YwaYd1iqfktj0Uod8GCExl3Og8ifwB6" crossorigin="anonymous"></script>
    <nav>
    	<ul>
    		<li class="active"><a href="#">Home</a></li>
    		<li><a href="#">About us</a></li>
    		<li><a href="#">Products</a></li>
    		<li><a href="#">Services</a></li>
    		<li><a href="#">Contact</a></li>
    		<li><a href="#">Blog</a></li>
    	</ul>
    </nav>
    nav ul {
    	list-style-type: none;
    	padding: 0;
    	margin: 0;
    }
    <div class="media">
      <img src="duckling.jpg" class="mr-3" alt="Kiskacsa" width="96">
      <div class="media-body">
        <h3 class="mt-n1">Indiai futókacsa</h3>
        A házikacsa (Anas platyrhynchos domestica) a récefélék családjába
        tartozó baromfi, a tőkés réce (vadkacsa) alfaja, háziasított változata.
        Többnyire fehér színben tenyésztik, de egyes vidékeken, különösen ott,
        ahol vadon élő őseivel könnyen kereszteződhet „vad” színezetű
        példányokat is találunk.
      </div>
    </div>

    Font Awsome

    Mi az a Font Awsome?

    A Font Awsome egy font alapú ikonkészlet (némileg hasonlít a Microsoft Wingdings betűkészletre) Kifejezetten arra tervezték, hogy weboladalakon és webalkalmazásokban is használható legyen. A Font Awsome weboldala elérhető a következő címen: https://fontawesome.com/

    A találati listában a bővítmény neve mellett nyomjuk meg az Install gombot. Telepítés után a következő elem jelenik meg a Visual Studio Code láblécén:

    Erre a gombra kattintva a Visual Studio Code le fogja fordítani CSS állományra az Sass forrás állományokat (ezeknek a kiterjesztése .scss).

    A Sass a CSS nyelvi lehetőségeit bővíti ki dinamikus funkciókkal, amik jellemzően programozási nyelvekben találhatóak meg, például változók, ciklusok, adat struktúrák. Bővebben erről az eszközről a Sass honlapján olvashatunk: https://sass-lang.com

    Bootstrap forrás állományok bekötése

    A forrás állományokat a Bootstrap letöltés oldalán találjuk:

    Kattintsunk a Download Source gombra:

    Egy tömörített zip állomány fog letöltődni, amit tömörítsünk ki. Csak az scss almappára és teljes tartalmára van szükségünk, ezt helyezzük el a HTML állomány mellett, amiben alkalmazni akarjuk:

    Hozzunk létre egy style.scss nevű állományt, amibe behívjuk a Bootstrap forrását (az scss mappában található bootstrap.scss állományt kell hivatkozni):

    Ha elmentettük az állományt, és megnyomjuk a Watch Sass gombot, a Visual Studio Code legyártja a CSS állományunkat:

    Végül be kell kötnünk a HTML állományba a legyártott CSS állományt, egy szokásos link segítségével, amit helyezzünk el a HTML állomány fejlécében:

    Ha mindent jól csináltunk, és megnyitjuk az állományunkat egy böngészőben, a Bootstrap komponensei megkapják az alapértelmezett Bootstrap stílusokat. A gomb elem például a következő képpen fog kinézni:

    Egyedi beállítások alkalmazása

    A Bootstrap beállításait az scss mappában a _variables.scss állományban találjuk, ezt direkt módon nem módosítjuk, mert fölül tudjuk írni a beállításait a saját style.scss állományunkban, a @import előtt. Például megváltoztathatjuk az elsődleges (primary) színt:

    Fordítás után ez megváltoztatja többek között a gombunk színét is a korábbi kékről vörösre:

    Minden beállítás változókban van tárolva ezek mindíg $ jellel kezdődnek az scss állományokban, az új érték után el kell helyezni egy !default kapcsolót ez felülírja a később bekötött Bootstrap beállítás értékét.

    Példák további beállításokra

    Alapértelmezett betűtípus felülírása

    Ebben a példában egy Google betűkészlettel írjuk felül az alapértelmezett fontot:

    Ahhoz, hogy a font betöltődjön be kell kötni a HTML állományba.

    Modulháló beállításainak módosítása

    A következő példában a Bootstrap modulháló oszlopainak a számát 12-ről 16-ra módosítjuk, az oszlopok közötti csatornák (gutter) szélességét 30 pixelről 20 pixelre csökkentjük:

    Példa állományok

    Az alábbi linken a fenti példa HTML és SCSS állományok letölthetőek:

    83KB
    bootstrap-scss.zip
    archive
    Open
    Az
    Emmet
    (abbreviation) használ, amiket begépelve komplex HTML struktúrákat kapunk vissza.

    Például ha VS Code-ban megnyitunk egy HTML dokumentumot, és új sorban leütjük a p betűt, és entert (vagy tab-ot) nyomunk, egy HTML bekezdést kapunk:

    Az Emmet honlapja az alábbi linken érhető el: https://emmet.io/

    Emmet példák

    html:5 vagy !

    Az alapvető HTML elemeket tehetjük be vele egy üres dokumentumba. Eredménye:

    h1

    Egy üres főcím. Eredménye:

    h1>lorem3

    Főcím 3 töltelékszóval. Eredménye:

    A > jel a jel előtt lévő elembe beleteszi a jel után következő elemet. Például ennél a rövidítésnél: div>p a szövegszerkesztő létrehoz egy div elemet, és elhelyez benne egy bekezdést.

    A lorem rövidítés egy bekezdésnyi töltelékszöveget hoz létre. Meghatározhatjuk hogy hány szóból álljon a töltelékszöveg, ehhez írjuk a lorem kulcsszó után közvetlenül a létrehozni kívánt szavak számát: lorem15 ez a rövidítés egy 15 szóból álló töltelékszöveget hoz létre.

    p

    Egy üres bekezdést hoz létre. Eredménye:

    p>lorem

    Egy bekezdést hoz létre egy bekezdésnyi töltelékszöveggel. Eredménye:

    p{Tarka kutya tarka felfelé kucsorodó farka!}

    Egy bekezdést hoz létre konkrét szöveges tartalommal. Eredménye:

    (p>lorem)*3

    3 bekezdés töltelékszöveggel. Eredménye:

    A * jellel sokszorozni tudunk, például a p*5 rövidítés 5 üres bekezdést hoz létre. Ha több egymásba ágyazott elemet akarunk sokszorozni, például 5 üres bekezdés helyett 5 bekezdést töltelékszöveggel, a sokszorozni kívánt elemeket tegyük zárójelbe: (p>lorem)*5

    h1+h2+p

    Egy üres főcím, utána üres alcím, végül egy üres bekezdés Eredménye:

    A + jellel egymás után tudunk elhelyezni elemeket, például a div+div két div-et hoz létre. Ezzel a módszerrel egy oldal fő strukturális elemeit egy menetben létre tudjuk hozni: header+main+aside+footer

    (h1>lorem1)+((h2>lorem3)+p>lorem)*2

    Egy főcím, utána két alcím egy-egy bekezdéssel. Mindegyik elemben megBootstrap szolgáltatásaifelelő mennyiségű töltelékszöveg. Eredménye:

    ul>li

    Egy lista egy üres lista elemmel Eredménye:

    ul>li*3

    Egy lista három üres lista elemmel Eredménye:

    ul>(li>lorem3)*6

    Egy lista 6 lista elemmel, mindegyik lista elemben három töltelék szóval. Eredménye:

    nav>ul>(li>a>lorem3)*5

    Navigáció listátával, 5 darab lista elemmel, a list elemekben linkekkel. Eredménye:

    VS Code
    Codepen.io
    rövidítéseket

    text-primary

    elsődleges szövegszín

    text-secondary

    másodlagos szövegszín

    text-success

    sikeres szövegszín

    text-danger

    veszélyes szövegszín

    text-warning

    figyelmeztető szövegszín

    text-info

    információs szövegszín

    text-light

    világos szövegszín

    text-dark

    sötét szövegszín

    text-body

    alapértelmezett szövegszín

    text-muted

    lehalkított szövegszín

    text-white

    fehér szövegszín

    Alapértelmezetten a szövegeink megkapják a text-body osztálynak megfelelő szövegszínt.

    A text-light, és a text-white csak sötét háttéren alkalmazható.

    Háttérszín

    Az elemeknek a bg- osztályokkal lehet háttérszínt adni az előre definiált színkészletből.

    CSS osztály

    megnevezés

    bg-primary

    elsődleges háttérszín

    bg-secondary

    másodlagos háttérszín

    bg-success

    sikeres háttérszín

    bg-danger

    veszélyes háttérszín

    bg-warning

    figyelmeztető háttérszín

    A háttérszínt beállító segéd osztályok nem állítják be a szövegszínt, ezt adott esetben külön meg kell tennünk.

    Térközök

    Az üres térközök a design, a megjelenés legalapvetőbb építőkockái közé tartoznak, így a Bootstrap is gazdag eszközkészletet biztosít a kezelésükre.

    Külső margó (margin)

    A külső margó segítségével az elemeink közötti eltartást tudjuk beállítani. Ezt a m- osztályokkal tehetjük meg. A kötőjel után egy nullától ötig terjedő szám következik, ami a margó mértékét határozza meg. A nulla nem tesz ki margót, ezután ahogy növeljük az értéket úgy nő az elemek közötti eltartás:

    Az m- osztályokkal létrehozott külső margó minden irányban, így az elem fölött, alatt, jobbra, és balra is eltartást képez.

    Megadhatjuk külön irányonként is az eltartás mértékét, az mt- az elem fölött, az mr- az elemtől jobbra, mb- az elem alatt, az ml- az elemtől balra képez külső eltartást. Tehetünk eltartást az elemtől jobbra és balra az mx-, illetve lentre és föntre az m-y osztályokkal. Ezekből többet is elhelyezhetünk az egyes elemeken, oldalanként külön állítva az eltartást.

    CSS ostály

    angol megnevezés

    magyar megnevezés

    m-

    margin

    külső margó

    mt-

    margin top

    felső külső margó

    mr-

    margin right

    jobb külső margó

    mb-

    A következő példában egy elem felső eltartását, és oldalsó eltartását (mindkét oldalon) állítjuk be 2 osztállyal:

    Belső margó (padding)

    A külső margóhoz hasonlóan az elemek belső, a tartalom, és az elem széle közötti eltartást a p- osztályokkal szabályozzuk, a kötőjel után egy nullától ötig terjedő számmal, ami a belső margó mértékét határozza meg. Nulla érték esetén az elemnek nem lesz belső margója, ahogy növeljük az értéket, úgy lesz egyre nagyobb a belső eltartás.

    Az p- osztályokkal létrehozott belső margó minden irányban, így az elem tartalma fölött, alatt, jobbra, és balra is belső eltartást képez.

    Megadhatjuk külön irányonként is a belső eltartás mértékét, a pt- az elem tetején, a pr- az elem jobb oldalán, a pb- az elem alján, a pl- az elem bal oldalán képez belső eltartást. Tehetünk belső margót az elem jobb és bal oldalán a px-, illetve alján és tetején a py- osztályokkal. Ezekből többet is elhelyezhetünk az egyes elemeken, oldalanként külön állítva a belső margót.

    CSS ostály

    angol megnevezés

    magyar megnevezés

    p-

    padding

    belső margó

    pt-

    margin top

    felső belső margó

    pr-

    margin right

    jobb belső margó

    pb-

    A következő példában egy elem felső, és jobb oldali belső margóját állítjuk be 2 osztállyal:

    Keret (border)

    Keretet adhatunk a HTML elemeknek a border osztállyal, ebben az esetben az elem mind a négy oldalán megjelenik a keret. Külön-külön oldalanként is megadhatjuk a keretet a border-top, border-right, border-bottom, és a border-left osztályokkal (ezekből többet is megadhatunk egy elemnek).

    Keret színek

    Az elemek keretszíne a border- osztályokkal állítható az előre definiált színpaletta alapján:

    CSS osztály

    megnevezés

    border-primary

    elsődleges keretszín

    border-secondary

    másodlagos keretszín

    border-success

    sikeres keretszín

    border-danger

    veszélyes keretszín

    border-warning

    figyelmeztető keretszín

    CSS osztály

    megnevezés

    Videó kezdőknek:

    A VS Code forráskódja megtekinthető a Github-on: https://github.com/Microsoft/vscode

    Emmet
    Bővítmények
    színsémák
    VS Code beszerzése, telepítése
    https://code.visualstudio.com/
    A VS Code felhasználói felülete.
    https://www.youtube.com/watch?v=Sdg0ef2PpBw
    Kiskacsa balra úsztatva
    Kiskacsa jobbra úsztatva.
    töltsük le
    https://getbootstrap.com/docs/4.4/getting-started/download/
    https://jquery.com/download/
    https://cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.j
    763KB
    bootstrap.zip
    archive
    Open
    bootstrap.zip
    Bootstrap Grid Overlay bővítmény működés közben
    Ez már egy használható vízszintes menü.
    Egy lehetséges menü stílus.
    <div class="container-fluid">
      <!-- Ide jön a középre zárt tartalom -->
    </div>
    gomb

    Type Scale

    A Type Scale egy tipográfiai skála kalkulátor, segítségével vizuálisan kiprobálhatjuk a címek, és a kenyérszöveg arányait. Google fontokat használ, és a stílusok exportálhatóak CSS állományként, amit egyből be is köthetünk a HTML állományainkba.

    A Type Scale elérhető az alábbi linken: https://type-scale.com

    Grid rendszer

    A Bootstrap Grid rendszer egy rugalmas eszköz, amivel a különböző képernyő felbontásokon eltérő modulhálós megjelenést tudunk biztosítani a webalkalmazásainknak.

    Konténer - container

    Bár az előző fejezetben taglalt konténer elem önmagában grid nélkül is alkalmazható, a grid rendszer használatához szükséges, ugyanis grid rendszer csak konténer elemben veszi fel az oldalsó eltartásokat, ennek hiányában a böngésző lap széléhez fognak érni az elemeink.

    Konténer elemet a container, vagy container-fluid osztállyal tudunk létrehozni:

    Sor - row

    A sor elem fogja össze a modulháló oszlopait, benne rendeződnek beállításaiknak megfelelő szélességű cellákra.

    Sor elemet a row osztállyal tudunk létrehozni, és jellemzően a sorokat közvetlenül konténer elemekben helyezzük el:

    Oszlop - column

    Automatikus oszlopméretezés (auto layout)

    A modulháló oszlopait a col osztállyal hozhatjuk létre, és közvetlenül egy sor elemben kell elhelyezni őket:

    A col osztállyal létrehozott oszlopok sorba rendeződnek, egyenlő arányban töltik ki a rendelkezésre álló helyet:

    A következő példában különböző számú oszlopokat tartalmazó sorokat hasonlíthatunk:

    Rögzített oszlop méretek

    A Grid rendszerben lehetőség van egy 12 oszlopos modulhálónak megfeleltetni az oszlopokat szélességben, ezt a col-x osztályokkal tehetjük meg, ahol az x helyére az elfoglalt oszlopok száma kerül. Ez alapján a col-1 egy oszlop széles, ez a legkisebb oszlop méret, a col-12 pedig a legnagyobb oszlopméret, ami a teljes rendelkezésre álló helyet kitölti. Például ha 3 egyforma széles oszlopot szeretnénk egymás mellett megjeleníteni mindegyiken a col-4 osztályt kell alkalmaznunk (12/3=4):

    Egy soron belül az oszlop méreteket kombinálhatjuk:

    Reszponzív oszlopok

    Az oszlopok beállításait képernyő felbontástól függően befolyásolhatjuk, böngésző ablak szélességétől függően adhatunk meg az oszlopainknak külőnböző méretet:

    Ahogy megfigyeljük minden mérettartomány egy fix értéken és a fölött lép érvénybe. 576 pixel (kicsi) felbontás alatt az alapértelmezett érték érvényesül, így ezt érdemes mindíg beállítani. Ha egy adott tartományra nem adunk meg értéket, az annál kisebb, vagy az alapértelmezett beállítás fog érvényesülni.

    col- osztály után fűzve a mérettartomány rövidítését lépésenként tudjuk beállítani az adott oszlopot:

    A következő példában az oszlopaink szélessége legkisebb képernyő méreten (mobil) teljes képernyő szélesség, kicsi képernyő méreten (tablet) fél képernyő szélesség, közepes képernyő méreten egyharmad képernyő szélesség, és így tovább, ahogy növekszik a képernyő méret egyre több elem fér el egymás mellett:

    Legjellemzőbb használat, hogy az elemeinket mobilon függőlegesen rendezzük, egyébként meg egymás mellett vízszintesen:

    VS Code anatómiája

    Első lépések

    Első indításkor egy üdvözlő képernyőt kapunk, itt azonnal elérünk pár funkciót, többek között egy segítség listát a kezdeti lépésekhez. Az üdvözlőképernyőt újra elő tudjuk hozni a Help menüből, válasszuk a Wolcome menüpontot..

    1 - Üdvözlő képernyő 2 - Tevékenységek (Activity bar) 3 - Beállítások

    Parancs paletta

    A legfontosabb, legsokoldalúbb eszköze a VS Code-nak a parancs paletta, több funkciója van, ezekhez a funkciókhoz különböző billentyű kombinációk társulnak. Ezeket a funkciókat áttekinthetjük, ha csak egy kérdőjelet írunk a parancs palettába.

    VS Code parancsok - Ctrl + Shift + p

    Ez megnyitja a parancs palettát, és a paletta keresője az összes VS Code parancs között szűr. Például ha beírjuk, hogy help, a parancs paletta felsorolja az összes parancsot, ami a VS Code dokumentációjával, a a segítség menüpontokkal kapcsolatos.

    Figyeljük meg, hogy ebben a módban egy > karakter jelenik meg a paletta szűrőjében.

    Navigáció az állományok között - Ctrl + p

    Így a megnyitott mappa állományai között lehet keresni, gépeljük be az állomány nevét, és a VS Code a megfelelő állományt fogja megnyitni.

    Ha az állomány neve után kettőspontot írunk, és beírunk egy számot, a VS Code a megfelelő számú sorra fog ugrani.

    Navigáció az állományon belül - Ctrl + g

    A kettőspontos módszer működik állománynév nélkül is, ebben az esetben a szerkesztő a megnyitott állomány megfelelő sorára ugrik.

    Navigáció a megnyitott állományok (tabok) között - Ctrl + Shift + Tab

    A megnyitott tabok között tudunk így váltani, ez akkor hasznos ha sok tabunk van megnyitva.

    Navigáció szimbólumok között - Ctrl + Shift + o

    Egy állományon belül tudunk így navigálni a HTML elemek, vagy CSS stílusok között, esetleg a JavaScript funkciók között.

    Ha a listából kiválasztunk egy elemet, a szerkesztő automatikusan a megfelelő sorra ugrik.

    Parancs paletta funkciók áttekintése

    Google Fonts

    Mi az a Google Fonts?

    A Google Fonts a Google 2010 óta üzemelő ingyenes webfont szolgáltatása. Hozzávetőleg 900 fontot bocsátanak rendelkezésre, ebből 4-500 font támogatja a magyar ékezeteket.

    A Google Fonts-on elérhető fontok a SIL Open Font License hatálya alá esnek, üzleti felhasználásuk is szabad, és ingyenes.

    A szolgáltatás az alábbi linken érhető el: https://fonts.google.com/

    Google Fonts használata

    Kereső

    A Google Fonts-ban számos font található meg (~900), hogy a felhasználó könnyen megtalálja a neki megfelelő fontokat, a Google Fonts rendelkezik keresővel:

    1. Szöveges kereső - itt a fontok nevére, szerzőjére kereshetünk.

    2. Font kategóriák - Kiválaszthatjuk, hogy a találatok között mely kategóriába tartozó fontok jelenjenek meg (lásd ).

    3. Rendezés - Rendezhetjük a fontokat név, dátum, népszerűség szerint.

    4. Nyelvek - Támogatott nyelvekre szűrhetünk, a magyar ékezetes fontok szűréséhez a

    Font lista

    A font listában próbálhatjuk ki, és hasonlíthatjuk össze a szűrőfeltételeknek megfelelő fontokat.

    1. Font neve, szerzője

    2. Font hozzáadása a kiválasztott fontok közé

    3. Nézet beállításai

      1. Előre definiált szövegek (például számok, karakterek, bekezdés, ...)

    Fontok kiválasztása, beépítése

    Fontokat a jellel választhatunk ki letöltésre, vagy beépítésre. Ha van kiválasztott fontunk a képernyő alján megjelenik egy ablak (fekete sáv), ezt felnyitva kapjuk meg a lehetséges beállításokat.

    1. Kiválasztott fontok száma.

    2. Kiválasztott fontok listája, mínuszra kattintva lehet őket eltávolítani.

    3. Kiválasztott fontok letöltése, ez nem webfontot szolgál ki, grafikai programokban lehet használni (Photoshop, Illustrator), vagy rendszerfontként lehet telepíteni az operációs rendszerünkben.

    4. Betöltődési sebesség, minél több fontot választunk ki a projektünkben, annál jobban terheli a felhasználó sávszélességét.

    Részletes beállítások

    A részletes beállítások alatt választhatjuk ki a fonthoz tartozó vastagság értékeket, és a karakterkészletet (nyelv).

    Fontonként kiválaszthatjuk a használni kívánt betűvastagság értékeket:

    Magyar ékezethez a Latin Extended karakterkészletre van szükség:

    Példa HTML állomány

    A következő példában a Lobster, és a Roboto fontokat kötjük be egy HTML állományba. A fontokból a magyar ékezetes Latin Extended karakterkészletet használjuk:

    Kiválasztott fontok a Google Fonts-on:

    HTML állomány:

    Az állomány böngészőben megnyitva:

    Font Squirrel

    Mi az a Font Squirrel?

    A Font Squirrel (vagy Betű Mókus) egy webfont szolgáltatás, ingyenes, és fizetős webfontok mellett kínálnak egy webfont generátort. A generátorral hagyományos betűtípusokból készíthetünk a böngészők által is támogatott webfontokat, a generátor fontok bekötéséhez szükséges CSS-t is elkészíti.

    A webfont generátor a Generator menüpont alatt érhető el: https://www.fontsquirrel.com/tools/webfont-generator

    A webfontokról bővebben:

    Szövegek, szövegközi elemek

    Font Squirrel használata

    A webfont előállításához szükség van egy font állományra, amit az Upload Fonts gombbal lehet feltölteni. Párhuzamosan több fontot is fel lehet tölteni.

    A generáláshoz el kell fogadni a jogi nyilatkozatot, hogy van jogunk az adott fontot felhasználni.

    A feltöltött fontokat kilistázza a generátor, amiket az x -re kattintva lehet eltávolítani, ha mégsemakarjuk webfontá alakítani őket.

    Az Expert beállításokat kiválasztva számos beállítás közül kiválaszthatjuk például a generálandó webfont formátumokat. A webfont formátumokról bővebben: .

    Amennyiben csak modern böngészőket akarunk támogatni, elég a WOFF, és a WOFF2 formátumot választani (ez az alapbeállítás). A TrueType, EOT és SVG formátumokat csak régebbi, mára már elavult böngésző verziók támogatása esetén kell kiválasztani.

    Magyar ékezetes betűtípus generálásához a fontnak támogatnia kell a megfelelő ékezeteket, és az Expert beállításokban ki kell választanunk a nyelvi támogatást (Subsetting > Custom Subsetting > Language):

    A generált állományokat a Download your kit gombra kattintva lehet letölteni.

    A letöltés egy tömörített zip állomány, ami tartalmazza a legenerált webfont állományokat, egy CSS állományt a generált @font-face stílussal, és egy demó HTML állományt, amiben megtekinthetjük a fontot egy próbaszövegen (a használatba vételhez tömörítsük ki).

    A demó állomány böngészőben megnyitva:

    A legenerált CSS állomány tartalma (ami a fontok bekötéséhez szükséges @font-face):

    W3C Validator

    Mi az a W3C Validator?

    A a nemzetközi szervezet (World Wide Web Consortium) jelölőnyelv ellenőrző eszköze. Ezzel az eszközzel lehet weboldalak vagy beküldött HTML állományok kódját ellenőrizni, hogy azok megfelelnek e a HTML szabványnak. A HTML mellett XML és XHTML dokumentumokat is lehet vele ellenőrizni.

    A W3C Validator elérhetősége:

    Felhasznált irodalom

    Online

    Markdown szerkesztők, olvasók

    style.scss
    $font-family-base: 'Open Sans', sans-serif !default;
    
    @import './scss/bootstrap.scss';
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Bootstrap - Open Sans</title>
        <link
            href="https://fonts.googleapis.com/css?family=Open+Sans&display=swap"
            rel="stylesheet">
        <link rel="stylesheet" href="style.css">
    </head>
    <body>
      <a class="btn btn-primary m-5" href="#" role="button">Gomb</a>
    </body>
    </html>
    style.scss
    @import 'scss/bootstrap.scss';
    <link rel="stylesheet" href="style.css">
    <a class="btn btn-primary" href="#" role="button">Gomb</a>
    style.scss
    $primary: red !default;
    
    @import './scss/bootstrap.scss';
    $grid-columns:                16 !default;
    $grid-gutter-width:           20px !default;
    
    @import './scss/bootstrap.scss';
    <p></p>
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title>Document</title>
    </head>
    <body>
    
    </body>
    </html>
    <h1></h1>
    <h1>Lorem, ipsum dolor.</h1>
    <p></p>
    <p>Lorem ipsum dolor sit amet consectetur adipisicing elit. 
    Officiis, eos? Iste deleniti cum ullam explicabo deserunt 
    eius at fugiat, itaque rem? Consequuntur molestiae enim sequi
    provident molestias inventore praesentium odio?</p>
    <p>Tarka kutya tarka felfelé kucsorodó farka!</p>
    <p>Lorem ipsum dolor sit amet consectetur adipisicing elit. 
    Voluptatem ducimus similique architecto numquam eum, sunt 
    error quasi quas deserunt et. Neque dolorem, veritatis 
    suscipit cum magni magnam veniam ducimus facilis!</p>
    <p>Earum consequuntur tempora non incidunt voluptatem sit 
    quibusdam recusandae facilis? At, tenetur odit fugiat error
    vero perspiciatis assumenda praesentium dolores perferendis
    nostrum ut expedita officia quidem quae labore repellat
    voluptates?</p>
    <p>Voluptates voluptate architecto, qui quas saepe cumque 
    reiciendis alias cupiditate et! Sint unde nisi dolorem 
    voluptates id laudantium perspiciatis reprehenderit, vitae 
    atque architecto amet, eos eligendi veniam, facere autem 
    nesciunt!</p>
    <h1></h1>
    <h2></h2>
    <p></p>
    <h1>Lorem.</h1>
    <h2>Lorem, ipsum dolor.</h2>
    <p>Lorem ipsum dolor sit amet consectetur adipisicing elit. 
    A cupiditate atque assumenda vel iusto. Veritatis, excepturi 
    temporibus aut facilis itaque, expedita dolor voluptate porro 
    harum iure quasi odio quibusdam. Repudiandae?</p>
    <h2>Laboriosam, earum expedita.</h2>
    <p>Voluptas dolores eos excepturi explicabo porro maxime 
    distinctio et hic similique.Iure voluptas, deleniti asperiores
    porro quibusdam aliquam fugit voluptatibus quia officiis
    consectetur atque ad alias saepe, veritatis beatae. Amet.</p>
    <ul>
        <li></li>
    </ul>
    <ul>    
        <li></li>
        <li></li>
        <li></li>
    </ul>
    <ul>
        <li>Lorem, ipsum dolor.</li>
        <li>Saepe, ea unde!</li>
        <li>Quasi, ipsum rerum?</li>
        <li>Odio, est dignissimos.</li>
        <li>Natus, quaerat velit.</li>
        <li>Pariatur, in! Perferendis!</li>
    </ul>
    <nav>
        <ul>
            <li><a href="">Lorem, ipsum dolor.</a></li>
            <li><a href="">Esse, soluta numquam!</a></li>
            <li><a href="">Ullam, eligendi impedit!</a></li>
            <li><a href="">Quod, tempora iusto.</a></li>
            <li><a href="">Quas, at in!</a></li>
        </ul>
    </nav>
    <div class="bg-primary text-white">.bg-primary</div>
    <div class="bg-secondary text-white">.bg-secondary</div>
    <div class="bg-success text-white">.bg-success</div>
    <div class="bg-danger text-white">.bg-danger</div>
    <div class="bg-warning text-dark">.bg-warning</div>
    <div class="bg-info text-white">.bg-info</div>
    <div class="bg-light text-dark">.bg-light</div>
    <div class="bg-dark text-white">.bg-dark</div>
    <div class="bg-white text-dark">.bg-white</div>
    <div class="bg-transparent text-dark">.bg-transparent</div>
    div {
    	float: left;
    	margin: 10px;
    	padding: 10px;
    	width: 150px;
    	height: 150px;
    }
    <div class="border">.border</div>
    <div class="border-top">.border-top</div>
    <div class="border-right">.border-right</div>
    <div class="border-bottom">.border-bottom</div>
    <div class="border-left">.border-left</div>
    div {
    	width: 150px;
    	height: 150px;
    	float: left;
    	margin: 10px;
    	padding: 10px;
    	background-color: #f9f9f9;
    }
    <div class="border border-primary">.border-primary</div>
    <div class="border border-secondary">.border-secondary</div>
    <div class="border border-success">.border-success</div>
    <div class="border border-danger">.border-danger</div>
    <div class="border border-warning">.border-warning</div>
    <div class="border border-info">.border-info</div>
    <div class="border border-light">.border-light</div>
    <div class="border border-dark">.border-dark</div>
    <div class="border border-white">.border-white</div>
    div {
    	width: 150px;
    	height: 150px;
    	float: left;
    	margin: 10px;
    	padding: 10px;
    	background-color: #F5F5F5;
    }
    <p class="text-primary">.text-primary</p>
    <p class="text-secondary">.secondary</p>
    <p class="text-success">.text-success</p>
    <p class="text-danger">.text-danger</p>
    <p class="text-warning">.text-warning</p>
    <p class="text-info">.text-info</p>
    <p class="text-dark">.text-dark</p>
    <p class="text-muted">.text-muted</p>
    <p class="text-body">.text-body</p>
    <div class="bg-dark">
    	<p class="text-light">.text-light</p>
    	<p class="text-white">.text-white</p>
    </div>
    <div class="m-0">Nincs margó</div>
    <div class="m-1">Csekély margó</div>
    <div class="m-2">Kis margó margó</div>
    <div class="m-3">Közepes margó</div>
    <div class="m-4">Nagy margó</div>
    <div class="m-5">Hatalmas margó</div>
    <div class="mt-3 mx-2">...</div>
    <div class="p-0">.p-0</div>
    <div class="p-1">.p-1</div>
    <div class="p-2">.p-2</div>
    <div class="p-3">.p-3</div>
    <div class="p-4">.p-4</div>
    <div class="p-5">.p-5</div>
    <div class="mt-1 mr-2">...</div>
    <h1 class="display-1">Display 1 cím</h1>
    <h1 class="display-2">Display 2 cím</h1>
    <h1 class="display-3">Display 3 cím</h1>
    <h1 class="display-4">Display 4 cím</h1>
    <p class="lead">Lorem ipsum dolor sit amet consectetur
    adipisicing elit. Ipsum quidem asperiores atque adipisci
    ipsa maxime soluta suscipit eaque. Facere, similique?</p>
    <p>Cumque tempora molestiae eum fuga expedita dolorum
    commodi. Quae labore voluptas consequatur vitae cum
    repellat, perferendis eaque delectus ipsum corporis!</p>
    <p>Quia repellendus natus consectetur velit voluptatem
    ducimus, error ut minus laborum dolores ad sequi simi
    ique ipsam eaque earum itaque veritatis!</p>
    <img src="duckling.jpg" class="img-fluid" alt="Kiskacsa">
    <p><img src="duckling.jpg" class="w-25 mr-3 my-1 float-left" alt="Kiskacsa">
    Lorem ipsum dolor sit amet, consectetur adipisicing elit. Magni facilis, 
    quibusdam aliquam quae perspiciatis saepe, veritatis aut a libero aperiam
    quidem autem, optio modi ullam temporibus non eum nesciunt neque? A illo
    laborum quis laboriosam, natus molestias unde quam dolorum iure doloribus,
    saepe, accusamus dignissimos vero beatae corporis ratione cupiditate suscipit
    nam odio recusandae numquam quasi ipsum aperiam! Voluptatibus, est. Qui,
    omnis quasi? Iste ut odio temporibus molestiae corrupti assumenda delectus
    hic repellat nulla voluptatum dicta officia ullam natus libero, placeat
    expedita similique! Magni facere recusandae quia, laudantium assumenda conseq 
    uuntur.</p>
    
    <p><img src="duckling.jpg" class="w-25 ml-3 my-1 float-right" alt="Kiskacsa">
    Lorem ipsum dolor sit amet, consectetur adipisicing elit. Magni facilis, 
    quibusdam aliquam quae perspiciatis saepe, veritatis aut a libero aperiam
    quidem autem, optio modi ullam temporibus non eum nesciunt neque? A illo
    laborum quis laboriosam, natus molestias unde quam dolorum iure doloribus,
    saepe, accusamus dignissimos vero beatae corporis ratione cupiditate suscipit
    nam odio recusandae numquam quasi ipsum aperiam! Voluptatibus, est. Qui,
    omnis quasi? Iste ut odio temporibus molestiae corrupti assumenda delectus
    hic repellat nulla voluptatum dicta officia ullam natus libero, placeat
    expedita similique! Magni facere recusandae quia, laudantium assumenda conseq 
    uuntur.</p>
    <img src="duckling.jpg" class="rounded" alt="Kiskacsa">
    <!-- Kép kis lekerekítéssel -->
    <img class="rounded-sm" src="duckling-s.jpg" alt="Kiskacsa">
    
    <!-- Kép közepes lekerekítéssel -->
    <img class="rounded" src="duckling-s.jpg" alt="Kiskacsa">
    
    <!-- Kép nagy lekerekítéssel -->
    <img class="rounded-lg" src="duckling-s.jpg" alt="Kiskacsa">
    <!-- Körkép, csak négyzetes képekkel működik jól. -->
    <img class="rounded-circle" src="duckling.jpg" alt="Kiskacsa">
    
    <!-- Bélyegkép, izléses kerettel -->
    <img class="img-thumbnail" src="duckling-s.jpg" alt="Kiskacsa">
    bootstrap-cdn.html
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title>Bootstrap CDN</title>
        <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css" integrity="sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh" crossorigin="anonymous">
    </head>
    <body>
        <div class="container">
            <div class="jumbotron my-3">
                <h1>Hello Bootstrap!</h1>
            </div>
        </div>
    
        <script src="https://code.jquery.com/jquery-3.4.1.slim.min.js" integrity="sha384-J6qa4849blE2+poT4WnyKhv5vZF5SrPo0iEjwBvKU7imGFAV0wwj1yYfoRSJoZ+n" crossorigin="anonymous"></script>
        <script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js" integrity="sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo" crossorigin="anonymous"></script>
        <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js" integrity="sha384-wfSDF2E50Y2D1uUdj0O3uMBJnjuUD4Ih7YwaYd1iqfktj0Uod8GCExl3Og8ifwB6" crossorigin="anonymous"></script>
    </body>
    </html>
    <link rel="stylesheet" href="css/bootstrap.min.css">
    <script src="js/jquery-3.4.1.min.js"></script>
    <script src="js/popper.min.js"></script>
    <script src="js/bootstrap.min.js"></script>
    bootstrap.html
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title>Bootstrap CDN</title>
        <link rel="stylesheet" href="css/bootstrap.min.css">
    </head>
    <body>
        <div class="container">
            <div class="jumbotron my-3">
                <h1>Hello Bootstrap!</h1>
            </div>
        </div>
    
        <script src="js/jquery-3.4.1.min.js"></script>
        <script src="js/popper.min.js"></script>
        <script src="js/bootstrap.min.js"></script>
    </body>
    </html>
    nav a {
        display: block;
        padding: 0 16px;
    }
    nav ul {
        list-style-type: none;
        padding: 0;
        margin: 0;
    }
    
    nav li {
        float: left;
    }
    
    nav a {
        display: block;
        padding: 0 16px;
    }
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title>Menu</title>
        <link rel="stylesheet" href="menu.css">
    </head>
    <body>
        <nav>
            <ul>
                <li class="active"><a href="#">Home</a></li>
                <li><a href="#">About us</a></li>
                <li><a href="#">Products</a></li>
                <li><a href="#">Services</a></li>
                <li><a href="#">Contact</a></li>
                <li><a href="#">Blog</a></li>
            </ul>
        </nav>
    </body>
    </html>
    nav ul {
    	list-style-type: none; /* Listáról leveszi a pöttyöket */
    	padding: 0; /* Alapértelmezett lista margó letiltása */
    	margin: 0; /* Alapértelmezett lista belső margó letiltása */
    	height: 46px; /* Lista magasságának beállítása */
    	background-color: #495057; /* A menü háttérszíne */
    	font-family: sans-serif;
    }
    
    nav li {
    	float: left; /* Egy sorba rendezi a lista elemeket */
    }
    
    nav a {
    	display: block; /* Ez kell, hogy be tudjuk állítani az elem magasságát, belső margóját */
    	padding: 0 16px; /* Menü elemek közötti (belső) térköz */
    	text-decoration: none; /* Eltünteti a linkekről az aláhúzást */
    	height: 46px; /* Menü elem magassága */
    	line-height: 46px; /* Vkálisan középre rendezi a menü elemben a szöveget */
    	color: white; /* A menü elemek szövegszíne */
    }
    
    nav li.active a {
    	background-color: #099268; /* Aktív menü elem háttérszíne */
    	
    }
    
    nav a:hover {
    	background-color: #0ca678; /* Kurzor alatt lévő menü elem héttérszíne */
    }
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title>Menu</title>
        <link rel="stylesheet" href="menu.css">
    </head>
    <body>
        <nav>
            <ul>
                <li class="active"><a href="#">Home</a></li>
                <li><a href="#">About us</a></li>
                <li><a href="#">Products</a></li>
                <li><a href="#">Services</a></li>
                <li><a href="#">Contact</a></li>
                <li><a href="#">Blog</a></li>
            </ul>
        </nav>
    </body>
    </html>
    <div class="media">
      <div class="media-body">
        <h3 class="mt-n1">Indiai futókacsa</h3>
        A házikacsa (Anas platyrhynchos domestica) a récefélék családjába
        tartozó baromfi, a tőkés réce (vadkacsa) alfaja, háziasított változata.
        Többnyire fehér színben tenyésztik, de egyes vidékeken, különösen ott,
        ahol vadon élő őseivel könnyen kereszteződhet „vad” színezetű
        példányokat is találunk.
      </div>
      <img src="duckling.jpg" class="ml-3" alt="Kiskacsa" width="96">
    </div>
    <div class="card" style="width: 18rem;">
      <img src="duckling.jpg" class="card-img-top" alt="Kiskacsa">
      <div class="card-body">
        <h3 class="card-title">Házikacsa</h3>
        <p class="card-text">A házikacsa (Anas platyrhynchos domestica) a récefélék családjába tartozó baromfi, a tőkés réce (vadkacsa) alfaja, háziasított változata...</p>
        <a href="#" class="btn btn-primary">Réce rendelés</a>
      </div>
    </div>
    <div class="card" style="width: 18rem;">
      <div class="card-body">
        <img src="duckling-t.jpg" class="img-fluid rounded mb-3" alt="Kiskacsa">
        <h5 class="card-title">Házikacsa</h5>
        <p class="card-text">A házikacsa (Anas platyrhynchos domestica) a récefélék családjába tartozó baromfi, a tőkés réce (vadkacsa) alfaja, háziasított változata...</p>
        <a href="#" class="btn btn-primary">Réce rendelés</a>
      </div>
    </div>
    <div class="card" style="width: 18rem;">
        <div class="card-header font-weight-bold">
            Kacsaféléink
        </div>
        <ul class="list-group list-group-flush">
            <li class="list-group-item"><a href="#">Házikacsa</a></li>
            <li class="list-group-item"><a href="#">Indiai futókacsa</a></li>
            <li class="list-group-item"><a href="#">Tőkés kacsa</a></li>
        </ul>
    </div>
    <div class="jumbotron">
       <h1 class="display-4">Üdvözöljük honlapunkon</h1>
       <p class="lead">Lorem ipsum, dolor sit amet consectetur adipisicing 
       elit. Autem deleniti eos possimus.</p>
       <hr class="my-4">
       <p>Lorem ipsum dolor sit amet consectetur, adipisicing elit. Animi
       eos numquam eius expedita eligendi rerum, exercitationem consequuntur
       voluptatem aut quisquam?</p>
       <a class="btn btn-primary btn-lg" href="#">Olvasson tovább</a>
     </div>
    <div class="jumbotron jumbotron-fluid">
        <div class="container">
            <h1 class="display-4">Üdvözöljük honlapunkon</h1>
            <p class="lead">Lorem ipsum, dolor sit amet consectetur
            adipisicing elit. Autem deleniti eos possimus.</p>
            <hr class="my-4">
            <p>Lorem ipsum dolor sit amet consectetur, adipisicing
            elit. Animi eos numquam eius expedita eligendi rerum,
            exercitationem consequuntur voluptatem aut quisquam?</p>
            <a class="btn btn-primary btn-lg" href="#">Olvasson tovább</a>
        </div>
    </div>
    <nav class="navbar navbar-expand-lg navbar-light bg-light">
      <a class="navbar-brand" href="#">Navbar</a>
      <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
        <span class="navbar-toggler-icon"></span>
      </button>
    
      <div class="collapse navbar-collapse" id="navbarSupportedContent">
        <ul class="navbar-nav mr-auto">
          <li class="nav-item active">
            <a class="nav-link" href="#">Home <span class="sr-only">(current)</span></a>
          </li>
          <li class="nav-item">
            <a class="nav-link" href="#">Link</a>
          </li>
          <li class="nav-item dropdown">
            <a class="nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
              Dropdown
            </a>
            <div class="dropdown-menu" aria-labelledby="navbarDropdown">
              <a class="dropdown-item" href="#">Action</a>
              <a class="dropdown-item" href="#">Another action</a>
              <div class="dropdown-divider"></div>
              <a class="dropdown-item" href="#">Something else here</a>
            </div>
          </li>
          <li class="nav-item">
            <a class="nav-link disabled" href="#" tabindex="-1" aria-disabled="true">Disabled</a>
          </li>
        </ul>
        <form class="form-inline my-2 my-lg-0">
          <input class="form-control mr-sm-2" type="search" placeholder="Search" aria-label="Search">
          <button class="btn btn-outline-success my-2 my-sm-0" type="submit">Search</button>
        </form>
      </div>
    </nav>
    <nav class="navbar navbar-expand-sm navbar-dark" style="background-color: #0ca678;">
        <a class="navbar-brand" href="#">Cég KFT.</a>
        <button class="navbar-toggler d-lg-none" type="button" data-toggle="collapse" data-target="#collapsibleNavId" aria-controls="collapsibleNavId"
            aria-expanded="false" aria-label="Toggle navigation"></button>
        <div class="collapse navbar-collapse" id="collapsibleNavId">
            <ul class="navbar-nav mr-auto mt-2 mt-lg-0">
                <li class="nav-item active">
                    <a class="nav-link" href="#">Főoldal</a>
                </li>
                <li class="nav-item">
                    <a class="nav-link" href="#">Termékek</a>
                </li>
                <li class="nav-item">
                    <a class="nav-link" href="#">Kapcsolat</a>
                </li>
            </ul>
            <form class="form-inline my-2 my-lg-0">
                <input class="form-control mr-sm-2" type="text" placeholder="Keresés">
                <button class="btn btn-outline-light my-2 my-sm-0" type="submit">Keresés</button>
            </form>
        </div>
    </nav>
    <a href="#" class="btn btn-primary">Elsődleges</a>
    <a href="#" class="btn btn-secondary">Másodlagos</a>
    <a href="#" class="btn btn-success">Siker</a>
    <a href="#" class="btn btn-danger">Veszély</a>
    <a href="#" class="btn btn-warning">Figyelmeztetés</a>
    <a href="#" class="btn btn-info">Információs</a>
    <a href="#" class="btn btn-light">Világos</a>
    <a href="#" class="btn btn-dark">Sötét</a>
    <a href="#" class="btn btn-primary">Én egy link vagyok</a>
    <button type="button" href="#" class="btn btn-primary">Én egy gomb vagyok</button>
    <a href="#" class="btn btn-primary btn-sm">Kis gomb</a>
    <a href="#" class="btn btn-primary">Közepes gomb</a>
    <a href="#" class="btn btn-primary btn-lg">Nagy gomb</a>
    <div class="container">
      ...
    </div>

    Alkalmazás

    Operációs rendszer

    Typora

    macOS, Linux, Windows

    Remarkable

    Linux, Windows

    Retext

    Linux

    Markdown 10

    Windows

    Wikipedia

  • Bootstrap

  • Offline

    • Eric A. Meyer - CSS Zsebkönyv

    • Mark Pilgrim - HTML 5 - Az új szabvány

    • Nagy Gusztáv - Web programozás alapismeretek

    • Bo Bergström - Bevezetés a vizuális kommunikációba

    • Molnár Csikós Hajnalka - Online tervezőgrafikai műfajok és médiumok

    Felhasznált képek forrása

    • Wikipedia

    • Lorempixel

    • Pixabay

    MDN Web Docs
    CSS Tricks

    nagyobb vagy egyenlő mint 992 pixel

    Óriás (extra large)

    xl

    nagyobb vagy egyenlő mint 1200 pixel

    Képernyő tartomány

    Rövidítés

    Képernyő szélesség

    Alapértelmezett

    0 - ∞

    Kicsi (small)

    sm

    nagyobb vagy egyenlő mint 576 pixel

    Közepes (medium)

    md

    nagyobb vagy egyenlő mint 768 pixel

    Nagy (large)

    Alapértelmezett

    Kicsi

    Közepes

    Nagy

    Óriás

    .col-

    .col-sm-

    .col-md-

    .col-lg-

    .col-xl-

    A fenti példa széles képernyőn
    Ugyanaz keskenyre húzott képernyőn, vagy mobilon

    lg

    Ctrl + g

    Váltás a megnyitott állományok között

    nincs

    Ctrl + Shift + Tab

    Navigáció szimbólumok között

    @

    Ctrl + Shift + o

    Funkció

    szimbólum

    billentyű kombináció

    Parancs paletta funkciói

    ?

    nincs

    Parancs értelmező

    >

    Ctrl + Shift + p

    Navigáció állományok között

    nincs

    Ctrl + p

    Navigáció állományon belül

    Ctrl + p lenyomása után ha begépelünk egy kérdőjelet, kapunk egy listát az elérhető parancs típusokról.

    :

    Latin Extended
    (Latin bővített) karakterkészletet kell kiválasztani.
  • Szűrés font tulajdonságai alapján - Betűvastagság, variációk száma, vastagság, dőltség, és a karakterek szélessége alapján szűrhetünk.

  • Font vastagság választó

  • Font méret választó

  • Próba szöveg, itt nézhetjük meg, hogy néz ki szöveg megjelenése az adott fonttal.

  • Ezzel az opcióval a kiválasztott próbaszöveg beállítást a listában lévő többi fontra is be tudjuk állítani.

  • Az adott font részletes adatlapjának a megtekintése.

  • HTML link elem a fontok bekötéséhez, alternatívaként használhatunk @import CSS direktívát (erről bővebben: linkek és CSS import).

  • A CSS szabályok, amivel HTML elemekre alkalmazhatjuk a betöltött fontokat.

  • Részletes beállítások

  • általános betűcsaládok
    Kereső részei
    Font nézet
    W3C Validator használata

    Kód beküldése ellenőrzésre

    Három módon küldhetünk be HTML kódot ellenőrzésre, a nekünk megfelelő módot a validator űrlapjának tetején a tabokon választhatjuk ki.

    1. Megadhatunk egy URL-t vagy webcímet ellenőrzésre.

    2. Feltölthetünk egy állományt a számítógépünkről, a feltöltött állományt fogja ellenőrizni a validator.

    3. Copy/paste-el bevághatunk egy teljes, vagy részleges HTML állomány tartalmat ellenőrzésre.

    Webcím ellenőrzéséhez használjuk az Address mezőt.
    Állomány feltöltéshez válasszunk ki egy HTML állományt a számítógépünkről.
    Kódrészlet ellenőrzéshez Ctrl + C, Ctrl + V segítségével illeszthető be a W3C Validatorba.

    További beállítások

    A további beállítások a More Options menüből érhetőek el:

    Karakter kódolás (Character encoding)

    A validator alapbeállításnál megpróbálja felismerni a dokumentum karakter kódolását, de mi is beállíthatunk egy konkrét karakter kódolási táblát a legördülő menüből.

    Dokumentum tipus (Document Type)

    A !doctype meghatározás alapján próbálja meg értelmezni a dokumentumot a validator, ennek hiányában HTML 4.01 Transitional dokumentum típust fogja használni. A legördülő menüből mi is kiválaszthatjuk a megfelelő típust.

    Hiba üzenetek csoportosítása

    Két lehetőség van, az első esetben sorrendben jeleníti meg az üzeneteket, ahogy halad végig a dokumentumon a validator (List Messages Sequentially), a második eset, amikor kategóriánként csoportosítja a hiba üzeneteket (Group Error Messages by Type).

    Forráskód mutatása (Show Source)

    A validator mutatja a forráskódot, és kiemeli benne a hibás elemeket.

    Forráskód tisztítása (Clean up Markup with HTML-Tidy)

    A validátor a HTML-Tidy segítségével megkisérli javítani az esetleges hibákat.

    Cím hierarchia mutatása (Show Outline)

    Ebben az esetben kapunk egy visszajelzést a dokumentum cím szerkezetéről.

    Bőbeszédű kimenet (Verbose Output)

    Bizonyos esetekben részletesebb visszajelzést kapunk így a hibákról.

    Visszajelzések

    Ha megvannak a kívánt beállítások, és a Check gombbal beküldtük az ellenőrizendő kódot, a validator összeállítja nekünk a jelentését.

    Szerencsés eset, nincs hiba.
    Szerencsétlen eset, a forráskód tele van hibával.

    Hibaüzenet felépítése

    1. Hiba sorszáma

    2. Hiba tipusa, hiba (error), vagy warning (figyelmeztetés)

    3. Hiba konkrét leírása

    4. Hiba helye a kódban (line: sor, column: oszlop)

    5. A hibás kódszakasz kiemelve.

    W3C Validator
    W3C
    W3C Validator munka közben

    bg-info

    információs háttérszín

    bg-light

    világos háttérszín

    bg-dark

    sötét háttérszín

    bg-white

    fehér háttérszín

    bg-transparent

    átlátszó háttérszín

    margin bottom

    alsó külső margó

    ml-

    margin left

    bal külső margó

    my-

    margin y

    függőleges külső margó

    mx-

    margin x

    vízszintes külső margó

    margin bottom

    alsó belső margó

    pl-

    margin left

    bal belső margó

    py-

    margin y

    függőleges belső margó

    px-

    margin x

    vízszintes belső margó

    border-info

    információs keretszín

    border-light

    világos keretszín

    border-dark

    sötét keretszín

    border-white

    fehér keretszín

    @font-face

    ePub formátum

    Mi is az az ePub?

    Az ePub egy ingyenes, nyílt forráskódú elektronikus könyv szabvány, ami a tartalmak optimális megjelenítését teszi lehetővé a legkülönfélébb olvasó eszközökön.

    Az ePub szabvány az elterjedt webes technológiákra épül, az ezzel a szabvánnyal készült könyvek adatait XML dokumentumokban, a tartalmakat HTML-ben tárolja, a szöveg formázását padig CSS állományok biztosítják.

    ePub dokumentum felépítése

    Az ePub állomány egy tömörített dokumentum, ami zip tömörítést használ, bár a kiterjesztése .epub, ezeket az állományokat kitömöríthetjük, ha átnevezzük .zip kiterjesztésűre. Kitömörítve egy könyvtárstruktúrát láthatunk, ami további alkönyvtárakból és állományokból áll.

    mimetype állomány

    Ez az állomány segít felismerni az ePub dokumentumot, az operációs rendszerek, és az olvasó programok ennek az állománynak a tartalma alapján azonosítják be az eKönyvet. Tartalma ennek megfelelően:

    Csak ezt az egy sort tartalmazhatja, szóköz és enter nélkül.

    mimetype kötelezően a neve ennek az állománynak, és nincs kiterjesztése.

    Minden más állományt és dokumentumot könyvtárakban helyezünk el, vagyis az ePub dokumentumunk gyökérkönyvtárában csak ez az egy állomány lehet, így szavatoljuk, hogy a különböző programok először ezt az állományt találják meg.

    container.xml állomány

    Az ePub kompatibilis olvasók először ezt az állományt keresik, ebben kell feltüntetni a dokumentum meta adatait tartalmazó állomány pontos helyét (rootfile).

    OPF állomány

    Ez az állomány tartalmazza az ePub dokumentum meta adatait. Formátuma igen kötött (XML), és a tartalma jellemzően kötelezően meghatározott elemekből áll.

    metadata szekció

    Metadata szekcióban találhatóak a könyv adatai, például a könyv címe, szerzője, megjelenési dátuma, egyedi azonosítója, és a könyv nyelvének azonosítója.

    Példa képpen a könyv címe így néz ki:

    manifest szekció

    A manifest szekciónak tartalmaznia kell egy hivatkozást a könyv minden állományára (a mimetype, a container és az OPF kivételével). Ez a lista segít azonosítani és lokalizálni minden egyes szükséges állományt.

    Az alábbi kódrészlet a jellemző állománytipusokhoz tartalmaz egy-egy példát:

    Minden manifest hivatkozásnak tartalmaznia kell egy egyedi azonosítót (id), egy állomány elérési útvonalat (href) és egy típus tulajdonságot (media-tipe). Két elem nem létezhet ugyanazzal az egyedi azonosítóval.

    spine szekció

    A spine egy lista, ami a tartalmi állományok, vagyis a könyv részeinek sorrendjét határozza meg, fel kell benne sorolnunk minden a könyv részeit tartalmazó HTML állományt. Az eKönyv olvasó programok e lista alapján mennek végig a fejezeteken.

    Minden HTML dokumentum kap egy idref bejegyzést, ami a korábbi a manifest szekcióban meghatározott egyedi azonosítóra (id) hicatkozik:

    guide szekció

    Ez a rész opcionális, el is lehet hagyni, a segítségével az eKönyv olvasó program saját menüjében tudunk ugrópontokat létrehozni.

    Az alábbi példában a borítóhoz biztosítunk egy ugrópontot a felhasználó számára:

    Tartalomjegyzék (toc.ncx)

    Kiterjesztése (.ncx) ellenére ez is egy XML dokumentum. Az eKönyv olvasó programok ennek az állománynak a tartalma alapján építik fel a könyv tartalomjegyzékét.

    A tartalomjegyzék állomány

    Fejléc szekció (head)

    A fejléc a tartalomjegyzék mélységét, illetve az oldalak számát tartalmazza (ez lehet nulla).

    Könyv címe (docTitle)

    Kötelező megadni, az olvasó program ezt tünteti fel a tartalomjegyzékben.

    Navigációs térkép (navMap)

    A navigációs térkép segíti a felhasználót, ugrópontokat ad a fejezetekhez:

    Minden bekezdésnek, vagy hivatkozott szövegrészletnek létre lehet hozni egy navigációs pontot (navPoint). Minden egyes navigációs pont tartalmaz egy egyedi azonosítót (nem lehet két pontnak ugyanaz az azonosítója), egy sorrend számozást (playOrder), ez alapján megy végig az eKönyvolvasó a navigációs pontokon. Tartalmaz egy felirator (navLabel), ez lesz a tartalomjegyzékben a navigációs pont címkéje, vagy felirata, végül egy hivatkozást, ami lehetegy HTML állomány, vagy egy elem is a HTML állományon belül (id azonosító alapján) erre hivatkozik az adott navigációs pont.

    Tartalmi állományok (HTML)

    Az ePub könyvekben a tartalom HTML dokumentumokban található, ezk a mostanság megszokott HTML 5-ös verziótól némileg eltérő, annál szigorúbb XHTML 1.1 szabvány szerint készülnek.

    Az XHTML szigorúbb, minden elemnek kötelező a záró elemét kitenni, illetve azok az elemek, amiknek nincs záró eleme (hr, br, img, ...) kötelezően egy / jellel kell végződjenek: <hr /> <br /> <img src="..." alt="..." />

    A HTML-től eltérően kell egy XML deklaráció az első sorba, illetve az utána következő doctype is eltér a HTML 5 -ben megszokottól:

    A tratalmi rész, vagyis a HTML dokumentum törzse viszont a megszokott módon épül fel, elhelyezhetünk benne szöveges vagy képi elemeket.

    Stílus állományok (CSS)

    A szövegeink, a médiatartalmak, és a könyvborító megjelenését CSS segítségével tudjuk meghatározni.

    Az elemek és a szövegek méretezésére tipográfiai mértékegységet érdemes használni (em), a méreteket nem adhatjuk me pixelben. Ha tipográfiai mértékegységet használunk az olvasó képes lesz szabályozni a szövegek méretét. Erre bővebben a CSS mértékegységek fejezet tér ki:

    A szöveges tartalom formázásáról bővebben a CSS fejezet szöveg tulajdonságokkal kapcsolatos fejezete tér ki:

    Képek

    A HTML dokumentumokban lehetőség van a szöveg mellett képeket is elhelyezni. Jelenleg az ePub a GIF, PNG, JPEG és az SVG formátumokat támogatja.

    A képeknek nincs lezáró elemük, így el kell látni őket egy / karakterrel (lásd feljebb a ):

    Glitch.com

    Mi az a Glitch.com?

    A Glitch.com egy online szolgáltató, webes alkalmazásokat lehet szerkeszteni, és publikálni vele. Kiváló eszköz arrar a célra, hogy prototípusokat, egyszerű statikus weboldalakat osszunk meg másokkal. A publikálás ingyenes, néhány korlátozással (havidíjjas előfizetéssel ezek a korlátozások kikerülhetőek).

    Publikálás lépései:

    Regisztráció

    Regisztrálni az alábbi címen lehet: .

    Facebook, Google és GitHub fiókkal tudunk regisztrálni, de lehetőség van email címet is megadni.

    Projekt létrehozása

    Felső menüből válasszuk ki a(új projekt) gombot. Ekkor a rendszer megkérdezi, hogy milyen tipusú projektet szeretnénk létrehozni, válasszuk a opciót, ezzel egy egyszerű statikus weboldalt hozhatunk létre.

    Létrehozás után átkerülünk a projekt szerkesztőfelületére:

    Az első állomány amit megnyit a felület a README.md ami egy kis súgó, érdemes elolvasni a tartalmát. Általános magyarázatot kapunk benne a Glitch.com-ról, és a szerkesztőben már létrehozott állományokról.

    • index.html - ebbe az állományba kerül a projektün főoldalányk tartalma.

    • style.css - ez az állomány tartalmazza a CSS stílusokat

    • script.js - ide kerülnek az interaktivitást vezérlő JavaScript kódok

    A bal oldali menüből az index.html állományt kiválasztva nyílik meg a szerkesztőfelület, ez egy online szövegszerkesztő (korlátozott lehetőségekkel):

    Az új projektet a menüpont alatt tudjuk megnézni, új ablakban vagy osztott képernyős nézetben tekinthetjük meg, mindkét esetben azonnal látjuk a módosításainkat az oldalon.

    A projekt nevét és -jét a Glitch.com a létrehozásnál véletlenszerűen határozza meg, ha szeretnénk módosítani a bal felső sarokban lévő menüben tehetjük meg, a kinyíló kis ablakban kattintsunk a projekt nevére. Ugyanitt adhatunk egy leírást is a projekthez.

    Képek feltöltése

    ...

    VS Code összekötése a Glitch.com -al

    Lehetőség van a Glitch.com-on elhelyezett projektjeink szerkesztésére a -ban, ennek számos előnye van, töbek között a VS Code több segítséget ad, és jobb átláthatóságot biztosít.

    VS Code és a Glotch.com összekötésének lépései

    Glitch.com plugin telepítése a VS Code-ba

    A bal oldali függőleges menüből nyissuk meg a VS Code bővítmény kezelőjét (Extensions), a keresőbe írjuk be a Glitch kulcsszót, és válasszuk ki a Glitch bővítményt és nyomjuk meg az gombot.

    Projekt megnyitása szerkesztésre

    Projektet a VS Code lehet megnyitni, nyomjuk meg a Ctrl+Shift+p billentyű kombinációt (vagy a menüből View/Command Palette). A megjelenő ablakba írjuk be, hogy Glitch:

    Listában megjelennek a Glitch-el kapcsolatos parancsok, válasszuk ki az Open Projekt (Projekt megnyitása parancsot).

    Ahhoz hogy az online projektet tudjuk szerkeszteni, a szövegszerkesztőnket be kell jelentkeztetni a Glitch.com rendszerébe, ha ezt még nem tettük meg a VS Code felkínálja a bejelentkezést.

    Válasszuk ki az online autentikációt (Sing in on glitch.com). A VS Code megnyitja az alapértelmezett böngészőt, amiben engedélyezhetjük a VS Code kapcsolódását - feltéve hogy be vagyunk jelentkezve a Glitch.com on ezzel a böngészővel.

    Visszatérve a VS Code-ba már ki tudjuk választani a korábban az online felületen létrehozott projektünket. Minden amit szerkesztünk, és elmentünk azonnal megjelenik a projekten.

    VS Code beszerzése, telepítése

    Beszerzés

    A Visual Studio Code ingyenesen beszerezhető a gyártó honlapján, a letöltések alatt: https://code.visualstudio.com/

    Letöltés a jobb felső sarokban.
    Minden operációs rendszerre megtaláljuk a megfelelő verziót.

    Válasszuk az operációs rendszerünknek leginkább megfelelő verziót, és a letöltött telepítőt futtassuk.

    A .zip verzió Microsoft Windows operációs rendszereken telepítés nélkül is futtatható pendrive-ról is. A futtatáshoz csomagoljuk ki a tömörített csomagot, és futtassuk a Code.exe állományt.

    Az eKönyvekről dióhéjban

    Mi is az az eKönyv?

    Az elektronikus könyv a fizikai könyvek elektronikus változata.

    A fizikai könyvekhez hasonlóan szöveget és képet tartalmaz, de az új eKönyv formátumok támogatják a multimédiás tartalmakat, audió és videó anyagok beágyazását is lehetővé teszik. Az eKönyv létrehozása, terjesztése, és fogyasztása elektronikus úton történik.

    A fogyasztó számos lehetőség közül választhat, eKönyv olvasó program szinte minden platformon elérhető, erre jó példa az Amazon Kindle alkalmazása, ami telepíthető mobiltelefonra, tabletre, vagy akár PC-re is. Komoly áttörést mégis a dedikált ekönyvolvasó készülékek hoztak, ezek jellemzően saját beépített könyvesbolttal is rendelkeznek, így a fogyasztó bármikor és bárhol bővítheti a könyvtárát.

    Elektronikus papír

    Digitális eszközeink kijelzői jellemzően háttérvilágítással teszik láthatóvá a megjelenített tartalmakat, ez hosszú távon kényelmetlen, és terheli a szemet, szintén előnytelen a magas energia igényük, bekapcsolt állapotban folyamatosan veszik fel az áramot, emiatt könyvolvasásra nem felelt meg ez a technológia. Változást az e-papír, vagy elektronikus papír hozott, ami apró elektronikus pigmenteken alapszik, a felületen tényleges kontraszt változás áll be, amit a környezet fényével is érzékel az emberi szem. Nagy előnye, hogy csak a képernyő frissítése (lapozás) használ energiát, így az eKönyv olvasó eszközök akár hetekig is üzemelnek egy töltéssel.

    eKönyv formátumok

    Az internet megjelenésével már elérhetővé váltak a letölthető szöveges dokumentumok, ezek még nem rendelkeztek a könyvekre jellemző adottságokkal (borító, tartalomjegyzék), vagy a szöveg formázásának lehetőségével, vagy képi elemekkel, a legjellemzőbb ilyen formátum a txt, ez a mai napig használatban van. Később megjelentek a szövegszerkesztő szoftverek, és az ezekben használt dokumentumformátumok, mint mint a doc. Ezeket a formátumokat tekinthetjük az eKönyvek őseinek.

    Pdf - Általános dokumentumformátum, a legelterjedtebb eKönyv típus, bár felépítéséből adódóan a fizikai eKönyv olvasókon nehézkesen használható, kötött a layout, nem adaptálódik a különböző kijelzőméretekhez.

    Dedikált eKönyv formátumok:

    • Mobipocket - Platformfüggetlen formátum, a korai Kindle készülékek preferált formátuma, kiterjesztése .mobi, vagy .prc lehet.

    • Epub - Platformfüggetlen, széles körben alkalmazott formátum, HTML-CSS alapokra épül, emiatt könnyen, változatosan formázható a tartalma.

    • AZW - Az Amazon saját ekönyvformátuma, amit digitális másolásvédelemmel láttak el (DRM)

    Történeti áttekintés

    • 1993 - Adobe bemutatja a PDF formátumot

    • 1998 - Az első dedikált eKönyv olvasó készülékek megjelenése (The Softbook, Rocket eBook Reader)

    • 1999 - Open eBook formátum (később ebből alakul ki az ePub és a Mobipocket)

    Fénykép forrása: NotFromUtrecht - A feltöltő saját munkája, CC BY-SA 3.0,

    Kliens oldali keretrendszerek

    A kliens oldali keretrendszerk a felhasználói felület (UI) kiépítésére kínálnak előre elkészített, konfigurálható komponenseket. A legjellemzőbb szolgáltatásuk a modulháló, vagy grid rendszer.

    Keretrendszer

    JavasCript

    Honlap

    Bootstrap 4

    jQuery

    React Bootstrap

    React.js

    Tanulási alternatívák

    Ajánlott irodalom

    • Kezdő

      • Mark Pilgrim - HTML5 az új szabvány

    Visszajelzés, kapcsolat

    A fejezetekkel kapcsolatos hibajelzéseket, bővítéssel, részletezéssel kapcsolatos kéréseket a könyv github oldalán lehet feltenni: Kérdés, észrevétel esetén:

    <div class="container">
        <div class="row">
            ...
        </div>
    </div>
    <div class="container">
        <div class="row">
            <div class="col">
                Első oszlop
            </div>
            <div class="col">
                Második oszlop
            </div>
            <div class="col">
                Harmadik oszlop
            </div>
        </div>
    </div>
    <div class="container">
        <!-- Egy oszlopos sor -->
        <div class="row">
            <div class="col">1</div>
        </div>
        
        <!-- Két oszlopos sor -->
        <div class="row">
            <div class="col">1</div>
            <div class="col">2</div>
        </div>
        
        <!-- Öt oszlopos sor -->
    		<div class="row">
            <div class="col">1</div>
            <div class="col">2</div>
            <div class="col">3</div>
            <div class="col">4</div>
            <div class="col">5</div>
        </div>
    </div>
    <div class="container">
    		<div class="row">
    				<div class="col-4">col-4</div>
    				<div class="col-4">col-4</div>
    				<div class="col-4">col-4</div>
    		</div>
    </div>
    <div class="container">
    	<div class="row">
    		<div class="col-6">col-6</div>
    		<div class="col-4">col-4</div>
    		<div class="col-2">col-2</div>
    	</div>
    </div>
    <div class="container">
        <div class="row">
            <div class="col-12 col-sm-6 col-md-4 col-lg-3 col-xl-2">1</div>
            <div class="col-12 col-sm-6 col-md-4 col-lg-3 col-xl-2">2</div>
            <div class="col-12 col-sm-6 col-md-4 col-lg-3 col-xl-2">3</div>
            <div class="col-12 col-sm-6 col-md-4 col-lg-3 col-xl-2">4</div>
            <div class="col-12 col-sm-6 col-md-4 col-lg-3 col-xl-2">5</div>
            <div class="col-12 col-sm-6 col-md-4 col-lg-3 col-xl-2">6</div>
        </div>
    </div>
    <div class="container">
        <div class="row">
            <div class="col-12 col-md-4">1</div>
            <div class="col-12 col-md-4">2</div>
            <div class="col-12 col-md-4">3</div>
        </div>
    </div>
    google-fonts-example.html
    <!DOCTYPE html>
    <html lang="hu">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title>Google Font példa</title>
    
        <!-- A Lobster és a Roboto fontokat importáljuk egy link segítségével -->
        <link href="https://fonts.googleapis.com/css?family=Lobster|Roboto:400,700&amp;subset=latin-ext" rel="stylesheet">
    
        <style>
            /* Címeknek a Lobster fontot állítjuk be CSS-el: */
            h1, h2 {
                font-family: 'Lobster', cursive;
            }
    
            /* Bekezdéseknek a Roboto fontot állítjuk be CSS-el: */
            p {
                font-family: 'Roboto', sans-serif;
            }
        </style>
    </head>
    <body>
        <h1>Lorem, ipsum dolor.</h1>
        <h2>Lorem ipsum dolor sit amet.</h2>
        <p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Quibusdam iste vero sequi voluptatem possimus doloremque voluptates nam beatae ad illo animi earum eaque quia omnis perferendis necessitatibus, itaque eius hic!</p>
        <h2>Veniam blanditiis tempora nobis voluptates.</h2>
        <p>Quaerat iusto dolores numquam consequatur in saepe quod ducimus ex consequuntur error quasi accusantium placeat aspernatur dolore cupiditate, repellendus porro sunt. Optio iste harum, quia voluptatum itaque expedita quas repellat.</p>
    </body>
    </html>
    
    @font-face {
        font-family: 'plaingermanicaregular';
        src: url('plain_germanica-webfont.woff2') format('woff2'),
             url('plain_germanica-webfont.woff') format('woff');
        font-weight: normal;
        font-style: normal;
    
    }

    Zurb Foundation

    jQuery

    https://foundation.zurb.com

    Bulma

    -

    https://bulma.io

    Material UI

    React.js

    https://foundation.zurb.com

    https://getbootstrap.com
    https://react-bootstrap.github.io/
    https://github.com/vargaLaszlo/digitalis-kiadvanyok/issues
    varga.laszlo@protonmail.com

    assets - ebbe a mappába tölthetjük be a multimédiás tartalmakat, amik az oldalon jelennek meg

    https://glitch.com/signup
    URL
    Visual Studio Code
    parancsértelmezőjével
    Az újonnan létrehozott projekt
    Osztott nézet
    2000 - Első csak elektronikusan megjelenő könyv (Stephen King - Riding the Bullet)
  • 2004 - Első eInk kijelzős ekönyv olvasó (Sony Libré)

  • 2007 - Amazon piacra dobja az első Kindle olvasóját

  • 2010 - Apple bemutatja a iPad-ot, és fél millió kötetet kínál az iBookstore-ban

  • 2010 - Az Amazon könyvesboltban több eKönyv kerül értékesítésre, mint fizikai kötet

  • Amazon Kindle eKönyv olvasó
  • Mark Pilgrim - Dive Into HTML5

  • Zoe Mickley Gillenwater - Rugalmas webtervek

  • Virginia DeBolt - Html és CSS - Webszerkesztés stílusosan

  • Eric A. Meyer - CSS zsebkönyv

  • Flavio Copes - The CSS Handbook

  • Nagy Gusztáv - Webes Programozás

  • Virágvölgyi Péter - A tipográfia mestersége számítógéppel

  • Haladó

    • Front-end Developer Handbook 2019

    • Jeremy Keith - Resilient Web Design

    • Johannes Itten - A színek művészete

    • Maczó Péter - Ön itt áll - Az infodesignról

    • Steve Krug - Ne törd a fejem!

    • Susan M. Weinschenk - 100 dolog amit minden tervezőnek tudnia kell az emberekről

    • Donald Norman - The Design of Everyday Things

  • Online Tanfolyamok

    • Kezdő

      • Learn HTML (Codeacademy)

      • Learn CSS (Codeacademy)

    • Haladó

    Weboldalak

    • CSS Tricks

    • 30 Seconds of CSS

    • Flexbox Patterns

    • Smashing Magazine

    Játékok

    • CSS Dinner

    • Flexbox Froggy

    • Grid Garden

    • Flexbox Deffense

    Hírlevelek

    • CSS Weekly

    • Frontend Focus

    Meetupok

    • Frontend Fighters Budapest

    • Frontend Meetup Budapest

    Mértékegységek
    Szövegek, szövegközi elemek
    Tartalmi állományok fejezetben
    application/epub+zip
    <?xml version="1.0"?>
    <container version="1.0" xmlns="urn:oasis:names:tc:opendocument:xmlns:container">
      <rootfiles>
        <rootfile full-path="content/content.opf" media-type="application/oebps-package+xml" />
      </rootfiles>
    </container>
    <?xml version="1.0" encoding="UTF-8"?>
    <package xmlns="http://www.idpf.org/2007/opf" version="2.0" unique-identifier="BookId">
      <metadata xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:opf="http://www.idpf.org/2007/opf">
    		<title>
    			Első ePub könyvem
    		</title>
    		<creator opf:file-as="Gipsz Jakab" opf:role="aut">
    			Gipsz Jakab
    		</creator>
    		<date>
    			2021-03-06
    		</date>
    		<identifier id="BookId">
    			1234567890
    		</identifier>
    		<language>
    			hu
    		</language>
    		<meta content="cover" name="cover" />
    	</metadata>
    	<manifest>
        <item id="ncx" href="toc.ncx" media-type="application/x-dtbncx+xml"/>
        <item id="style" href="style.css" media-type="text/css"/>
    		<item id="coverpage" href="coverpage.html" media-type="application/xhtml+xml"/>
        <item id="content1" href="content1.html" media-type="application/xhtml+xml"/>
    		<item id="content2" href="content2.html" media-type="application/xhtml+xml"/>
        <item id="lobster" href="fonts/Lobster-Regular.ttf" media-type="application/vnd-ms-opentype"/>
    		<item id="opensans" href="fonts/OpenSans-Regular.ttf" media-type="application/vnd-ms-opentype"/>
        <item id="coverimage" href="img/cover.png" media-type="image/png"/>
    		<item id="kiskacsa" href="img/kiskacsa.png" media-type="image/png"/> 
      </manifest>
      <spine toc="ncx">
    		<itemref idref="coverpage"/>
        <itemref idref="content1"/>
    		<itemref idref="content2"/>
      </spine>
      <guide>
        <reference href="coverpage.html" type="cover" title="Ugrás a borítóhoz"/>
      </guide>
    </package>
      <title>
    	  Első ePub könyvem
    	</title>
    <manifest>
        <!-- Tartalomjegyzék állomány: -->
        <item id="ncx" href="toc.ncx" media-type="application/x-dtbncx+xml"/>
        
        <!-- CSS stílus állomány: -->
        <item id="style" href="style.css" media-type="text/css"/>
        
        <!-- HTML állomány: -->
        <item id="content1" href="content1.html" media-type="application/xhtml+xml"/>
        
        <!-- TTF betűtípus: -->
        <item id="opensans" href="fonts/OpenSans-Regular.ttf" media-type="application/vnd-ms-opentype"/>
        
        <!-- Kép: -->
        <item id="coverimage" href="img/cover.png" media-type="image/png"/>
    <manifest>
    <spine toc="ncx">
    		<itemref idref="coverpage"/>
        <itemref idref="content1"/>
    		<itemref idref="content2"/>
    </spine>
    <guide>
        <reference href="coverpage.html" type="cover" title="Ugrás a borítóhoz"/>
    </guide>
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE ncx PUBLIC "-//NISO//DTD ncx 2005-1//EN" "http://www.daisy.org/z3986/2005/ncx-2005-1.dtd">
    <ncx xmlns="http://www.daisy.org/z3986/2005/ncx/" xml:lang="hu" version="2005-1">
        <head>
            <meta name="dtb:uid" content="1234567890 "/>
            <meta name="dtb:depth" content="1"/>
            <meta name="dtb:totalPageCount" content="0"/>
            <meta name="dtb:maxPageNumber" content="0"/>
        </head>
        <docTitle>
            <text>Első ePub könyvem</text>
        </docTitle>
        <navMap>
            <navPoint id="navpoint-1" playOrder="1">
                <navLabel>
                    <text>Borító</text>
                </navLabel>
                <content src="coverpage.html"/>
            </navPoint>
            <navPoint id="navpoint-2" playOrder="2">
                <navLabel>
                    <text>Első fejezet</text>
                </navLabel>
                <content src="content1.html"/>
            </navPoint>
            <navPoint id="navpoint-3" playOrder="3">
                <navLabel>
                    <text>Második fejezet</text>
                </navLabel>
                <content src="content2.html"/>
            </navPoint>
        </navMap>
    </ncx>
     <head>
            <!-- Könyv egyedi azonosítója (ugyanaz mont az OPF-ben) -->
            <meta name="dtb:uid" content="1234567890 "/>
            
            <!-- Tartalomjegyzék mélysége -->
            <meta name="dtb:depth" content="1"/>
            
            <!-- Lapozó és oldalszám beállítás (lehet 0) -->
            <meta name="dtb:totalPageCount" content="0"/>
            <meta name="dtb:maxPageNumber" content="0"/>
     </head>
    <docTitle>
        <text>Első ePub könyvem</text>
    </docTitle>
    
    <navMap>
            <navPoint id="navpoint-1" playOrder="1">
                <navLabel>
                    <text>Borító</text>
                </navLabel>
                <content src="coverpage.html"/>
            </navPoint>
            <navPoint id="navpoint-2" playOrder="2">
                <navLabel>
                    <text>Első fejezet</text>
                </navLabel>
                <content src="content1.html"/>
            </navPoint>
            <navPoint id="navpoint-3" playOrder="3">
                <navLabel>
                    <text>Második fejezet</text>
                </navLabel>
                <content src="content2.html"/>
            </navPoint>
    </navMap>
    <?xml version="1.0" encoding="utf-8"?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="hu">
    <head>
        <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=utf-8"/>
        <link rel="stylesheet" type="text/css" href="style.css"/>
        <title>Első fejezet</title>
    </head>
    <body>
        <h1>Első eKönyvem első fejezete</h1>
        <p>Lorem ipsum dolor sit amet consectetur, adipisicing elit. Hic fugit sint et tempora accusantium odit vel eius itaque, quasi maxime, laborum repellat natus laboriosam omnis sit eligendi unde blanditiis libero!</p>
    </body>
    </html>
    <?xml version="1.0" encoding="utf-8"?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
    /* Font beállítások */
    @font-face {
        font-family: 'Open Sans';
        src: url('fonts/OpenSans-Regular.ttf') format('truetype');
        font-weight: normal;
    }
    
    @font-face {
        font-family: 'Lobster';
        src: url('fonts/Lobster-Regular.ttf') format('truetype');
        font-weight: normal;
    }
    
    body {
        font-family: 'Open Sans';
        font-size: 1em;
    }
    
    h1,
    h2,
    h3,
    h4,
    h5,
    h6 {
        font-family: 'Lobster';
        font-weight: 400;
    }
    
    h1 {
        text-align: center;
        font-size: 4em;
    }
    
    h2 {
        font-size: 3em;
    }
    
    h3 {
        font-size: 2.3em;
    }
    
    h4 {
        font-size: 1.7em;
    }
    
    /* Kép beállítások */
    
    p img {
        width: 33.333%;
        float: left;
        margin-top: 0.285em;
        margin-bottom: 1em;
        margin-right: 1em;
    }
    
    /* Borító oldal beállításai */
    
    #cover {
        margin: 0;
    }
    
    #cover img {
        display: block;
        height: 100vh;
        width: 100vw;
        object-fit: contain;
    }
    
    /* Oldal margó beállításai */
    
    @page {
        margin: 5em;
    }
    <img src="img/kiskacsa.jpeg" alt="Kiskacsa úszik a tóban." />

    Introduction to jQuery (EDX)

    Brad Frost - Atomic Design
    Make a website
    CSS Basics
    HTML5 and CSS Fundamentals
    FreeCodeCamp
    Introduction to HTML (Scrimba)
    Introduction to CSS (Scrimba)
    UI design course (Scrimba)
    Learn GIT (Codeacademy)
    JavaScript Introduction (EDX)
    Introduction to React (EDX)
    Flexbox Zombies
    CSSBattle

    Webmotorok

    Webmotor

    Tipus

    Követelmények

    WordPress

    CMS

    PHP, MySQL vagy MariaDB

    Drupal

    CMS

    PHP, MySQL vagy MariaDB

    Joomla

    CMS

    PHP, MySQL vagy SQL Server vagy PostgreSQL

    Typo3

    CMS

    PHP, MySQL

    Magento

    Webshop

    OpenCart

    Webshop

    Fejlesztéshez alkalmas számítógép konfiguráció

    minimum

    optimális

    Processzor

    Intel Core i3

    Intel Core i7

    Memória

    4GB

    8GB

    Videó kártya

    Nvidia, vagy Ati HDMI csatlakozóval Laptop esetén külső HDMI csatlakozó

    Nvidia, vagy Ati HDMI csatlakozóval

    Laptop esetén külső HDMI csatlakozó

    Merevlemez

    500GB HDD

    500GB SSD

    https://getbootstrap.com/docs/4.4/componentsgetbootstrap.com
    https://marketplace.visualstudio.com/items?itemName=thekalinga.bootstrap4-vscodemarketplace.visualstudio.com
    Jumbotrongetbootstrap
    Bootswatch: Free themes for Bootstrapbootswatch.com
    Logo
    Chrome Web Storechrome.google.com
    Cardsgetbootstrap
    Media objectgetbootstrap
    Buttonsgetbootstrap
    Navbargetbootstrap
    Logo
    The W3C Markup Validation Servicevalidator.w3.org
    Downloadgetbootstrap
    Logo
    Logo
    Logo
    Logo
    Logo
    Logo
    https://marketplace.visualstudio.com/items?itemName=ritwickdey.live-sassmarketplace.visualstudio.com
    Logo