Ver Mensaje Individual
  #3 (permalink)  
Antiguo 02/07/2008, 20:21
Avatar de derkenuke
derkenuke
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: self.location.href
Mensajes: 2.665
Antigüedad: 20 años, 6 meses
Puntos: 45
Respuesta: Lista con float:left y 3 renglones, problemas en IE

Hola PatomaS, gracias por contestar:

Cita:
Iniciado por PatomaS Ver Mensaje
Veamos, si agregas un borde a la lista, verás que firefox tampoco te lo muestra realmente bien ya que los elementos con float están fuera de la lista.
Eso me ocurre también en IE (6), los elementos flotantes no ocupan lugar porque flotan ¿no? Jeje. Siempre ha sido un problema, pero ¿Influye eso en mi cuestión?

Cita:
Iniciado por PatomaS Ver Mensaje
Si lo que quieres es que estén en la misma línea, lo que has de hacer es cambiar su tipo de display, de block a inline.
(...)
Obviamente, al ser inline, todos irán a la misma línea, po lo que debes controlar las dimensiones del formulario para que salten cuando sea necesario.
¿Cómo puedo hacer eso? Tengo los dos primeros elementos, que me impiden acortar el width de la lista. De todas maneras ¿cómo lo acorto? ¿Con porcentaje? ¿Con píxeles? ¿Con em? Dependiendo de cómo tenga el usuario el tamaño de letra en su navegador, cambiarán el número de elementos por fila haga lo que haga... (Ver editado al final)

Cita:
Iniciado por PatomaS Ver Mensaje
En cualquier caso, si lo que te interesa es realmente la semántica, si los tres elementos deben estar en la misma línea, significa que son la misma opción, por lo que deberían ser un solo elemento de lista.
Sí, quizás me has pillado ahí, jeje. No habría problema en que fueran el mismo elemento la misma línea. Es para el menú principal de una web. Interpreto esta lista como un tablero de 3x3, como si fuera un tres en raya. También pueden hacerse listas que no formen una línea ¿no? Sino un tablero, o "nube". Una lista multi-columna o multi-fila (para muchos elementos). La cuestión es cómo hacerla controlando cuántos elementos por fila.

Se me ha ocurrido meter elementos de separación, que "rompan" ese inline. Pero claro, tengo que meter más elementos HTML sin sentido:
Código HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="es" lang="es">
<head>
<meta http-equiv="Content-type" content="text/html;charset=iso-8859-1" />
<meta name="Author" content="derkeNuke" />
<title>Página nueva</title>
<style type="text/css">
#lista {
	list-style:none;
}
#lista .junto {
	display: inline;
}
#lista .separador {
	display: block;
	line-height: 1px;
}
</style>
</head>

<body>

<ul id="lista">
	<li>especial #1</li>
	<li>especial #2</li>
	<li class="junto">#1</li>
	<li class="junto">#2</li>
	<li class="junto">#3</li>
	<li class="separador">&nbsp;</li>
	<li class="junto">#4</li>
	<li class="junto">#5</li>
	<li class="junto">#6</li>
	<li class="separador">&nbsp;</li>
	<li class="junto">#7</li>
	<li class="junto">#8</li>
	<li class="junto">#9</li>
</ul>


</body>
</html> 

¿Alguna idea de cómo hacerlo sin trucos HTML?


EDITO: Me he dado cuenta que sí podemos dar una anchura a la lista con la unidad em sin que al redimensionar la letra del navegador se descoloque la lista (aumenta en consecuencia la anchura de la lista). ¿Me puedo fiar dimensionándola con mi ordenador? Además, tendría que hacer dos listas, una para los elementos del principio y otra para el tablero 3x3, aunque no supone problema.
__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.