¿Cómo encuentra el ancho actual de a <div>
de una manera compatible entre navegadores sin usar una biblioteca como jQuery?
javascript
html
Joda Maki
fuente
fuente
Respuestas:
fuente
cientWidth
, aunque no sé la verdadera diferencia.offsetWidth
incluye ancho de borde,clientWidth
no.display: none
o no es parte del documento, siempre tendrá una altura de desplazamiento cero.Se puede utilizar
clientWidth
ooffsetWidth
referencia de la red de desarrolladores de MozillaSería como:
o con ancho de bordes:
fuente
Todas las respuestas son correctas, pero todavía quiero dar algunas otras alternativas que puedan funcionar.
Si está buscando el ancho asignado (sin tener en cuenta el relleno, el margen, etc.) que podría usar.
getComputedStyle le permite acceder a todos los estilos de esos elementos. Por ejemplo: padding, paddingLeft, margin, border-top-left-radius, etc.
fuente
También puede buscar el DOM usando ClassName. Por ejemplo:
Esto devolverá una matriz. Si hay una propiedad en particular que le interesa. Por ejemplo:
divWidth
ahora será igual al ancho del primer elemento en su matriz div.fuente
En realidad, no tienes que usar
document.getElementById("mydiv")
.Simplemente puede usar la identificación del div, como:
var w = mydiv.clientWidth;
o
var w = mydiv.offsetWidth;
etc.
fuente
Otra opción es usar la función getBoundingClientRect. Tenga en cuenta que getBoundingClientRect devolverá un rect vacío si la pantalla del elemento es 'none'.
fuente
llame al método siguiente en div o body tag onclick = "show (event);" función show (evento) {
fuente
La forma correcta de obtener el estilo calculado es esperar hasta que se muestre la página. Se puede hacer de la siguiente manera. Presta atención al tiempo de espera para obtener
auto
valores.Si usas solo
puede obtener
auto
valores de ancho y alto porque los navegadores no se procesan hasta que se realiza la carga completa.fuente