Podstawy biblioteki Twitter Bootstrap
Transkrypt
Podstawy biblioteki Twitter Bootstrap
TECHNIKI WWW (WFAIS.IF-C125) (zajęcia 02.11.2016 r.) 1) Mediaqueries - szablon podstawowy Przykład z szablonu strony który dostosowuje się w zalezności od dostępnej szerokości ekranu dostępny jest pod adresem: http://koza.if.uj.edu.pl/~marcin/TWWW1617/E/index3.html W przykładzie tym stworzona dwa pliki CSS które osbługują rózne szerokości ekranu. Zostały włączone za pomocą linkowania i atrybutu “media”: <link href="xstyle.css" rel="stylesheet" media="screen and (min-width: 1024px)"> <link href="mstyle.css" rel="stylesheet" media="screen and (max-width: 1023px)"> 2) Twitter Bootstrap - podstawy użytkowania Biblioteka Bootstrap (a właściwie Twitter Bootstrap) jest zestawem gotowych wzorców i elementów CSS które służą do budowy responsywnych (RWD) stron internetowych. Adres strony projektu to: http://getbootstrap.com/ Obecna wersja produkcyjna to 3.3.7. Niebawem ukaż się wersja 4.0.0 a) Włączenie biblioteki do własnego kodu Biblioteka Bootstrap składa się z kilku elementów. Aby jej użyć na własnej stronie internetowej nalezy pobrac pakiet zawierający wszystkie niezbędne pliki: https://github.com/twbs/bootstrap/releases/download/v3.3.7/bootstrap-3.3.7-di st.zip Lub można dla lepszej efektywności własnej witryny dołączyć pliki z serwera CDN: <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous"> Potrzebne są również biblioteki JavaScriptowe samego Bootstrapa oraz biblioteki jQuery: <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script> <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script> Druga wersja pozwala na przyspieszenie ładowania strony ponieważ odciążamy nasz własny serwer, a po drugie możliwe że już odwiedzaliśmy stronę która kożysta z biblioteki Bootstrap i odpowiednie pliki mamy już w pamięci “cache” naszej przeglądarki. Przykładowy szablon strony wygląda następująco: <!DOCTYPE html> <html lang="pl"> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>Bootstrap 101 Template</title> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous"> </head> <body> <h1>Hello, world!</h1> <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script> <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script> </body> </html> b) Struktura siatki w Bootstrap: Biblioteka Bootstrap ma ułatwiać tworzenia responsywnych ale stron internetowych, które będą wyświetlać się na dowolnym urządzeniu (PC, smartphone, tv etc). Dla realizacji tego celu Bootstrap wprowadza system tzw. “Gridu” (siatki) która dzieli obszar okna przeglądarki na 12 kolumn i dowolną ilośc wierszy. Dzięki temu jest możliwe stworzenie czterech niezależnych widoków na najpopularniejsze szerokości ekranu. Do tego celu wykorzystywana jest klasa podstawowa “container”. Ma ona cztery możliwości dopasowania się do urządzenia: - Dla szerokości ekranu poniżej 768px, klasa “container” ustawia automatyczną szerokość dla elementu blokowego. - Dla szerokości powyżej 768px, klasa “container” ustawia 750px dla elementu blokowego. - Dla szerokości powyżej 992px, klasa “container” ustawia 970px dla elementu blokowego. - Dla szerokości powyżej 1200px, klasa “container” ustawia kontener na 1170px dla elementu blokowego. Podstawowy element na stronie klasy “container” powinien wyglądać następująco: <div class="container"> Treść strony </div> (Proszę za pomoca narzędzie Developerskiego wbudowanego w przeglądarkę sprawdzić czy faktycznie przedstawione wartości szerokości elementu blokowego są prawdziwe). Wróćmy do siatki Booststrap: system ten składa się z wierszy i kolumn w których umieszczane są poszczególne elementy strony. Wiersz pełni rolę lokalizatora poziomego elementów na stronie i powinien być umieszczony w następujący sposób w kontenerze: <div class="container"> <div class="row"> Treść strony </div> </div> Natomiast jak już wspomniano Bootstrap dzieli dostępną przestrzeń kontenera w ramach jednego wiersza na 12 kolumn. Po przekroczeniu tej liczby na wiersz kolejna kolumna przejdzie do nowej linii. Dzięki już wspomnianym sztywnemu podziałowi na poszczególne dostępne szerokości ekranu Bootstrap udostępnia 4 rodzaje kolumn: - Komputery PC (duże ekrany > 1200 px, dla tego typu urządzeń mamy dostępną klasę: “col-l-*”, gdzie zamiast gwiazdki możemy wstawić liczbę od 1-12, która oznacza liczbę kolumn. Kolumny te mają zadaną szerokość dla ekranów powyżej 1200 px. Natomiast jeśli szerokość będzie mniejsza to kolumny ustawią się jedna pod drugą. Należy jednak pamiętać, że w żadnym wypadku nie należy przekroczyć w sumie liczby 12. Tzn. że możemy mieć na stronie np. 1 kolumnę o szerokości “6” jednostek oraz 3 kolumny o szerokości “2” jednostki. W sumie jest to 12 jednostek. Przykładowo: <div class="container"> <div class="row"> <div class="col-lg-1">.col-lg-1</div> <div class="col-lg-1">.col-lg-1</div> <div class="col-lg-1">.col-lg-1</div> <div class="col-lg-1">.col-lg-1</div> <div class="col-lg-1">.col-lg-1</div> <div class="col-lg-1">.col-lg-1</div> <div class="col-lg-1">.col-lg-1</div> <div class="col-lg-1">.col-lg-1</div> <div class="col-lg-1">.col-lg-1</div> <div class="col-lg-1">.col-lg-1</div> <div class="col-lg-1">.col-lg-1</div> <div class="col-lg-1">.col-lg-1</div> </div> <div class="row"> <div class="col-lg-6">.col-lg-6</div> <div class="col-lg-2">.col-lg-2</div> <div class="col-lg-2">.col-lg-2</div> <div class="col-lg-2">.col-lg-2</div> </div> </div> - Laptopy powyżej 992px: klasa “col-md-*” zasada jest ta sama co poprzednio (tutaj plusem jest to że ta klasa będzie działać również na PC). Tablet powyżej 768px: klasa “col-sm-*”. Smartphony poniżej 768px: klasa “col-xs-*”. Istotnym elementem systemu siatki jest możliwość przesuwania kolumn przez wprowadzenie tzw. “Offsetu”. Podobnie jak poprzednio dostępna jest klasa która przesuwa daną kolumnę o żądaną jednostkę (w ilości kolumn) dla zadanej szerokości ekranu: “col-?-offset-*”, gdzie ? oznacza wybraną szerokość ekrany (lg, md, sm, xs), a gwiazdka liczbę kolumn o ile ma zostać przesunięta dana kolumna. Przykład: <div class="row"> <div class="col-md-4">.col-md-4</div> <div class="col-md-4 col-md-offset-4">.col-md-4 + .col-md-offset-4</div> </div> Przesuwamy druga kolumnę w stosunku do pierwszej o 4 jednostki, pamiętając cały czas że suma nie może przekroczyć 12. Wiersze i kolumny można zagnieżdzać. Należy przy tym pamiętać, że każdy nowy zagnieżdzony wiersz znów ma dostępne 12 kolumn które możemy podzielić i zagnineżdzać. Więcej informacji na temat siatki dostępnej jest w dokumentacji Bootstrap: http://getbootstrap.com/examples/grid/ Zadanie 1. Prosze stworzyć podstawowy szablon strony w Bootsrap i przetestować system siatki na wszystkie rozdzielczości. 3) Twitter Bootstrap - elementy graficzne - Wyrównanie tekstu w paragrafie: <p <p <p <p class="text-left">Do lewej.</p> class="text-center">Do środka.</p> class="text-right">Do prawej</p> class="text-justify">Tekst wyjustowany</p> - Przypis w tekście: <p> <abbr title="(zjawisko fotoelektryczne, fotoefekt, fotoemisja)"> Efekt fotoelektryczny </abbr> – zjawisko fizyczne polegające na emisji elektronów z powierzchni przedmiotu, zwane również precyzyjniej zjawiskiem fotoelektrycznym zewnętrznym – dla odróżnienia od wewnętrznego. </p> - Cytowanie w tekście: <blockquote> <p> Efekt fotoelektryczny - zjawisko fizyczne polegające na emisji elektronów z powierzchni przedmiotu, zwane również precyzyjniej zjawiskiem fotoelektrycznym zewnętrznym – dla odróżnienia od wewnętrznego. </p> </blockquote>