Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Egyedi programozású rendszereket számos cég készít, jellemzően egyedi igényeket elégítenek ki.
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ó.
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.
Az egyedi rendszerek költségvonzata is magasabb.
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.
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
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
Jellemző a bőség zavara, mind fizetős, mind ingyenes rendszerből számolatlan áll rendelkezésre, legelterjedtebb ezek közül:
A WordPress 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. Magyar közösség aktív, és magyar nyelvű kézikönyv 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).
A Drupal 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 kézikönyv, fontos a Drupalaton, a Balatonnál megtartott éves Drupál konferencia. Sok magyar fejlesztőcég dolgozik ezzel a tartalomkezelővel (pl. Penceo, Cheppers).
A Joomla 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.
A Typo3 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: https://trends.google.com/trends/explore?date=all&q=wordpress,drupal,joomla,typo3
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
Online fizetés
Online számlázás
Szállítási költségkalkuláció
Visszaigazoló emailek kezelése
Könyvelés, statisztika
Webáruház motorok tekintetében is bőséges kínálatból választhatunk:
A Magento 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 felhő szolgáltatásába (Adobe Commerce Cloud).
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.
A WooCommerce plugin a WordPress-t ruházza fel webshop funkcionalítással. Létezik hozzá egy speciális WordPress téma, a Storefront, 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: https://trends.google.hu/trends/explore?date=all&q=WooCommerce,Magento,Shopify,Opencart,PrestaShop
A statikus oldal generáló szöveges állományokból, például markdown á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: Jekyll, Hyde, Gatsby
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.
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
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: WIX, Squarespace, site123.com, Weebly, Unbounce
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:
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.
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.
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.
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:
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
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.
A style
elemben a HTML dokumentum megjelenését szabályozó CSS stílusokat helyezhetünk el. A style
nyitó és záró eleme által közrefogott részen a CSS nyelv szabályai érvényesek.
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.
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.
Az oldal szöveges tartalmát bekezdésekben p
helyezhetjük el.
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
.
A listákat egymásba is lehet ágyazni, így lehet több szintű listákat létrehozni.
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).
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ő egymásba ágyazása 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 elemek listájában megtaláljuk, hogy mely elemek rendelkeznek blokkos, vagy szövegközi megjelenítési móddal.
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.
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.
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.
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.
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.
A hr
(vízszintes vonal) elem egy vízszintes vonalat hoz létre. Célja a tartalom tagolása.
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 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.
A nav
elem kifejezetten egy weboldalon belüli (aloldalak közötti) navigációra szolgál, így linkeket helyezhetünk el benne.
Bonyolultabb navigáció, például egy weboldal főmenüje esetében a linkeket lista elemekben csoportosíthatjuk a nav
elemen belül.
A menü linkek listába helyezése lehetővé teszi több szintű almenü struktúra létrehozását.
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 head
elemmel!
A main
elembe kerül a lényegi tartalom egy oldalon, minden ami nem a tartalommal közvetlenül kapcsolatos (például navigáció), az ezen az elemen kívül helyezendő el. Egy HTML dokumentumban csak egy main
elem helyezhető el.
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.
A footer
elem a header
elem párja, értelemszerűen vizuálisan a dokumentum (vagy a dokumentum egy alegységének) alján alkalmazandó.
Egy nagyobb szerkezeti egységet tagolhatunk a section
elemekkel kisebb egységekre.
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.
Ű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.
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.
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:
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.
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.
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 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
, font
, frame
, frameset
, isindex
, layer
, menu
Elem
Hosszú név
Megjelenítési mód
html
Root element
block
head
Document header
none
title
Title
none
meta
Metadata
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
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.
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
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.
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).
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ő.
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:
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:
Ebben a példában egy egyszerű HTML állomány tartalma látható:
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.
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.
Domain.hu weboldal a magyar domain regisztrátorok listájával.
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: 79.172.213.245. 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.
Á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 Webmin, 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 FTP képes fájlkezelővel lehet csatlakozni, és ennek segítségével lehet a weboldalak állományait le, és feltölteni.
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: Amazon Web Services (AWS), Microsoft Azure, Google Cloud...
A PHP 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 MySQL 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 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 HTML, 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 CSS, 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.
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)
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 Tim Berners-Lee a CERN kutatója, az első weboldal, és internetes böngésző 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.
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ő
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)
Egyedüli kihívás az egységes megjelenés a különböző böngészőkben
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.
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 Material Design-al.
Megjelennek a fejlett keretrendszerek, mint a Bootstrap, vagy a Zurb Foundation.
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)
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
Milyen eszközökön fogják nézni (Asztali, laptop, mobil, tablet)
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 W3C (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.
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:
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.
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.
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 Håkon Wium Lie, és Bert Bos 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.
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: https://flukeout.github.io/
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;
}
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):
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.
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
4item
--item
-4item
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:
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:
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).
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.
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.
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ő
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ő
#main-menu
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
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).
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.
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.
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 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.
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.
Bővebbebb cikk a témáról: Using wireframes to streamline your development process
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.
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.
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 ().
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
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
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
A CSS stílusokat egy HTML elem style 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:
A CSS stílusokat elhelyezhetjük egy HTML állomány egy style elemben. A style elemben CSS nyelvi szabályok lesznek érvényesek.
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.
Egy CSS állományba behívhatunk egy másik CSS állományt @import segítségével.
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.
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:
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.
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ő.
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.
A tipográfiai mértékegységek jellemzően egy bizonyos betű magasságát veszik egy egységnek.
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.
Az em párja, de ez nem öröklődik, a body fontmérete alapján számítja ki a böngésző.
Ex
Az ex a kis x magassága alapján számolt egység, az em érték fele pixelben
A ch a 0 karakter szélessége alapján számolt egység.
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
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.
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.
A vmin egy egysége a vh és a vw értéke közül a kisebbel lesz egyenlő.
A vmax egy egysége a vh és a vw értéke közül a nagyobbal lesz egyenlő.
Animációk, átmenetek vagy hang időzítése esetén az időfaktor beállítására használhatjuk.
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°)
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).
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.
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.
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).
!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.
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.
Ez az alapállapot, ebben az estben az elem statikus, nem változik a pozíciója (nincs pozicionálva).
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
bottom
- eltolás lentrő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 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ó 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ó 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.
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.
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 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ű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
fantasy
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
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.
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.
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.
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.
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.
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 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.
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
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
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).
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ű
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.
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.
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.
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)
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
Megadhatjuk a színeket direkt rgb értékük alapján, vagy egy 0-255 ig terjedő számmal, vagy százalékosan is.
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í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.
Itt is van alfa csatorna mint az RGBA esetében.
Színeket megadhatunk a nevük alapján is, kulcsszavas formában. A modern böngészők 140 kulcsszavas színt támogatnak.
A transparent (átlátszó) kulcsszóval adhatunk meg (teljesen) átlátszó színt.
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.
Az úsztatott elemeket a szöveges tartalom, és a szövegközi elemek körbefolyják, körbeveszik.
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.
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.
Kört a border-radius
(keret lekerekítés) CSS tulajdonsággal lehet létrehozni . 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.
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:
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:
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.
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.
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.
A technika kiindulási alapja egy navigációs menü egy listából, és lista elemekből felépítve (nav
elemről ):
Első lépésként eltüntetjük a lista elemek pontjait, és a listán lévő külső és belső margót:
Második lépésként balra úsztatjuk a lista elemeket, ennek következtében egy sorba rendeződnek:
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):
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ó.
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.
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 - ismétlődés csak függőlegesen
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
right - jobbra
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).
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.
A background
gyorsírásos forma, amivel egy menetben több háttér jellemzőt is megadhatunk.
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).
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.
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.
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).
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.
Kötelezően megadandó tulajdonságok hiányoznak a HTML elemekből.
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.
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.
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.
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.
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ó.
...
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ő
pointer - pozicionáló eszköz típusa (egér)
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.
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.
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.
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:
A flex-direction
CSS szabállyal adhatjuk meg a rugalmas elemek rendeződésének
fő irányát (fő tengely).
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.
Ugyanaz mint a sor, csak az elemek jobbról balra rendeződve jönnek egymás után a sorrendjük szerint.
Az elemek függőleges oszlopba rendezve jelennek meg, sorrendjük szerint fentről lefelé.
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.
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.
Alapesetben az elemek egy sorban helyezkednek el, és rugalmasan összenyomódnak.
A törés engedélyezése esetén, ha elfogy az elemek helye egy sorban, akkor új sorba törnek.
A elemeink törhetnek még fölfelé is.
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.
...
...
...
...
...
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.
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:
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.
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:
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.
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:
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:
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:
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:
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:
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:
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:
Az alábbi linken a fenti példa HTML dokumentum, és az összes hivatkozott állomány egyben letölthető:
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.
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):
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.
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.
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 ).
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 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:
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.
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.
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:
Az alábbi linken a fenti példa HTML és SCSS állományok letölthetőek:
A Bootstrap a HTML elemeket előformázza, a szöveges tartalmakat egy 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á:
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ép szövegbe ágyazását a float left
, és a float-right
CSS osztályok teszik lehetővé:
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.
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 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.
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ő.
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.
Az elem 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).
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:
Az align-self
ugyan úgy működik, mint az align-items
(), csak ez egyetlen elemre vonatkozik.
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.
Bootstrap 4 letöltés link: jQuery letöltés link: Popper.js letöltés link:
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:
Kijelölő típusa
Súlyozás értéke
1.0.0.0
0.1.0.0
0.0.1.0
0.0.0.1
0.0.0.0
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)
lg
nagyobb vagy egyenlő mint 992 pixel
Óriás (extra large)
xl
nagyobb vagy egyenlő mint 1200 pixel
Alapértelmezett
Kicsi
Közepes
Nagy
Óriás
.col-
.col-sm-
.col-md-
.col-lg-
.col-xl-
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.
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:
CSS osztály
megnevezés
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ó.
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
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
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.
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.
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-
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ó
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:
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-
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ó
A következő példában egy elem felső, és jobb oldali belső margóját állítjuk be 2 osztállyal:
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).
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
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
A W3C Validator a W3C 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:
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.
Megadhatunk egy URL-t vagy webcímet ellenőrzésre.
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.
Copy/paste-el bevághatunk egy teljes, vagy részleges HTML állomány tartalmat ellenőrzésre.
A további beállítások a More Options menüből érhetőek el:
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.
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.
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).
A validator mutatja a forráskódot, és kiemeli benne a hibás elemeket.
A validátor a HTML-Tidy segítségével megkisérli javítani az esetleges hibákat.
Ebben az esetben kapunk egy visszajelzést a dokumentum cím szerkezetéről.
Bizonyos esetekben részletesebb visszajelzést kapunk így a hibákról.
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.
Hiba sorszáma
Hiba tipusa, hiba (error), vagy warning (figyelmeztetés)
Hiba konkrét leírása
Hiba helye a kódban (line: sor, column: oszlop)
A hibás kódszakasz kiemelve.
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 VS Code szövegszerkesztőbe, és a Codepen.io online szövegszerkesztőbe is.
Az Emmet rövidítéseket (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/
Az alapvető HTML elemeket tehetjük be vele egy üres dokumentumba. Eredménye:
Egy üres főcím. Eredménye:
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.
Egy üres bekezdést hoz létre. Eredménye:
Egy bekezdést hoz létre egy bekezdésnyi töltelékszöveggel. Eredménye:
Egy bekezdést hoz létre konkrét szöveges tartalommal. Eredménye:
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
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
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:
Egy lista egy üres lista elemmel Eredménye:
Egy lista három üres lista elemmel Eredménye:
Egy lista 6 lista elemmel, mindegyik lista elemben három töltelék szóval. Eredménye:
Navigáció listátával, 5 darab lista elemmel, a list elemekben linkekkel. Eredménye:
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:
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:
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:
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:
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:
A Bootstrap gomb komponense jelentéstartalomtól függő megjelenést biztosít a linkeknek (a
), és a gomb 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:
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.
A következő példában egy weboldal főbb szerkezeti elemeinek szervezését tekinthetjük át:
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:
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: @font-face.
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
):
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/
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:
Szöveges kereső - itt a fontok nevére, szerzőjére kereshetünk.
Font kategóriák - Kiválaszthatjuk, hogy a találatok között mely kategóriába tartozó fontok jelenjenek meg (lásd általános betűcsaládok).
Rendezés - Rendezhetjük a fontokat név, dátum, népszerűség szerint.
Nyelvek - Támogatott nyelvekre szűrhetünk, a magyar ékezetes fontok szűréséhez a 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.
A font listában próbálhatjuk ki, és hasonlíthatjuk össze a szűrőfeltételeknek megfelelő fontokat.
Font neve, szerzője
Font hozzáadása a kiválasztott fontok közé
Nézet beállításai
Előre definiált szövegek (például számok, karakterek, bekezdés, ...)
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.
Kiválasztott fontok száma.
Kiválasztott fontok listája, mínuszra kattintva lehet őket eltávolítani.
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.
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.
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
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:
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:
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, Emmet, TabNine), rendelkezik beépített hibakeresővel, és Git verziókezelő támogatással, és még számos egyéb szolgáltatással. Bővítmények 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ő színsémák.
A VS Code több platformos alkalmazás, elérhető Windows, Linux és OS X operációs rendszerekre.
A VS Code honlapja: https://code.visualstudio.com/
Videó kezdőknek: https://www.youtube.com/watch?v=Sdg0ef2PpBw
A VS Code forráskódja megtekinthető a Github-on: https://github.com/Microsoft/vscode
A Visual Studio Code ingyenesen beszerezhető a gyártó honlapján, a letöltések alatt: https://code.visualstudio.com/
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.
A 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. 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:
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.
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.
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.
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)
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)
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
Fénykép forrása: NotFromUtrecht - A feltöltő saját munkája, CC BY-SA 3.0,
A egy online szolgáltató, webes alkalmazásokat lehet szerkeszteni, és publikálni vele. Kiváló eszköz arrar a célra, hogy , 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).
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
assets - ebbe a mappába tölthetjük be a multimédiás tartalmakat, amik az oldalon jelennek meg
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):
...
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.
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.
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.
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.
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).
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ó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:
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:
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 fejléc a tartalomjegyzék mélységét, illetve az oldalak számát tartalmazza (ez lehet nulla).
Kötelező megadni, az olvasó program ezt tünteti fel a tartalomjegyzékben.
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.
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.
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:
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 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:
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 .
Kezdő
Mark Pilgrim - HTML5 az új szabvány
Zoe Mickley Gillenwater - Rugalmas webtervek
Virginia DeBolt - Html és CSS - Webszerkesztés stílusosan
Eric A. Meyer - CSS zsebkönyv
Virágvölgyi Péter - A tipográfia mestersége számítógéppel
Haladó
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
Kezdő
Haladó
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.
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.
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.
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.
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:
A képeknek nincs lezáró elemük, így el kell látni őket egy /
karakterrel (lásd feljebb a ):
Alkalmazás
Operációs rendszer
macOS, Linux, Windows
Linux, Windows
Linux
Windows
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
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
Keretrendszer
JavasCript
Honlap
Bootstrap 4
jQuery
React Bootstrap
React.js
Zurb Foundation
jQuery
Bulma
-
Material UI
React.js
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
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.
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.
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).
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:
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.
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
double - dupla vonal
outset - kiemelkedő
inset - süllyesztett
groove - bemélyített
ridge - kidomborodó
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:
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:
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 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:
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ó.
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).
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
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.
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.
Í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.
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.
A megnyitott tabok között tudunk így váltani, ez akkor hasznos ha sok tabunk van megnyitva.
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.
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 + 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