HTML5 Introduction

From Training Material
Revision as of 07:06, 2 March 2020 by Lsokolowski (talk | contribs) (→‎Grupy elementów HTML5)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search
Officall HTML5 logo

Gdzie zaczniemy?

Zanim zaczniemy poznawać możliwości HTML5, potrzebne będzie nam kilka przeglądarek zanistalowanych na komputerze, najlepiej po jednej z danego silnika.

W naszym przypadku na starcie wystarczy zainstalowany zestaw (Chrome, Firefox).


Lista silników wyświetlania stron internetowych

Czy HTML5 jest gotowy?

  • Pierwsze pytanie jakie się nasuwa, to czy możemy już korzystać z Kodu HTML5?
  • Możemy przetestować każdą przeglądarkę pod względem jej możliwości rozumienia kodu HTML5, wpisując w danej przeglądarce stronę:

http://html5test.com/

Test5html.jpg

  • można odczytać i rozwinąć dokładnie jakie tag-i są obsługiwane przez daną przeglądarkę.
  • od razu można zobaczyć z list poniżej, że jest wiele elementów, których przeglądarki jeszcze nie obsługują.
  • Można również podglądnąć, które przeglądarki przodują w rozwoju, itp.

Test5html-timeline.jpg

Elementy CSS3

  • Jeżeli chcielibyśmy sprawdzić jakie nowe elementy CSS-owe są obsługiwane przez daną przeglądarkę, w tym pomoże nam strona:

http://fmbip.com/

Findmebyip.jpg

  • Jeżeli nie lubimy testować kodu a wolimy wyszukać na liście, z pomocą najbardziej przychodzi nam wikipedia:

http://en.wikipedia.org/wiki/Comparison_of_layout_engines_%28Cascading_Style_Sheets%29

http://caniuse.com/

  • Sprawdzenie w wersjach przegladarek czy działa wybrany element i na ile procentach przegladarek działa wybrany element HTML, css i inne.

Prezentacja znaczników

Podglądniemy stronę www.nobleprog.pl, zobaczymy jak wyglądają elementy, używając nowych możliwości WebGL.

  • wczytujemy stronę www.nobleprog.pl w przeglądarce Firefox.
  • klikamy prawym myszy gdziekolwiek i wybieramy "Inspect Element (Q)"
  • z dolnej rozwiniętej listwy wybieramy 3D view
  • jeżeli pojawi się błąd:
"Could not initialise Tilt, please check the
troubleshooting information available at http://get.webgl.org/troubleshooting"
wpisujemy w pasku adresu about:config
zatwierdzamy, że będziemy ostrożni
w pozycji search: nad listą wpisujemy webgl
zmieniamy 3 pozycję webgl.disable z true na false
webgl.force-enable z true na false
webgl.osmesa z true na false
Zdarza się też, że nie można danej strony wyświetlić w WebGL. Jest wiele czynników: rodzaj karty graficznej, za stare sterowniki, sprzęt, itp.
  • jeżeli wyświetli się, możemy przytrzymujac lewym myszy obracać ekran a przytrzymując prawym myszy przesuwać ekran

poniżej przykład.

Firefox-webgl.jpg

Lista znaczników z opisami

  • Nie musimy "przegryzać sie" przez specyfikację W3C www.w3.org na stronie https://www.w3.org/TR/html5/
  • powstały serwisy, na których znajdziemy opisy do czego służą nowe elementy HTML5 i jak je możemy wykorzystywać, jest też lista przykładowego kodu na stronie.

http://www.w3schools.com/

http://www.kurshtml.edu.pl/

http://html5doctor.com/

https://www.html5rocks.com/en/ (replaced by google web developers)

Testowanie kodu

Można testować kod nawet bezpośrednio, np. na stronie:

http://liveweave.com/

https://codegeekz.com/best-code-playgrounds-for-developers/

http://www.colorzilla.com/

Tworzenie gradientów i wybieranie kolorów na stronie www

Grupy elementów HTML5

html5-badge-h-connectivity-css3-device-graphics-multimedia-performance-semantics-storage.png

Nowe elementy TAG występujące w HTML5:

Elementy znaczników HTML5

DOCTYPE

 <!DOCTYPE html> <!-- Nowa łatwa definicja standardu dokumentu. -->
 <html lang="en"> 
   <head>
    <meta charset="utf-8" />
   </head>
 <body>
   ...
 </body>
 </html>

Czytelna struktura dokumentu

HEADER, NAV, ASIDE, FOOTER

Jak widzimy mamy możliwość szybszego odnalezienia sie w kodzie.

Flexbox-holygrail.svg

SECTION

W bloku sekcji mozemy zauważyć że przeglądarki mimo że użyty jest nagłówek 1 h1 to w podglądzie jest różnej wielkości zwracajac uwage na paragraf P zostaje on tej samej wielkości nie zależnie gdzie sie znajduje w strukturze sekcji.

Html5-section.jpg
<section>
  <h1>Level 1</h1>
  <p>Text text text</p>
  
  <section>
    <h1>Level 2</h1>
    <p>Text text text</p>
    
    <section>
      <h1>Level 3</h1>
      <p>Text text text</p>
    </section>
    
  </section>
  
</section>

ARTICLE

Przydatne Tagi w przypadku budowy powatarzajacych się części kodu takich jak komentarze lub forum

<article>

  <section>
    <h1>Tytuł 1</h1>
    <h2>Podtytuł 1</h2>
    <p>Tekst 1</p>
    <time datetime="2007-08-01T12:00Z">August 01st, 2007 at 12:00</time>
    <h3><a href="#comment" >Comment</a></h3>
  </section>

  <section>
    <h1>Tytuł 2</h1>
    <h2>Podtytuł 2</h2>
    <p>Tekst 2</p>
    <time datetime="2007-08-01T12:00Z">August 01st, 2007 at 12:00</time>
    <h3><a href="#comment" >Comment</a></h3>
  </section>

</article>

Obrazki grupowanie i podpisy

FIGURE, FIGCAPTION

Opisy obrazka mozna wykożystywać na różne sposoby w poniższy uzyskamy obrazek oraz pod nim podpis możemy również stwprzyć grupe 3 obrazków koło siebie z podpisem rozsciągnietym pod wszystkimi obrazkami podpisem oraz mueszczac tez możemy skróty do stron itp. Jeżeli nasze obrazki bedą za dłuże to obrazek przeskakuje do kolejnej linii.

Html5-figure-figcaption.jpg
<figure>

  <img src="image.jpg" alt="Alternative text">
  <figcaption>Caption for images</figcaption>

</figure>
<figure>

  <img src="image.jpg" alt="Alternative text">
  <img src="image01.jpg" alt="Alternative text 01">
  <img src="image02.jpg" alt="Alternative text 02">

  <figcaption>Caption for all images in one row</figcaption>

</figure>

TABELE

THEAD, TBODY, TFOOT

Elementy umieszczane automatycznie na swoim miejscu thead jako pierwszy wiersz, tfoot jako ostatni nie zależnie gdzie są umieszczone w tabelce.

Html5-table-clean.jpg
<table>
 
 <thead>
    <tr>
      <th>Imię</th>
      <th>Nazwisko</th>     
      <th>Telefon</th>
    </tr>
  </thead>
 
  <tbody>
   <tr>
    <td>Jan</td>
    <td>Kowalski</td>
    <td>123-456-789</td>
   </tr>
   <tr>
    <td>Andrzej</td>
    <td>Kowal</td>
    <td>456-789-123</td>
   </tr>
   <tr>
    <td>Marcin</td>
    <td>Kowalczyk</td>
    <td>789-123-456</td>
   </tr>
 </tbody>
 
  <tfoot>
    <tr>
      <td>12</td>
      <td>23</td>
      <td>34</td>
    </tr>
  </tfoot>
 
</table>

  <style>
    table, th, td { border: 1px solid black; }
  </style>

COL, COLGROUP

Grupowanie kolumn np w celu nadania jakiejs własciwości.

Html5-table-formated-css.jpg
<table>
  <colgroup>
    <col id="first_col"></col>
    <col id="second_col" span="2" ></col>
  </colgroup>
 <thead>
    <tr>
      <th>Imię</th>
      <th>Nazwisko</th>     
      <th>Telefon</th>
    </tr>
  </thead>
 
  <tbody>
   <tr>
    <td>Jan</td>
    <td>Kowalski</td>
    <td>123-456-789</td>
   </tr>
   <tr>
    <td>Andrzej</td>
    <td>Kowal</td>
    <td>456-789-123</td>
   </tr>
   <tr>
    <td>Marcin</td>
    <td>Kowalczyk</td>
    <td>789-123-456</td>
   </tr>
 </tbody>
 
  <tfoot>
    <tr>
      <td>12</td>
      <td>23</td>
      <td>34</td>
    </tr>
  </tfoot>
 
</table>

 <style>
  table, th, td { color: white; padding: 5px 10px; }
  thead th {color: #FFFF00;}
  tfoot td {color: #FFA500; text-align: center;}
  #first_col { background-color: #800080; }
  #second_col { background-color:#C000C0; }
 </style>

FORMULARZE

Znaczniki formularzy

Nowe nieznane elementy formularzy są traktowane przez starsze przegladarki jako wprowadzanie tekstowe.


CYFRY

 <form>
  Podaj otrzymaną ocenę (1 do 6):
  <input type="number" name="ocena" min="1" max="6">
</form>

DATA i CZAS

Datę nie obsługują jeszcze przeglądarki Internet Expolorer oraz Firefox.

 <form>
  data urodzenia:
  <input type="date" name="data_urodzenia">
</form>


Ograniczanie zakresu wprowadzania.

 <form>
  sprawdz datę przed 2000-01-01:
  <input type="date" name="data_urodzenia" min="1999-12-31" value="2000-12-01"><br>
  Sprawdz datę po 2020-01-01:
 <input type="date" name="data_urodzenia" max="2020-01-02" value="2019-01-01"><br>
</form>


Wprowadzanie miesiąca oraz roku.

<form>
  Podaj miesiąc i rok urodzenia:
  <input type="month" name="miesiąc_urodzenia">
</form>


Wprowadzanie miesiąca oraz roku.

 <form>
  Wybierz tydzień roku:
  <input type="week" name="tydzien_roku">
</form>


Wprowadzanie miesiąca oraz roku.

 <form>
  Wprowadz czas:
  <input type="time" name="wprowadzany_czas">
 </form>


Wprowadzanie daty i czasu w jednym polu.

 <form>
  Wprowadz datę i czas:
  <input type="datetime-local" name="wprowadzany_czas_i_data">
 </form>


KOLOR

<form>
  Podaj swój ulubiony kolor:
  <input type="color" name="ulubiony_kolor" value="#FF00AA">
</form>

E-MAIL

Pole podaje juz wczesniej wprowadzane adresy email oraz w przegladarkach mobilnych zamienia na klawiaturę ze znakiem "@" oraz przyciskiem ".com".

<form>
  E-mail:
  <input type="email" name="email">
</form>


URL

Pozwala na wprowadzanie adresów URL z uruchomieniem klawiatury na urzadzeniach mobilnych z dodatkowymi klawiszami jak .com.

<form>
  Adres web:
  <input type="url" name="straona_web">
</form>


SEARCH

Pole działa dokładnie jak pole tekstowe, dodatkowo można właczyć atrybut autofocus prezentowany poniższym rozdziale.

<form>
  Wyszukaj:
  <input type="search" name="wyszukaj" autofocus>
</form>

OPTGROUP, OPTION

Html5-optgroup-option.jpg
<label for="country">Country</label>

<select name="country" id="country">
  <optgroup label="Europe">
    <option value="UK">UK</option>
    <option value="Germany">Germany</option>
    <option value="France">France</option>
  </optgroup>
  
  <optgroup label="North America">
    <option value="">USA</option>
    <option value="">Canada</option>
  </optgroup>
</select>


DATALIST

Lista danych odnosi się po ID-> LIST dwukrotne klikniecie w oknie input rozwija liste lub zaczecie wpisywania zawęża liste.

Datalist
<form>
 <input list="cars"/>
 <datalist id="cars">
  <option value="BMW"/>
  <option value="Ford"/>
  <option value="Volvo"/>
  <option value="Skoda"/>
  <option value="Toyota"/>
  <option value="Tata"/>
 </datalist>
</form>


TEXTAREA elastyczny

Textarea ma nowe możliwości rozciągania okna trzeba kliknąć w dolnym prawym narożniku aby można było powiekszyć obszar.

Html5-flexible-textarea.jpg
<form>
  <fieldset>
    <legend>Napisz do nas</legend>

    <label for="name">Nazwisko:</label>
    <input name="name" type="text" required>
    <br />

    <label for="email">E-mail:</label>
    <input name="email" type="email" required>
    <br />

    <label for="message">Wiadomość:</label>
    <textarea cols="50" rows="10"></textarea> 
    <br />

    <input name="send" type="submit" value="Wyślij">   
  </fieldset>
  </form>
</form>

Restrykcje wprowadzania danych

HTML

  • disable - zablokowany element przed wprowadzaniem danych.
  • maxlength - maksymalna ilość.
  • readonly - wartość tylko do odczytu.
  • size - rozmiar pola.
  • value - domyślna wartość wprowadzona w pole


HTML5

  • max - maxymala wartość wprowadzania.
  • min - minimalna wartość wprowadzania.
  • pattern - wprowadzanie według zasad "regular expression" zgodności ze wzorem.
  • required - to pole musi być wypełnione.
  • step - interwał skoku wprowadzania.


 <form>
  Punkty:
  <input type="number" name="punkty_otrzymane" min="0" max="100" step="10" value="50">
</form>

LABEL, FIELDSET, LEGEND

Pozwala na ładne opisanie kodu i formatowanie formularza.

<form>
  <fieldset>
    <legend>Dane logowania</legend>
    <label>Login:</label>
    <input type="email" name="login">
    <br />
    <label>Hasło:</label>
    <input type="password" name="password">
    <br />
    <input name="login" type="submit" value="Zaloguj">
  </fieldset>
</form>

PROGRESS BAR

Html5-progress-bar.jpg
<form>
 <label>Postęp:</label>
 <progress></progress> 
</form>
<form>
 <label>Do końca:</label>
  <progress value="75" max="100">3/4 gotowe</progress>  
</form>

METER

Sprawdza i wyświetla daną, tekst lub wartość w zależności od przedziału w którym sie znajduje.

<form>
 <meter min="0" max="100" low="40" high="90" optimum="100" value="91">A+</meter>
</form>

Atrybuty formularzy

AUTOFOCUS, REQUIRED, PLACEHOLDER

Widzimy odrazu możliwość ładnego pogrupowania elementów formularza obrazek poniżej, dodatkowo ułatwiaja nam prace nowe atrybuty takie jak:

  • autofocus - automatycznie wstawia kursor w daną rubryke po wczytaniu formularza
  • required - parametr wymagandy do wprowadzenia w przeglądarkach po zatwierdzeniu formularza i nie wpisanie zadnej wartości podświetla się na czerowno do przetestowania w playgraund
  • placeholder - automatyczna podpowiedź w tle sama znika gdy zaczynamy wpisywać oraz sama sie pojawia po usunięciu wszystkich wpisanych znaków.
Html5-legend-fieldset-reqired-autofocus-placeholder.jpg


<form>
  <fieldset>
    <legend>Dane logowania</legend>
    <label>Login:</label>
    <input type="email" name="login" 
      placeholder="Wprowadz swój login lub e-mail" required autofocus>
    <br />
    <label>Hasło:</label>
    <input type="password" name="password" 
      placeholder="Wprowadzone hasło przy rejestracji" required>
    <br />
    <input name="login" type="submit" value="Zaloguj">
  </fieldset>
</form>

INTERAKTYWNE ELEMENTY

DETAILS, SUMMARY

Testować należy w przeglądarce Chrome nie działa w firefox.

Html5-details.jpg
<details>
  <summary>Nazwa pliku</summary>
    <input name="nazwa_pliku" value="video.mov" type="text">
	<br />
    <input name="inny_plik" checked="" type="checkbox"> 
	<label>Podaj inny plik muzyczny </label>
 </details>
 
 <details>
   <summary>Informacje dodatkowe</summary>
   <p>Lorem Ipsum is simply dummy text of the printing and typesetting ...</p> 
 </details>

Tekst edycja

INS, DEL

Html5-del-ins.jpg
  <p>My favourite colour is 
  <del datetime="2010-10-11T01:25-07:00">blue</del>
  <ins datetime="2010-10-11T01:25-07:01">red</ins>
   , but I also like green and yellow.</p>

Dodatki

Ramka kolumny