He estado escaneando todas las bibliotecas populares de js, pero no puedo encontrar una que tenga una función de ancho para un elemento DOM que realmente represente el modo peculiar en Internet Explorer. El problema es que el relleno y los bordes no se cuentan en el ancho cuando se activa el modo peculiar. Por lo que puedo decir, esto sucede cuando el tipo de documento se deja fuera o el tipo de documento está configurado en html 3.2.Ancho de un elemento que representa el modo peculiar en javascript?
Obviamente, podría simplemente configurar el doctype para que cumpla con los estándares, pero este script puede estar incrustado en cualquier lugar, por lo que no tengo control sobre el doctype.
dividir el problema en partes más pequeñas:
1) ¿Cómo se detecta el modo de caprichos? 2) ¿Cuál es la mejor manera de extraer el borde y el relleno de un elemento para compensar?
Ejemplo con prototipo:
<html>
<head>
</head>
<body>
<div id="mydiv" style="width: 250px; pading-left: 1px; border: 2px black solid">hello</div>
<script>
alert($('mydiv').getWidth())
</script>
</body>
</html>
resultado:
253 (ff) 250 (IE)
Gracias de antemano!
¿de dónde viene el atributo currentStyle viene? Lo intento en ff y parece no estar definido – christoff
currentStyle es la versión de IE de getComputedStyle(). Devuelve el valor real de una propiedad de CSS determinada. Puede leer más en el artículo de PPK: http://www.quirksmode.org/dom/getstyles.html – pawel
Con Prototype, también puede usar Element.getStyle(). –