Düz JavaScript ile div yüksekliği elde edin


312

JQuery kullanmadan div yüksekliğini nasıl elde edeceğiniz hakkında herhangi bir fikir?

Bu soru için Stack Overflow arıyordum ve her cevap jQuery's işaret ediyor gibi görünüyor .height().

Ben böyle bir şey denedim myDiv.style.height, ama div benim widthve heightCSS ayarlanmış olsa bile, hiçbir şey geri döndü .



Yanıtlar:


587
var clientHeight = document.getElementById('myDiv').clientHeight;

veya

var offsetHeight = document.getElementById('myDiv').offsetHeight;

clientHeight dolgu içerir.

offsetHeight dolgu, scrollBar ve kenarlıklar içerir.


2
ofsetheight, quirksmode.org/mobile/tableViewport_desktop.html altında ie10 üzerinde wokr yapmıyor
fearis

3
Ayrıca scrollHeight, içerilen belgenin yüksekliğini, dikey dolguyu ve dikey kenarlıkları da kullanabilirsiniz.
Saeid Zebardast

5
clientHeightayrıca dolgu içerir, bu yüzden$.height()
Eevee

2
sınırlar ve kenar boşluğu da yer kaplıyor. :) ve cevabınız clientHeightdolgu içermiyor. ve soru her ikisinden de bahsediyor $.height()ve ikisi de .style.heightdolgu içermiyor, askerin de istemediğini gösteriyor.
Eevee

3
Not: OP, doldurmayı hariç tutan cevaplar istemedi . Farkında olduğum için yerel bir platformlar arası çözüm yok.
Dan


22

Başka bir seçenek getBoundingClientRect işlevini kullanmaktır. Öğenin ekranı 'none' ise getBoundingClientRect'in boş bir rekt döndüreceğini lütfen unutmayın.

Misal:

var elem = document.getElementById("myDiv");
if(elem) {
   var rect = elem.getBoundingClientRect();
   console.log(rect.height);  
}

2
Bence bu daha iyi bir çözüm
Intervalia

11
var myDiv = document.getElementById('myDiv'); //get #myDiv
alert(myDiv.clientHeight);

clientHeight ve clientWidth aradığınız şeydir.

offsetHeight ve offsetWidth ayrıca yüksekliği ve genişliği döndürür, ancak kenarlık ve kaydırma çubuğunu içerir. Duruma bağlı olarak, birini veya diğerini kullanabilirsiniz.

Bu yardımcı olur umarım.


2

Diğer cevaplar benim için işe yaramıyordu. İşte w3schools'ta bulduğum şey div, bir heightve / veya widthset olduğunu varsayarak .

Tek ihtiyacınız olan heightve widthdolguyu dışlamak için.

    var height = document.getElementById('myDiv').style.height;
    var width = document.getElementById('myDiv').style.width;

Siz ineklerimiz: Bu cevap, aldığım upvotes ile değerlendirerek en az 5 kişiye yardımcı oldu. Eğer beğenmediysen, neden düzeltebileceğimi söyle. Bu benim downvotes ile benim en büyük evcil hayvan peeve; nadiren bana neden aşağı indirdiğini söylüyorsun.


23
heightwidth
Div'in

1
Bunun varsayıldığını ve ima edildiğini düşündüm. Cevabımda bahsi geçen bu uyarı ister misiniz?
craned

2
Daha iyi. Şahsen diğer yöntemleri doğru bulmuyorum. Bir kullanımım olduğunu offsetHeightve clientHeightdaha sık kullandığımı söylemek için girişimde bulunurdum style.height.
hopkins-matt

1
Benim için çalışmıyorlardı. Bu yüzden bu cevabı gönderdim.
craned

1
W3schools'un diğer yöntemlerin doğru olmadığını nasıl söylediğini göremiyorum.
aknuds1

1
<div id="item">show taille height</div>
<script>
    alert(document.getElementById('item').offsetHeight);
</script>

Jsfiddle


1

Buna ek olarak el.clientHeightve öğenin içindeki içeriğin yüksekliğineel.offsetHeight ihtiyacınız olduğunda (öğenin kendisinde ayarlanan yüksekliğe bakılmaksızın) kullanabilirsiniz . Daha fazla bilgiel.scrollHeight

Eleman yüksekliğini veya maksimum yüksekliğini dahili dinamik içeriğinin tam yüksekliğine ayarlamak istiyorsanız bu yararlı olabilir. Örneğin:

var el = document.getElementById('myDiv')

el.style.maxHeight = el.scrollHeight+'px'

Merak eden herkes için bu, dinamik yükseklik içeriğine sahip
açılanlar


1

İşte bir alternatif daha:

var classElements = document.getElementsByClassName("className");

function setClassHeight (classElements, desiredHeightValue) 
    {
        var arrayElements = Object.entries(classElements);
        for(var i = 0; i< arrayElements.length; i++) {
            arrayElements[i][1].style.height = desiredHeightValue;
        }

    }

1

Seçeneklerden biri

const styleElement = getComputedStyle(document.getElementById("myDiv"));
console.log(styleElement.height);
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.