Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Jak pobrać szerokość elementu?

6 views
Skip to first unread message

Marek

unread,
May 7, 2013, 3:20:46 AM5/7/13
to
Witam,

Mamy strukturę:

<div style="width:700px; height:100px; position:relative overflow:hidden">
<div style="position:absolute; top:0; left:0;" id="slider">
... tu kod HTML
</div>
</div>

Jak wyznaczyć szerokość elementu slider?
document.getElementById("slider").offsetWidth zwraca 700px, co jest
bzdurą. Element slider jest znacznie szerszy.

--
Pozdrawiam
Marek

Wojtek Gapiński

unread,
May 7, 2013, 4:47:24 PM5/7/13
to
Jeśli nigdzie nie ustawiasz innej szerokości dla #slider, to wcale nie
jest to bzdurą - div zdaje się przejmuje szerokość rodzica.

--
Wojtek Gapiński
http://jwmprojekt.pl

Marek

unread,
May 7, 2013, 5:13:51 PM5/7/13
to
W dniu 2013-05-07 22:47, Wojtek Gapiński pisze:

> Jeśli nigdzie nie ustawiasz innej szerokości dla #slider, to wcale nie
> jest to bzdurą - div zdaje się przejmuje szerokość rodzica.

No dobrze, ale gdy wyłączę overflow:hidden, to ewidentnie widać, że
szerokość obiektu jest znacznie szarsza niż rodzic a mimo to zwracana
szerokość jest taka jak rodzica.

--
Pozdrawiam
Marek

Wojtek Gapiński

unread,
May 8, 2013, 1:38:33 AM5/8/13
to
Dnia 07-05-2013 23:13 Marek napisał:
>
> No dobrze, ale gdy wyłączę overflow:hidden, to ewidentnie widać, że
> szerokość obiektu jest znacznie szarsza niż rodzic a mimo to zwracana
> szerokość jest taka jak rodzica.
>

IMHO JS zwraca Ci taką szerokość #slider, jaka wynika ze stylów. A to,
że zawartość się nie mieści i przez to ten <div> jest szerszy, to już
inna sprawa.
Może spróbuj ustawić dla #slider szerokość na auto.

Marek

unread,
May 8, 2013, 1:55:27 PM5/8/13
to
W dniu 2013-05-08 07:38, Wojtek Gapiński pisze:

> IMHO JS zwraca Ci taką szerokość #slider, jaka wynika ze stylów. A to,
> że zawartość się nie mieści i przez to ten <div> jest szerszy, to już
> inna sprawa.
> Może spróbuj ustawić dla #slider szerokość na auto.
>

Chyba znalazłem rozwiązanie. Wystarczy odczytać scrollWidth. :-D Ta
właściwość zawiera całą szerokość elementu jak na potrzeby scrollowania.
Uffff.

--
Pozdrawiam
Marek

Paweł Piskorz

unread,
May 9, 2013, 10:39:19 AM5/9/13
to
W dniu 2013-05-07 22:47, Wojtek Gapiński pisze:
Zauważ że #slider ma position:absolute; - w takim przypadku jego
szerokość jest dopasowywana do zawartości, a nie do rodzica.


--
message[autor="PablO"]::after {
content:"Pozdrawiam";
}
0 new messages