Como você encontra a largura atual de uma <div>
maneira compatível com vários navegadores sem usar uma biblioteca como o jQuery?
javascript
html
Joda Maki
fonte
fonte
Respostas:
fonte
cientWidth
, embora eu não saiba a diferença real.offsetWidth
inclui largura da borda,clientWidth
não.display: none
ou não fizer parte do documento, ela sempre terá altura de deslocamento zero.Você pode usar
clientWidth
ouoffsetWidth
referência de rede de desenvolvedor MozillaSeria como:
ou com largura das bordas:
fonte
Todas as respostas estão corretas, mas ainda quero dar outras alternativas que possam funcionar.
Se você estiver procurando pela largura atribuída (ignorando preenchimento, margem e assim por diante), poderá usar.
O getComputedStyle permite acessar todos os estilos desses elementos. Por exemplo: padding, paddingLeft, margin, border-top-left-ray e assim por diante.
fonte
Você também pode pesquisar o DOM usando o ClassName. Por exemplo:
Isso retornará uma matriz. Se houver uma propriedade específica em que você esteja interessado. Por exemplo:
divWidth
agora será igual à largura do primeiro elemento em sua matriz div.fonte
Na verdade, você não precisa usar
document.getElementById("mydiv")
.Você pode simplesmente usar o ID da div, como:
var w = mydiv.clientWidth;
ou
var w = mydiv.offsetWidth;
etc.
fonte
Outra opção é usar a função getBoundingClientRect. Observe que getBoundingClientRect retornará um ret vazio se a exibição do elemento for 'none'.
fonte
chame o método abaixo na tag div ou body onclick = "show (event);" função show (evento) {
fonte
A maneira correta de obter o estilo calculado está aguardando até que a página seja renderizada. Isso pode ser feito da seguinte maneira. Preste atenção ao tempo limite para obter
auto
valores.Se você usar apenas
você pode obter
auto
valores de largura e altura porque os navegadores não são renderizados até que a carga total seja executada.fonte