Układ strony
Transkrypt
Układ strony
Wykład 3: Układ strony (Layout) 1. Wiadomości wstępne 2. Przygotowanie konkretnego układu strony Wiadomości wstępne Tworzenie układu strony Układ strony: rozmieszczenie (położenie) poszczególnych elementów na stronie Oprócz tego, aby strona miała atrakcyjny wygląd ważne jest także dobór rodzaju czcionki, wielkości, dobór kolorystki itd. Potrzebne: • umiejętności techniczne - czyli jak stworzyć układ strony korzystając z CSS - o tym właśnie będziemy mówić na wykładzie • zdolności plastyczne - o tym mówić nie będziemy Elementy blokowe i wierszowe Elementy strony dzieli na: • blokowe: domyślnie układają się jeden pod drugim, domyślna szerokość to 100% szerokości elementu-rodzica. Wyjątek to tabela, której wielkość jest dopasowana do obszaru tekstu Przykłady: h1-h6, p, ul, ol, li, table • wierszowe: domyślnie układają się obok siebie Przykłady: a, img Właściwość display Za pomocą właściwości display można ustawić, że element blokowy będzie traktowany jako wierszowy i odwrotnie. • • • • Wartości dla display: inline: zamiana elementu na wierszowy block : zamiana elementu na blokowy inline-block: zamiana elementu na wierszowy ale pozostawienie cech elementu blokowego, tzn. można ustawić margines pionowy, można ustawić szerokość elementu, aby odsuwać ten element od sąsiadów none: ukrycie elementu Przykład: Display.html Element div (pojemnik) – div jest elementem blokowym – służy do grupowania (pakowania) elementów strony (w div-ie mogą też być inne div-y) – dla div-ów można ustawić tło, obramowanie, marginesy, rozmiar itd. – mając pogrupowane poszczególne elementy strony w divach, wskazujemy, w którym miejscu na stronie te div-y mają się znajdować i w ten sposób tworzymy układ strony Przykład: Div.html Właściwość float. Element pływający. – Za pomocą właściwości float możemy ustawić, gdzie element będzie umieszczony na stronie. – Właściwość float można zadeklarować dla elementów blokowych (nie tylko divów) lub wierszowych. – Gdy zadeklarujemy dla elementu właściwość float to element staje się elementem pływającym: jest odrywany od swego normalnego położenia i płynie do lewego lub prawego brzegu elementu-rodzica. Jeśli jego szerokość nie była zadeklarowana, to szerokość dopasuje się do zawartości. – Po oderwaniu jego dotychczasowe miejsce zwalnia się i w to miejsce przesuwa się następny element czyli umieszczony jest pod elementem pływającym z wyjątkiem tekstu, który zawija się wokół elementu pływającego. Wartości dla float: • left: element płynie do lewego brzegu • right : element płynie do prawego brzegu • none: element przestaje być elementem pływającym Przykłady: Float1.html Float2.html Właściwość clear – Właściwości clear używamy, aby przerwać przesuwanie się elementów na miejsce zwolnione przez element pływający – Jeśli zadeklarujemy clear to element nie przesunie się na zwolnione miejsce Wartości dla clear: • both: element nie przesunie się w zwolnione miejsce (najczęściej wykorzystywane w praktyce) • left : element nie przesunie w zwolnione miejsce po elemencie pływającym z lewej strony • right: element nie przesunie w zwolnione miejsce po elemencie pływającym z prawej strony • none: odwołanie clear, element przesunie się na zwolnione miejsce Przykłady: Clear.html Położenie obrazka względem tekstu Obejrzyjmy zastosowanie właściwości float i clear do ułożenia obrazków względem tesktu. Przykład: Obrazek_Tekst.html Przygotowanie konkretnego układu strony Tworzenie menu Menu tworzymy z listy punktowanej. Pozycjami listy są linki. Wykonujemy następujące kroki: – usuwamy symbole punktowania i lewy margines wewnętrzny – jeśli menu poziome to ustawiamy dla elementów "li" wartość inline (aby stały się elementami wierszowymi i wtedy ułożą się obok siebie a nie jeden pod drugim) – stylizujemy pozycje na przyciski: dodajemy tło, obramowanie, marginesy – linki robimy jako elementy blokowe za pomocą właściwości display. Dzięki temu będzie można klikać nie tylko w sam tekst, ale w cały przycisk i link jako element blokowy wypełni całe "li" Przykłady: MenuPoziome.html MenuPionowe.html Uwaga: Sposobów jest wiele. Przykłady to jedna z możliwości Tworzenie układu strony • Grupujemy (pakujemy) elementy strony za pomocą div-ów. • Poszczególnym div-om dajemy atrybuty "id" lub "class", aby móc tworzyć dla nich reguły stylu. • Elementy div domyślnie będą rozmieszczane jeden pod drugim. Ale możemy je umieścić obok siebie korzystając z właściwości float • Za pomocą marginesów (margin, padding) możemy ustawić odstępy między divami i innymi elementami Korzystając z Firebug-a obejrzyjmy pogrupowanie elementów w div-y na przykładzie strony Wydziału http://uwb.lt Od czego zaczynamy tworzenie układu • Tworzymy div o id np. wrapper. W nim będzie umieszczona cała strona • Szerokość tego div-a (width) to szerokość strony. – Szerokość może być stała (nie będzie się zmieniała ze zmianą szerokości okna przeglądarki). Wartość podajemy w pikselach. – Szerokość może być płynna (będzie się zmieniała ze zmianą szerokości okna przeglądarki). Wartość podajemy w procentach (100% aby strona wypełniała całą szerokość okna przeglądarki). • Stronę (div "wrapper") ustawiamy na środku • Usuwamy domyślne marginesy body Przykład: PoczatekUkladu.html Przykładowy układ strony 3 kolumnowej Szkielet: <body> <div id="wrapper"> <div id="header">...</div> <div id="sidebar1">...</div> <div id="main">...</div> <div id="sidebar2">...</div> <div id="footer">...</div> </div> </body> • • • • • • wrapper - główny pojemnik header (nagłówek) - tam można wstawić menu, banner, tytuł strony sidebar - paski boczne, tam na przykład menu, reklamy main - główna zawartość strony footer - stopka sidebary i main układamy obok siebie za pomocą float. Pozostałe domyślnie jeden pod drugim Przykład: UkladStrony.html Tworzenie układu strony - na co zwracać uwagę (cz. 1) Poniższe uwagi prześledź na przykładzie UkladStrony.html eksperymentując z poszczególnymi regułami. – po usunięciu marginesu dla body, wciąż wrapper jest odsunięty od góry. Powód: margines górny dla h2. – tło z elementu nadrzędnego jest dziedziczone przez potomka (divy wewnątrz "wrappera" dziedziczą jego tło). Jeśli dla potomka ustawimy nowe tło to przykryje ono tło dziedziczone (np. "header" ma własne tlo) – ustawiając obok siebie "sidebar-y" i "main" trzeba dobrze policzyć jaką mają mieć szerokość (szerokość = width + margin + padding). W naszym przypadku, aby nie mogą łącznie przekroczyć 1000px. Jeśli przekroczą nie będą umieszczone obok siebie. – zawartość sidebar2 jest krótsza od "main", więc "footer" przesuwa się w zwolnione miejsce przez "sidebar2". Właściwość clear nie pozwoli "footerowi" się przesunąć w zwolnione miejsce Tworzenie układu strony - na co zwracać uwagę (cz. 2) – dlaczego nie ustawiamy tła dla sidebarów bezpośrednio, a przez dziedziczenie z wrappera. Ponieważ: wysokość div-a dopasowuje się do jego zawartości. Sidebary są krótsze od main, więc div nie dochodzi do footera, a zatem i tło by nie dochodziło. – pusty div nie ma koloru tła. Jeśli usuniemy header i footer to wrapper staje się pusty, bo sidebary i main to elementy pływające (płyną-unoszą się nad wrapperem). Zatem mimo deklaracji, wrapper nie posiada wtedy tła i tym samym nie jest ono dziedziczone przez sidebary. Jeśli teraz np. dodamy z powrotem footer to wrapper ma już zawartość, zatem posiada tło i tym samym sidebary je dziedziczą. Pusty "div" a mimo wszystko tło: dodać do takiego diva deklarację: overflow: hidden http://www.w3schools.com/cssref/pr_pos_overflow.asp – mogą być różnice w przeglądarkach, trzeba sprawdzać Na tworzenie układu jest wiele sposobów. Został pokazany jeden z nich Dodajemy banner i menu Do utworzonej strony dodajmy banner i menu Banner (obrazek): – wstawiamy jako tło dla headera, dzięki temu pozostanie napis tytułowy na obrazku – wysokość headera ustalamy taką jak wysokość obrazka. Jeśli tego nie zrobimy header będzie dopasowany do obszaru, który zajmuje napis i część tła zostanie obcięta Menu: – wstawiamy menu poziome. Jak wykonać menu, patrz wcześniejszy slajd "Tworzenie menu" – kod menu umieszczamy w nowym div-ie "menu" – pozycje menu ustawiamy na środku. W tym celu zwężamy ul, środkujemy za pomocą margin i dajemy tło dla div-a "menu" Przykład: UkladStronyBannerMenu.html Nabranie wprawy w tworzeniu układów • Ćwiczyć, eksperymentować • Uczyć się od innych, podglądając konstrukcję cudzych stron • Darmowe arkusze: http://templated.co/ Można na ich podstawie uczyć się jak tworzyć układy, albo wziąć konkretny układ i wypełnić swoją treścią Właściwość position Oprócz właściwości float, położenie elementów na stronie można ustawić za pomocą właściwości position Wartości dla position: – absolute – fixed (zastosowanie do menu, informacja o cookies aby nie znikała z ekranu przy przesuwaniu strony) – relative (stosowane przy tworzeniu podmenu) – static (normalne położenie) Po ustawieniu wartości dla position, podajemy położenie elementu za pomocą właściwości: top, bottom, left, right. Analogicznie jak przy float: przy ustawionej właściwości position innej niż static element jest odrywany od swojego normalnego położenia, a w zwolnienione miejsce wchodzi następny element Przykład: Position.html Element span • element wierszowy. • element span można użyć, gdy chcemy zmienić wygląd części tekstu. Np. chcemy jednolicie wyróżnić jakieś ważne dane. reguła .wyroznienie { color: red; font-weight:bold; letter-spacing: 3pt; } zastosowanie <span class=”wyroznienie”>jakis tekst</span> Przykład: Span.html