Metody outerWidth i outerHeight w jQuery
Ostatnia para metod - outerWidth i
outerHeight, za pomocą których można uzyskać
szerokość i wysokość elementu uwzględniając wszystkie marginesy i obramowania,
albo można nie uwzględniać zewnętrznych marginesów margin.
Rozważmy przykład. Niech mamy akapit:
<p id="test">text</p>
<p id="out"></p>
CSS wygląda tak:
p {
margin: 10px;
padding: 5px;
border: 2px solid blue;
}
Pobierzmy wartości szerokości i wysokości akapitu
#test, uwzględniając wewnętrzne marginesy i obramowania,
w tym celu do tych metod należy przekazać
false lub pozostawić nawiasy puste (ponieważ
jest to ustawione domyślnie w metodzie):
let w = $('#test').outerWidth(false);
let h = $('#test').outerHeight();
$('#out').text('Width: ' + w + ' Height: ' + h);
Teraz nasze wartości będą różnić się jeszcze o 4px,
ponieważ grubość obramowania wynosi 2px z każdej strony.
A teraz pobierzmy wartości szerokości i wysokości akapitu
#test, uwzględniając wszystkie marginesy i obramowania,
w tym celu do metod outerWidth i outerHeight
należy przekazać true:
let w = $('#test').outerWidth(true);
let h = $('#test').outerHeight(true);
$('#out').text('Width: ' + w + ' Height: ' + h);
Teraz nasze wartości będą różnić się od poprzednich
jeszcze o 20px, ponieważ zewnętrzne marginesy wynoszą
po 10px z każdej strony.
Uzupełnij rozwiązanie poprzednich zadań - wypisz
w trzecim akapicie pod divem #wrapper
wartości szerokości i wysokości diva #wrapper -
z uwzględnieniem wewnętrznych marginesów i obramowań, ale bez
zewnętrznych marginesów. W czwartym akapicie wypisz
wartości szerokości i wysokości diva #wrapper
z uwzględnieniem wszystkich marginesów i obramowań.
Również za pomocą metod outerWidth i
outerHeight możemy
zmienić wartości szerokości i wysokości elementów.
Na przykład, ustawmy szerokość diva #test1
na 250px, a wysokość #test2 - na 200px:
$('#test1').outerWidth(250, true);
$('#test2').outerHeight(200);
Wszystkie wymienione metody pracy z rozmiarami elementu również przewidują możliwość zastosowania funkcji do każdego elementu w zbiorze.