poniedziałek, 18 maja 2015

Framework Bootstrap

Odwieczny problem programisty... i nie tylko

Ileż to razy mamy głowę pełną pomysłów a brak nam odpowiednich narzędzi, aby wprowadzić je w życie? Programiści również często są w tej sytuacji. Mają wizję świetnej aplikacji zapowiadającej się na miarę Facebooka, wszystkie funkcjonalności spisane na kartce, architektura przygotowana. Wydaje się, że nic tylko siadać i wdrażać pomysły w życie. Niestety, gdy przychodzi do zaprojektowania interakcji z użytkownikiem oraz związanego z nimi interfejsu użytkownika rodzi się problem. Cała twórczość wizualna programisty na studiach ogranicza się zazwyczaj do kilku godzin na laboratoriach z grafiki komputerowej oraz do rysowania diagramów encji. Owszem, zdarzają się wyjątki, ale ciężko spotkać dobrego backendowca i śledzącego zmieniające się z zawrotną prędkością trendy UI/UX frontendowca w jednym.

Jednak nie tylko programiści mogą mieć problem z UI. Stworzenie ładnego, funkcjonalnego i reagującego(!) na akcje użytkownika interfejsu może być skomplikowane i dość uciążliwe dla początkujących (magiczne sztuczki i niezrozumiałe zachowania CSS) oraz czasochłonne dla profesjonalistów. Sam wiem, że stworzenie nawet prostej strony w standardowych technologiach (HTML,CSS,JavaScript) od podstaw zabiera sporo czasu.

Jest problem? To trzeba go rozwiązać :)

Na pierwszy ogień idą gotowe szablony. Są dziesiątki stron oferujących takie usługi. Jednak ładniejsze szablony są zazwyczaj płatne. Po drugie trendy w internecie zmieniają się bardzo szybko i musielibyśmy dość często wyrzucać do kosza stare i zastępować nowymi. Poza tym jakakolwiek modyfikacja funkcjonalności bez znajomości frontendowych technologii mogłaby być frustrująca dla backendowca.

Bootstrap, czyli jak prosto i szybko mieć coś ładnego

Z pomocą przychodzi framework Bootstrap. Zakłada on podstawową znajomość HTMLa oraz CSS. Oferuje szeroki wybór gotowych komponentów, które pozwalają na realizację zarówno podstawowych jak i zaawansowanych funkcjonalności. UI powstaje w nim bardzo szybko - wystarczy skopiować kawałek kodu z przykładu z oficjalnej strony, pozamieniać treść i mamy już działający komponent. Dzięki systemowi kolumn nie musimy martwić się o "rozejechanie elementów na stronie" czy inne nieciekawe efekty obecne przy pracy z CSS.

Zaczynamy

Wchodzimy na stronę:
http://getbootstrap.com/getting-started/#download
i wybieramy Download Bootstrap. Kopiujemy pliki do folderu naszej web-apki i tworzymy plik tekstowy style.css oraz index.html z poniższą zawartością (zmieniamy lokalizacje plików na odpowiednie):

<!DOCTYPE html>
<html lang="pl">
<head>
  <meta charset="utf-8" />
  <title>Nasza strona</title>
  <link rel="stylesheet" href="style.css" />
  <link rel="stylesheet" href="bootstrap/3.3.4 /css/bootstrap.css">
  <link rel="stylesheet"  href="bootstrap/3.3.4/css/bootstrap-theme.css"> 
  <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"></script>
</head>
<body>
</body>
</html>

Układ elementów i responsywność Bootstrap oferuje system podziału zawartości strony na 12 równych kolumn, które charakteryzują się pełną responsywnością. Naszym zadaniem jest jedynie określenie jak dużo kolumn będzie zajmował dany element strony w różnych rozdzielczościach.
Wyróżniamy 4 różne rozdzielczości urządzeń: extra-small (xs), small (sm), medium (md) i large (lg).
Aby zdefiniować jeden rząd kolumn na stronie, piszemy np:

<div class="row">
  <div class="col-md-8">.col-md-8</div>
  <div class="col-md-4">.col-md-4</div>
</div>


Jak widać, nie musimy definiować szerokości dla wszystkich czterech powyższych rozdzielczości urządzeń. Wystarczy, że zdefiniujemy szerokość dla jednej. Inny przykład:

<div class="row">
  <div class="col-xs-12 col-md-8">.col-xs-12 .col-md-8</div>
  <div class="col-xs-6 col-md-4">.col-xs-6 .col-md-4</div>
</div>

Tutaj widzimy, że pierwszy div dla urządzeń o rozdzielczości medium będzie zajmował 2/3 szerokości strony, a drugi 1/3. Dla rozdzielczości extra-small pierwszy będzie zajmował całą szerokość strony. Wynika z tego więc, że drugi zostanie wyświetlony pod nim.
Możemy teraz powyższy kod umieścić w divie z klasą container, dzięki czemu treść naszej strony będzie wyśrodkowana i nie będzie zajmowała 100% szerokości strony. Jeśli chcemy jednak zawartość na całej szerokośći okna przeglądarki używamy klasy container-fluid.

Więcej nt kolumn można znaleźć tutaj:
http://getbootstrap.com/css/#grid

Komponenty

Przetestujemy teraz kilka komponentów Bootstrapa. Stworzymy przykładową stronę korzystając tylko z nich.

Zaczynamy od nagłówka. Korzystając z gotowego kodu, wstawiamy go na naszą stronę i dopasowujemy wg potrzeb. Posiada on tytuł strony oraz linki, które mogą być rozwijane. Przykładowy kod tutaj:



Następnie wykorzystamy prosty slider, któremu w Bootstrapie odpowiada komponent carousel. Przykładowy kod poniżej:


Następnie wstawiamy trzy kolumny korzystając z siatki Bootstrapa oraz wykorzystując buttony:



Możemy również dodać panele i paginację:



 Ostatecznie cała strona wraz z kodem wygląda tak:




Kod kompilowany Less i Sass

Bootstrap jes zbudowany na preprocesorze Less, który umożliwia tworzenie zmiennych wewnątrz definicji CSS. Przydatne jest to np. w definiowaniu palety kolorów, czy innych stałych na stronie parametrów. Bootstrap wspiera również preprocesor Sass. Aby skompilować i wygenerować swój kod css Bootstrapa przechodzimy na stronę getbootstrap.com/customize i wypełniamy formularz zgodnie z własnymi preferencjami.

Jak widać dzięki Bootstrapowi można łatwo i szybko tworzyć przyjemne dla oka i responsywne aplikacje www. Jedyną wadą mogą być ograniczenia i powtarzalność, ale przy odrobinie wysiłku włożonego w modyfikację kodu css, można spersonalizować każdy komponent.

Brak komentarzy:

Prześlij komentarz