chevron-left chevron-right

Piotr Nalepa Frontend, architektura i AI

[CSS][jQuery] Zmienny widok strony, czyli różny układ modułów

Ta wersja
blog.piotrnalepa.pl/2009/11/11/cssjquery-zmienny-widok-strony-czyli-rozny-uklad-modulow
Opublikowano
Autor
, Staff Software Engineer
Kategorie
CSS, JavaScript
Uwagi
Napisz do mnie · Napisz na X

Ten wpis ma 16 lat. Od tego czasu przeglądarki i narzędzia mogły się zmienić, więc zanim użyjesz kodu, sprawdź go z aktualną dokumentacją.

Po dłuższej przerwie postanowiłem zaprezentować kolejny ciekawy trick związany z wykorzystaniem biblioteki jQuery. Jest nim sposób na zmienne ustawianie pozycji modułów strony. Podobny efekt można zauważyć na stronie Youtube.


Na początku należy zbudować odpowiednią strukturę strony, która dla tego przykładu wygląda następująco:

Przykład 1HTML
<div id="header">
</div>
<div id="tresc">
    <div id="zawartosc">
    	<a id="zmien" href="#">Zmień ułożenie</a> 
    </div>
    <div id="sidebar">
    </div>
    <div id="modul">
    </div>
</div>
<div id="stopka">
</div>
Jak widać umiejscowiłem w jednym z modułów link do zmiany szerokości, który będzie spełniał swoją funkcję po odpowiednim okodowaniu go z użyciem biblioteki jQuery. Co nastąpi w dalszej fazie artykułu.
Teraz pora na kod CSS:
Przykład 2CSS
#header, #zawartosc, #modul, #sidebar, #stopka { 
	margin:10px 0px;
	padding:30px;
}
#header { 
	width:900px;
	margin:0px auto;
	background: #981a1a;
}
#tresc {
	width:960px;
	margin:0px auto;
	overflow:hidden;
}
#zawartosc { 
	width:540px;
	float:left;
	background: #746666;
}
#modul { 
	width:540px;
	float:left;
	background: #981a1a;
}
#sidebar {
	width:280px;
	margin-left:20px;
	float:right;
	background: #981a1a;
}
#stopka { 
	width:900px;
	margin:0px auto;
	background: #981a1a;
}
#zawartosc.szerzej { 
	width:900px;
}
Tutaj ważne jest to, że #sidebar ma ustawienie float: right, kiedy #zwartosc i #modul mają ustawienie na float: left. Dzięki temu, sidebar się przesunie na dół w momencie rozszerzenia sekcji zawartosc.
Teraz pora na kod JavaScript, ktory będzie odpowiedzialny za zmianę szerokości sekcji "zawartosc"
Przykład 3JavaScript
$(document).ready(function() {
    $("#zmien").click(function() {
        $("#zawartosc").toggleClass("szerzej");
    });
});
I to by było na tyle.
Należy pamiętać o tym, aby dołączyć bibliotekę jQuery do kodu strony, aby skrypt, który napisaliśmy, mógł zadziałać.
Tutaj możesz sprawdzić demo z tego artykułu: Dynamiczna zmiana pozycji modułów z użyciem jQuery

Udostępnij
Uwagi

O autorze

Staff Software Engineer

Piszę na tym blogu od 2009 roku, a strony i aplikacje webowe tworzę zawodowo od 14 lat. Obecnie w Bishop Fox prowadzę frontend platformy Cosmos, od samego początku projektu. Wcześniej pracowałem m.in. w OLX, KUDO, Auto1 i eZ Systems. Piszę tu o tym, czego nauczyłem się w praktyce: o JavaScripcie, TypeScripcie, Reakcie, CSS-ie i architekturze frontendu. Występowałem też jako prelegent na konferencjach w Polsce i Europie. Masz pytanie albo pomysł na wpis? Daj znać!