Keletas HTML5 stadarto naujovių [1]:
- Atributo reikšmė gali būti neatskirta kabutėmis, jei joje nėra šių simbolių:
- U+0020, U+0009, U+000A, U+000C, U+000D (tarpo simbolių),
- U+0022 (kabučių („"“)),
- U+0022 (apostrofo („'“)),
- U+003D (lygybės („=“)),
- U+003C (daugiau ženklo („<“)),
- U+003E (mažiau ženklo (>)),
- U+0060 (gravio („`“)).
<input value=yes>
- Kai kurios žymos) gali būti praleistos (pradžios žymė negali būti praleista, jei ji turi atributų):
html
pradžios žymė gali būti praleista jei pirmas elementas viduje nėra komentaras,html
pabaigos žymė gali būti praleista jei pirmas elementas po jos nėra komentaras,head
pradžios žymė gali būti praleista jei ji yra tuščia arba pirmiausia viduje yra elementas,head
pabaigos žymė gali būti praleista jei po jos seka ne tarpas ir ne komentaras,body
pradžios žymė gali būti praleista jei ji yra tuščia, po to seka ne tarpas ir ne komentaras bei pirmasis elementas nėrameta
,link
,script
,style
artemplate
,body
pabaigos žymė gali būti praleista jei pirmas elementas po jos nėra komentaras,li
pabaigos žymė gali būti praleista jei po jos seka kitasli
elementas arba tėviniame elemente daugiau nebėra turinio,dt
pabaigos žymė gali būti praleista jei po jos sekadt
arbadd
elementas,dd
pabaigos žymė gali būti praleista jei po jos sekadd
arbadt
elementas arba tėviniame elemente daugiau nebėra turinio,p
pabaigos žymė gali būti praleista jei po jos sekaaddress
,article
,aside
,blockqoute
,div
,dl
,fieldset
,footer
,form
,h1
,h2
,h3
,h4
,h5
,h6
,header
,hgroup
,hr
,main
,nav
,ol
,p
,pre
,section
,table
arbaul
elementas arba tėviniame elemente daugiau nebėra turinio ir tėvinis elementas nėraa
,rb
pabaigos žymė gali būti praleista jei po jos sekarb
,rt
,rtc
arbarp
elementas arba tėviniame elemente daugiau nebėra turinio,rt
pabaigos žymė gali būti praleista jei po jos sekarb
,rt
,rtc
arbarp
elementas arba tėviniame elemente daugiau nebėra turinio,rtc
pabaigos žymė gali būti praleista jei po jos sekarb
,rtc
arbarp
elementas arba tėviniame elemente daugiau nebėra turinio,rp
pabaigos žymė gali būti praleista jei po jos sekarb
,rt
,rtc
arbarp
elementas arba tėviniame elemente daugiau nebėra turinio,optgroup
pabaigos žymė gali būti praleista jei po jos seka kitasoptgroup
elementas arba tėviniame elemente daugiau nebėra turinio,option
pabaigos žymė gali būti praleista jei po jos sekaoption
arbaoptgroup
elementas arba tėviniame elemente daugiau nebėra turinio,colgroup
pradžios žymė gali būti praleista jei pirmas elementas viduje yracol
ir jei prieš jį nėra kitocolgroup
elemento, kurio pabaigos žymė buvo praleista,colgroup
pabaigos žymė gali būti praleista jei po jos seka ne tarpas ir ne komentaras,thead
pabaigos žymė gali būti praleista jei po jos sekatbody
arbatfoot
elementas,tbody
pradžios žymė gali būti praleista jei pirmas elementas viduje yratr
ir jei prieš jį nėratbody
,thead
arbatfoot
elemento, kurio pabaigos žymė buvo praleista,tbody
pabaigos žymė gali būti praleista jei po jos sekatbody
arbatfoot
elementas arba tėviniame elemente daugiau nebėra turinio,tfoot
pabaigos žymė gali būti praleista jei po jos sekatbody
elementas arba tėviniame elemente daugiau nebėra turinio,tr
pabaigos žymė gali būti praleista jei po jos seka kitastr
elementas arba tėviniame elemente daugiau nebėra turinio,td
pabaigos žymė gali būti praleista jei po jos seka kitastd
arbath
elementas arba tėviniame elemente daugiau nebėra turinio,th
pabaigos žymė gali būti praleista jei po jos seka kitastd
arbath
elementas arba tėviniame elemente daugiau nebėra turinio.
Pavyzdžiui toks HTML kodo fragmentas:
<!DOCTYPE html> <html> <head> <title>HTML kodo minimizavimas</title> <head> <body> <header><h1>HTML kodo minimizavimas</h1></header> <p>Pavyzdys</p> <nav> <ul> <li><a href="#vienas">Vienas</a></li> <li><a href="#du">Du</a></li> <li><a href="#trys">Trys</a></li> </ul> </nav> </body> </html>
gali būti minimizuotas iki:
<!DOCTYPE html> <title>HTML kodo minimizavimas</title> <header><h1>HTML kodo minimizavimas</h1></header> <p>Pavyzdys <nav> <ul> <li><a href=#vienas>Vienas</a> <li><a href=#du>Du</a> <li><a href=#trys>Trys</a> </ul> </nav>
o vėliau dar daugiau, išmetant nereikalingus tarpus, Tab ir naujos eilutės (Enter) simbolius:
<!DOCTYPE html><title>HTML kodo minimizavimas</title><header><h1>HTML kodo minimizavimas</h1></header><p>Pavyzdys<nav><ul><li><a href=#vienas>Vienas</a><li><a href=#du>Du</a><li><a href=#trys>Trys</a></ul></nav>
tokio optimizavimo metu sutaupoma: 142 simboliai (40.23%). Vienas iš įrankių galinčių tai atlikti: https://kangax.github.io/html-minifier/ [2], beje, minimizuotas kodas išlieka pilnai validus (https://validator.w3.org/) [3]
Išvada
Jei norite sutaupyti resursų ir pasiekti optimizavimo aukštumas, galima galvoti apie HTML kodo minimizavimą, ypač kai HTML5 standartas tai leidžia, tačiau, jei norite likti 100% palaikomi, lengviau skaitomi ir nepriklausomi nuo versij7, verta rašyti pilną kodą.
Literatūra
- The HTML syntax https://www.w3.org/TR/html5/syntax.html
- HTML Minifier https://kangax.github.io/html-minifier/
- Markup Validation Service https://validator.w3.org/