Controlar el tamaño de una lista desplegable
Saludos a todos.
En el desarrollo de una aplicación web me he encontrado con el problema de una combo o lista desplegable con algunas opciones de muchos caracteres... y claro, la anchura de la combo de "desmadra". ¿Sabeis alguna forma, mediante atributos HTML,CSS,JS,como sea, de controlar este tamaño? Me serÃa de gran ayuda, y solo necesito que funcione en IE.
Gracias por anticipado
En el desarrollo de una aplicación web me he encontrado con el problema de una combo o lista desplegable con algunas opciones de muchos caracteres... y claro, la anchura de la combo de "desmadra". ¿Sabeis alguna forma, mediante atributos HTML,CSS,JS,como sea, de controlar este tamaño? Me serÃa de gran ayuda, y solo necesito que funcione en IE.
Gracias por anticipado
Al combo le puedes dar una anchura fija mediante estilos (CSS).
Create una clase en la que defines el width como un numero N de pixels (ej. width: 100px;). Al definir el combo asigna esta clase al combo y el combo cogera una anchura de N pixels.
Donostiatik agurrak !!!
Mikel
Create una clase en la que defines el width como un numero N de pixels (ej. width: 100px;). Al definir el combo asigna esta clase al combo y el combo cogera una anchura de N pixels.
Donostiatik agurrak !!!
Mikel
Un combobox toma la longitud de la cadena de caracteres más larga que tiene que mostrar, asà que hay que tener en cuenta esta opción a la hora del diseño de la estética de nuestra página.
Por desgracia no se le puede asignar un tamaño fijo más que el que tenga dicha cadena más larga
Además piensa que un combobox no tiene barra de desplazamiento lateral, por lo que si tubiese una cadena que no se viese completa no se podrÃa elegir bien
como solución, y si los valores de esas cadenas que se van a mostrar y sus correspondientes valores los toma dinámicamente (ya es un poco lio) te sujiero que le crees una "barra" de caracteres (por ejemplo "-" con valor enblanco "") qeu tenga la longitud máxima de todos las cadenas que vaya a tomar
he creado un script que crea un combobox en un formulario con un tamaño máximo de 51 guiones "-" para cubrir una cadena de 32 letras en minúscula XD
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Crear un combobox en java</title>
<script>
// Script creado en 2004 por LiMaX
// puedes copiarme y modificarme mientras mantengas una referencia del auotr original :)
//este script crea un combobox en base a las opciones y valores abajo indicadas en un formulario
//las opciones y sus valores los puede adquirir si en vez de literales les asignamos variables
var opciones = new Array (); // lo que se presentará en cada opción
opciones[0] = "a"
opciones[1] = "b"
opciones[2] = "c"
opciones[3] = "los peores son los que no se ven"
var valores = new Array (); // lo que valdrá cada opción
valores[0] = "1"
valores[1] = "2"
valores[2] = "3"
valores[3] = "demonios del mal"
var totaldeopciones = 4; // tenemos que indicarle cuantas opciones tenemos
var veces = 51; // longitud que va a tener la "barra"
var caracter = "-"; // caracter que queremos que tome la "barra" - Si es el signo "-" o alguno pequeño ten en cuenta que las opciones pueden ser muy largas
// en teorÃa no hay que modificar más abajo de aquÃ
var aescribir = ""; // será la "barra" en sÃ
var i = 0; // variable auxiliar
var x = 0; // variable auxiliar
var todo = ""; // esto cojerÃa todo el combobox en sÃ
var nada = "";
function escribirbarra(){
for (x = 0; x < veces; x++){ //repite la orden de abajo las "veces" que le hayamos indicado...
aescribir = aescribir + caracter; // la "barra" va aumentando cada vez con el "caracter" que le hayamos dicho
}
todo = todo + '<select size="1" name="D1">'; // empieza el combobox
todo = todo + '<option value="">'; // empieza la "barra"
todo = todo + aescribir; // la barra en sÃ
todo = todo + '</option>'; // acaba la "barra"
for (i = 0; i < totaldeopciones; i++){ // se repite el número de veces que opciones haya
todo = todo + '<option value="'; // empieza la opción
todo = todo + valores[i]; // valor de la opción
todo = todo + '">'; // sigue la opción
todo = todo + opciones[i]; // lo que se ve de la opción
todo = todo + '</option>'; // fin de la opción
}
escribetodo.innerHTML= todo; // lo escribe todo
}
</script>
</head>
<body onload="escribirbarra()">
<form name="formulario" ID="formulario">
<span title="escribetodo" id="escribetodo"> </span>
</form>
</body>
</html>
Por desgracia no se le puede asignar un tamaño fijo más que el que tenga dicha cadena más larga
Además piensa que un combobox no tiene barra de desplazamiento lateral, por lo que si tubiese una cadena que no se viese completa no se podrÃa elegir bien
como solución, y si los valores de esas cadenas que se van a mostrar y sus correspondientes valores los toma dinámicamente (ya es un poco lio) te sujiero que le crees una "barra" de caracteres (por ejemplo "-" con valor enblanco "") qeu tenga la longitud máxima de todos las cadenas que vaya a tomar
he creado un script que crea un combobox en un formulario con un tamaño máximo de 51 guiones "-" para cubrir una cadena de 32 letras en minúscula XD
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Crear un combobox en java</title>
<script>
// Script creado en 2004 por LiMaX
// puedes copiarme y modificarme mientras mantengas una referencia del auotr original :)
//este script crea un combobox en base a las opciones y valores abajo indicadas en un formulario
//las opciones y sus valores los puede adquirir si en vez de literales les asignamos variables
var opciones = new Array (); // lo que se presentará en cada opción
opciones[0] = "a"
opciones[1] = "b"
opciones[2] = "c"
opciones[3] = "los peores son los que no se ven"
var valores = new Array (); // lo que valdrá cada opción
valores[0] = "1"
valores[1] = "2"
valores[2] = "3"
valores[3] = "demonios del mal"
var totaldeopciones = 4; // tenemos que indicarle cuantas opciones tenemos
var veces = 51; // longitud que va a tener la "barra"
var caracter = "-"; // caracter que queremos que tome la "barra" - Si es el signo "-" o alguno pequeño ten en cuenta que las opciones pueden ser muy largas
// en teorÃa no hay que modificar más abajo de aquÃ
var aescribir = ""; // será la "barra" en sÃ
var i = 0; // variable auxiliar
var x = 0; // variable auxiliar
var todo = ""; // esto cojerÃa todo el combobox en sÃ
var nada = "";
function escribirbarra(){
for (x = 0; x < veces; x++){ //repite la orden de abajo las "veces" que le hayamos indicado...
aescribir = aescribir + caracter; // la "barra" va aumentando cada vez con el "caracter" que le hayamos dicho
}
todo = todo + '<select size="1" name="D1">'; // empieza el combobox
todo = todo + '<option value="">'; // empieza la "barra"
todo = todo + aescribir; // la barra en sÃ
todo = todo + '</option>'; // acaba la "barra"
for (i = 0; i < totaldeopciones; i++){ // se repite el número de veces que opciones haya
todo = todo + '<option value="'; // empieza la opción
todo = todo + valores[i]; // valor de la opción
todo = todo + '">'; // sigue la opción
todo = todo + opciones[i]; // lo que se ve de la opción
todo = todo + '</option>'; // fin de la opción
}
escribetodo.innerHTML= todo; // lo escribe todo
}
</script>
</head>
<body onload="escribirbarra()">
<form name="formulario" ID="formulario">
<span title="escribetodo" id="escribetodo"> </span>
</form>
</body>
</html>