Programowanie
Szablon
Układ ustalony wyśrodkowany | Układ ustalony wyśrodkowany |
|
|
Paul O’Brien udostępnił pod adresem Three Column Layout with Equalizing Header and Footer niezwykle bogaty zestaw materiałów objaśniających techniki projektowania układów 3-kolumnowych z nagłówkiem i stopką. W tej części skorzystamy z jego sugestii.
Założenia projektuStworzymy układ 3-kolumnowy, ustalony, z nagłówkiem i stopką, z kolumnami wyrównanymi do najdłuższej. Oto pełny zestaw głównych założeń:
Projektując wielokolumnowe układy stron, napotykamy problemy, które można rozwiązać na wiele sposobów. Projekt Paula O’Briena pozwali nam poznać kilka nowych technik. PrzygotowanieNajpierw przygotujemy podstawowe pliki szablonu. Utwórz w katalogu <name>03_fixed_centre</name> Możesz też, dla celów dokumentacyjnych, dodać opis szablonu: <description> 3-kolumnowy, ustalona szerokość kolumn, z nagłówkiem i stopką oparty na opracowaniu P. O'Briena: Three Column Layout with Equalizing Header and Footer </description> Dodaj także w elemencie <images>
<filename>images/centredbg.png</filename>
<filename>images/header.jpg</filename>
</images>Następnie zastąp zawartość plików Index.phpSkopiuj następujące fragmenty kodu do pliku <?php /** 03_fixed_centre. Układ 3-kolumnowy, ustalony wg P. O'Briena oparty na: Three Column Layout with Equalizing Header and Footer (http://www.pmob.co.uk/) */ <body> <div id="content"> <div id="content_nav_ext"> <div id="content_main"> <!--najpierw główna treść --> <?php mosMainBody(); ?> </div> <div id="nav_bar"> <?php mosLoadModules( 'left' ); ?> </div> </div> <!-- koniec content_nav_ext --> <div id="misc_bar"> <?php mosLoadModules( 'right' ); ?> </div> <div id="clear_footer"></div> <!-- oczysza miejsce na stopkę --> <div id="header"> <h1><?php echo $GLOBALS['mosConfig_sitename']; ?></h1> </div> <div id="footer"> <?php include_once($GLOBALS['mosConfig_absolute_path'] . '/includes/footer.php'); ?> </div> </div> <!-- koniec ramki: #content --> </body> </html> Arkusz stylówSkopiuj następujący kod do pliku /* 03_fixed_centre 3 kolumny, ustalony wyśrodkowany, oparty na wg P. O'Briena oparty na: Three Column Layout with Equalizing Header and Footer (http://www.pmob.co.uk/) */ /* Ukryj przed Mac/IE commented backslash v2 \*/ html, body { height:100% } /* koniec łatki */ body { padding : 0; margin : 0; background-color: #F8F8F8; /* kolor całej strony */ color : #000; text-align : center; /* wyśrodkuj stronę - dla IE*/ min-width : 782px; /* dla Mozilli = 2px więcej niż #content*/ font : 76.1% Verdana, Arial, Helvetica, sans-serif; } #content{ position : relative; height : 100%; min-height : 100%; width : 780px; border-left : 1px solid #888; border-right : 1px solid #888; color : #000; background : url(../images/centredbg.png) repeat-y 50% 50%; /* tło kolumn */ margin : auto; /* wyśrodkuj stronę */ text-align : left; /* przywróć justowanie tekstu do lewej */ } #nav_bar { float : left; position : relative; /* dla IE - rozwiązuje problemy z wyświetlaniem elementów pływających */ width : 190px; /* mniej o 2 px na border */ padding-top : 90px; /* miejsce na nagłówek */ padding-bottom : 32px; /* oddala nieco stopkę */ } #misc_bar { float : right; position : relative; width : 190px; /* mniej o 2 px na border */ padding-top : 90px; /* miejsce na nagłówek */ padding-bottom : 32px; /* oddala nieco stopkę */ } #content_nav_ext { float : left; width : 590px; /* = #content - #misc_bar */ } #header{ position : absolute; top : 0; width : 780px; height : 90px; background : #D0E0FF url(../images/header.jpg); border : 1px solid #888; } #footer { clear : both; position : absolute; left : 0; bottom : 0; width : 780px; height : 50px; border-top : 1px solid #888; border-bottom : 1px solid #888; background-color: #EAF0FE; text-align : center; } #content_main { width : 400px; /* = #content - #nav_bar - #misc_bar*/ float : right; /* ustawia margines od lewej */ padding-top : 90px; /* miejsce na nagłówek */ padding-bottom : 32px; /* oddala nieco stopkę */ } #clear_footer { /* czyści obszar dla stopki */ width : 100%; height : 52px; clear : both; } /*=================== ŁATKI ======================== */ /* tu będą umieszczane łatki */ html > body #content{ height : auto; /* dla Mozilli, IE zawsze traktuje height jako min-height*/ } * html #footer { /* Style tylko dla IE */ height : 52px; /* dla IE5 */ height : 50px; /* dla IE6 */ } /*=============== KONIEC ŁATEK ===================== */ /* ========== TYLKO DLA PODGLąDU =================== */ h1 { /* Ukrywa wyświetlanie nazwy w nagłówku strony */ display: none; } #nav_bar,#misc_bar { background-color: #F2F2F2; /* tło w obszarze wypełnionym zawartością */ } Tworzenie kolumn
Wysokość kolumnBlok W ten sposób ominął problem z IE, która nie interpretuje zgodnie ze specyfikacją wysokości bloków. IE traktuje zawsze Taka deklaracja powoduje wszakże, że zdefiniowana wysokość będzie dla innych przeglądarek zarówno minimalną, jak i maksymalną. Aby uniknąć tej sytuacji, projektant użył reguły, nakazującej innym przeglądarkom dostosować wysokość automatycznie: html > body #content{height : auto;} /* dla Mozilli… */ IE po prostu tej reguły nie wykona. Tym sposobem mamy gwarancję, że wysokość wszystkich trzech kolumn będzie zawsze dostosowana do wysokości tej, w której system umieści najwięcej materiałów. Tło kolumnDo ustalenia tła kolumn zastosowany został obrazek tła w bloku background : url(../images/centrebg.png) repeat-y center center; Umieszczenie nagłówka
Ale dodanie pozycjonowanego bezwzględnie nagłówka wymaga obniżenia wszystkich trzech kolumn tak, aby nie zachodziły na obiekt Projektant ustalił więc dla tych bloków górne dopełnienie wysokości nagłówka, by zrobić dla niego miejsce: padding-top : 85px; /* konieczne: miejsce na nagłówek */ Oczywiście, wielkość dopełnienia zależy od planowanej wysokości nagłówka. Umieszczenie stopkiUmieszczenie stopki jest nieco bardziej złożone. Podobnie jak dla nagłówka, projektant ustawił elementowi Dodanie do właściwości elementu Tak się jednak nie dzieje. Aby uzyskać pożądany efekt, autor umieścił w kodzie dodatkowy element #clear_footer { /* czyści obszar dla stopki */ width : 100%; height : 52px; clear : both; } Zwróć jeszcze uwagę na 32px dopełnienia do dolnych krawędzi elementów Przystosowanie szablonu do Joomla! i Mambo![]() Uklad 3-kolumnowy, ustalony index.php trzeba dodać instrukcje umieszczające kod modułów i ukrywające go w razie potrzeby oraz instrukcje ukrywające prawą kolumnę.Modyfikacji w związku z tym wymagać będzie również arkusz stylów. W przykładzie Prosty układ - dla Joomla! i Mambo wystarczyło dodać deklaracje dla W omówieniu pominęliśmy również zupełnie kwestię odstępów między kolumnami. Oczywiście, całość trzeba również uzupełnić deklaracjami stylów dla różnych standardowych elementów Joomla. Rozwiązanie tych problemów pozostawiamy jako ćwiczenie, w którym pomocne będą kolejne omówienia. Uwagi, źródłaJeżeli masz sugestie odnośnie treści lub chcesz zgłosić poprawki do tego rozdziału, skomentuj go albo umieść wiadomość na forum: Dokumentacja - Propozycje, zmiany, poprawki Dziękujemy! Stefan Wajda, Zespół Dokumentacji PCJ |
| « poprzedni artykuł | następny artykuł » |
|---|






P. O’Brien zastosował w tym rozwiązaniu pojemnik -
Umieszczenie nagłówka jest w tym rozwiązaniu stosunkowo proste. Autor skorzystał z własności pozycjonowania bezwzględnego 
