¿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.offsetWidthincluye ancho de borde,clientWidthno.display: noneo no es parte del documento, siempre tendrá una altura de desplazamiento cero.Se puede utilizar
clientWidthooffsetWidthreferencia 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:
divWidthahora 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
autovalores.Si usas solo
puede obtener
autovalores de ancho y alto porque los navegadores no se procesan hasta que se realiza la carga completa.fuente