Tamaño de los campos relativo al navegador

  • Por
Dependiendo del navegador los campos de texto tienen tamaños distintos. Con javascript lo evitamos.
Si creamos un formulario con unos campos de texto en una página web podremos observar que Internet Explorer no coloca el mismo tamaño a los campos de texto que Netscape. En concreto, los campos que coloca Netscape son de mayor tamaño para un mismo atributo size en el campo.

Generalmente se soluciona poniendo los campos de texto más pequeños para que quepan en el diseño en Netscape, pero en ocasiones querremos que los campos sean del tamaño justo y que en Internet Explorer no sean demasiado pequeños y que en Netscape demasiado grandes. Esto puede ocurrir, por ejemplo, en diseños calculados muy a la medida.

Concretando, el tamaño de los campos se aplica con el atributo size de la etiqueta <INPUT> y queremos hacer que el size indicado dependa del navegador que estamos usando.

Distinguir los navegadores

Para ello deberemos crear un script de Javascript que distinga entre los dos navegadores y escribir mediante javascript el atributo size con un valor distinto para cada caso.

Distinguir dinámicamente entre los navegadores es una tarea que puede ser bastante complicada y digna de otro reportaje, pero podríamos hacerlo de una manera parecida a esta.

if (document.layers)
//hago cosas para Netscape 4
else
// hago cosas para otros navegadores

Con este código discrimino tan solo entre la versión 4 de Netscape y todos los demás navegadores. Es por que Netscape 4 es el único navegador cuya jerarquía de objetos incluye un objeto denominado layers. Al introducir ese nombre de objeto en la expresión a evaluar del if, obtendremos casos positivos si el objeto existe (Netscape4) y negativos si no existe (los demás).

Escribir cosas distintas en cada caso

Ahora vamos a poner el código Javascript que escribiría un campo de texto con un valor de size distinto para cada navegador.

if (document.layers)
document.write("<INPUT type=text size=12>")
else
document.write("<INPUT type=text size=16>")

Colocamos el script en un formulario

Es bien simple, sólo nos queda colocar ese código dentro de un formulario y tendremos un campo de texto con sizes distintos pero con el mismo tamaño en la pantalla.

<FORM>
<script language="JavaScript">
if (document.layers)
document.write("<INPUT type=text size=12>")
else
document.write("<INPUT type=text size=16>")
</script>
</FORM>

Se puede ver este ejemplo en una página a parte.

Autor

Miguel Angel Alvarez

Miguel es fundador de DesarrolloWeb.com y la plataforma de formación online EscuelaIT. Comenzó en el mundo del desarrollo web en el año 1997, transformando su hobby en su trabajo.

Compartir

Comentarios

Ruben

29/3/2007
Si quisiera distinguir entre un navegador Mozilla e Internet Explorer como sería? Se podría hacer en php?
Saludos y Gracias.