Foros del Web » Creando para Internet » CSS »

[SOLUCIONADO] No entiendo float+clear¡

Estas en el tema de No entiendo float+clear¡ en el foro de CSS en Foros del Web. La verdad es que quiero entender bien el comportamiento de los elementos, pero hay algunos que no pillo el por qué. Por ejemplo float. No ...
  #1 (permalink)  
Antiguo 04/06/2013, 03:06
Avatar de Iballa  
Fecha de Ingreso: marzo-2013
Mensajes: 107
Antigüedad: 11 años, 1 mes
Puntos: 6
No entiendo float+clear¡

La verdad es que quiero entender bien el comportamiento de los elementos, pero hay algunos que no pillo el por qué. Por ejemplo float.

No entiendo por ejemplo este comportamiento, se supone que hay que darle "clear" para que el siguiente elemento ya no se amontone al lado del otro. El primer elemento, la foto, flota a la izquierda, deja el hueco, y el siguiente elemento id=xxxx
ocupa el espacio vacio. Y ahora como no se le ha dado clear todavia, se supone que el id=bbbb también se tiene que amontonar a la derecha no?, pero se comporta como si no existiera el float, como si se le hubiera dado clear, pero yo no le he dado clear. ¿alguien sabe por que? lo siento el rollo pero entonces para que sirve clear? si ya de por si mismo el tercer elemento se comporta con el flujo normal...

Código HTML:
Ver original
  1.     <style type="text/css">
  2.  
  3.         img {
  4.             float: left;
  5.         }
  6.         #xxxx {
  7.          border: 1px solid black;
  8.          width: 400px;
  9.         }
  10.         #bbbb {
  11.          border: 1px solid black;
  12.          width: 400px;
  13.         }
  14.  
  15.       #contenedor { background: pink;}
  16.     </style>
  17. </head>
  18.   <div id="contenedor">
  19.    <img src="imagen_flores_1.png">
  20.    <p id="xxxx">Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
  21.    tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
  22.    quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
  23.    consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
  24.    cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
  25.    proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
  26.    Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
  27.    tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
  28.    quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
  29.    consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
  30.    cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
  31.    proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
  32.    Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
  33.    tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
  34.    quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
  35.    consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
  36.    cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
  37.    proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
  38.    Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
  39.    tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
  40.    quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
  41.    consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
  42.    cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
  43.    proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
  44.    Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
  45.    tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
  46.    quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
  47.    consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
  48.    cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
  49.    proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
  50.    Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
  51.    tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
  52.    quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
  53.    consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
  54.    cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
  55.    proident, sunt in culpa qui off
  56.    </p>
  57.    <p id="bbbb">Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
  58.    tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
  59.    quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
  60.    consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
  61.    cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
  62.    proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>
  63.    </div>
  64. </body>
  65. </html>
  #2 (permalink)  
Antiguo 04/06/2013, 03:48
Avatar de pzin
Moderata 😈
 
Fecha de Ingreso: julio-2002
Ubicación: Islas Canarias
Mensajes: 10.488
Antigüedad: 21 años, 8 meses
Puntos: 2114
Respuesta: No entiendo float+clear¡

Los floats afectan al siguiente elemento, no a todos los que siguen.
  #3 (permalink)  
Antiguo 04/06/2013, 04:45
Avatar de Iballa  
Fecha de Ingreso: marzo-2013
Mensajes: 107
Antigüedad: 11 años, 1 mes
Puntos: 6
Respuesta: No entiendo float+clear¡

Cita:
Iniciado por pzin Ver Mensaje
Los floats afectan al siguiente elemento, no a todos los que siguen.
Entonces ¿para qué sirve clear?
  #4 (permalink)  
Antiguo 04/06/2013, 05:47
Avatar de pzin
Moderata 😈
 
Fecha de Ingreso: julio-2002
Ubicación: Islas Canarias
Mensajes: 10.488
Antigüedad: 21 años, 8 meses
Puntos: 2114
Respuesta: No entiendo float+clear¡

Para limpiar el flotado y que no afecte al siguiente elemento.*

En tu caso el flotado de la imagen afecta al siguiente elemento, y ese párrafo se pone al lado. Pero como dicho párrafo no está flotado, no va a afectar nada al siguiente.

* corregido

Última edición por pzin; 04/06/2013 a las 09:38
  #5 (permalink)  
Antiguo 04/06/2013, 05:57
Avatar de Iballa  
Fecha de Ingreso: marzo-2013
Mensajes: 107
Antigüedad: 11 años, 1 mes
Puntos: 6
Respuesta: No entiendo float+clear¡

Cita:
Iniciado por pzin Ver Mensaje
Para limpiar el flotado y que no afecte al siguiente elemento.

En tu caso el flotado de la imagen afecta al siguiente elemento, y ese párrafo se pone al lado. Pero como dicho párrafo no está flotado, no va a afectar nada al siguiente.
Perdoname, no lo entiendo, si yo pongo float a un elemento es para que afecte al siguiente elemento, tal y como has dicho. Es una contradicción si pongo float para que afecte al siguiente elemento, y después clear para que no lo afecte...
  #6 (permalink)  
Antiguo 04/06/2013, 06:05
Avatar de pzin
Moderata 😈
 
Fecha de Ingreso: julio-2002
Ubicación: Islas Canarias
Mensajes: 10.488
Antigüedad: 21 años, 8 meses
Puntos: 2114
Respuesta: No entiendo float+clear¡

No es una contradicción. Es que tampoco es tan así. O si.

El float afecta al elemento que le inidicas además de al siguiente casi siempre. No he dicho que sólo afecte al siguiente, o me refería a que no afecta "además" a todos los que siguen sino sólo al siguiente.

En tu caso no usas ningún clear. Pero el que se vaya hacia abajo el segundo párrafo es debido a que el primero no está flotado como la imagen. Flótalo para que veas que, si hay sitio suficiente, el segundo párrafo se pondrá al lado:

Código CSS:
Ver original
  1. #xxxx {
  2.   float: left;
  3. }
  #7 (permalink)  
Antiguo 04/06/2013, 08:56
Avatar de Iballa  
Fecha de Ingreso: marzo-2013
Mensajes: 107
Antigüedad: 11 años, 1 mes
Puntos: 6
Respuesta: No entiendo float+clear¡

Cita:
Iniciado por pzin Ver Mensaje
No es una contradicción. Es que tampoco es tan así. O si.

El float afecta al elemento que le inidicas además de al siguiente casi siempre. No he dicho que sólo afecte al siguiente, o me refería a que no afecta "además" a todos los que siguen sino sólo al siguiente.

En tu caso no usas ningún clear. Pero el que se vaya hacia abajo el segundo párrafo es debido a que el primero no está flotado como la imagen. Flótalo para que veas que, si hay sitio suficiente, el segundo párrafo se pondrá al lado:

Código CSS:
Ver original
  1. #xxxx {
  2.   float: left;
  3. }
Hola de nuevo, si, eso lo entiendo perfectamente, lo que no entiendo es que pinta clear. (no me mates)
  #8 (permalink)  
Antiguo 04/06/2013, 09:35
Avatar de pzin
Moderata 😈
 
Fecha de Ingreso: julio-2002
Ubicación: Islas Canarias
Mensajes: 10.488
Antigüedad: 21 años, 8 meses
Puntos: 2114
Respuesta: No entiendo float+clear¡

Uhmm...

Lo que hace clear es que limpia el flotado, entonces dicho elemento se moverá hasta el punto donde el flotado "termina", esos límites son más bien algo abstracto y supongo que eso es lo difícil de entender. O yo me explico mal.

No sé, es más difícil de explicar que de entender.

Edito:

Cita:
Iniciado por pzin Ver Mensaje
Para limpiar el flotado y que no afecte al siguiente elemento.
Esto está mal. Debería de ser "para limpiar el flotado y que no sea afectado por el flotado del elemento anterior".
  #9 (permalink)  
Antiguo 05/06/2013, 02:57
Avatar de Iballa  
Fecha de Ingreso: marzo-2013
Mensajes: 107
Antigüedad: 11 años, 1 mes
Puntos: 6
Respuesta: No entiendo float+clear¡

Cita:
Iniciado por pzin Ver Mensaje
Uhmm...

Lo que hace clear es que limpia el flotado, entonces dicho elemento se moverá hasta el punto donde el flotado "termina", esos límites son más bien algo abstracto y supongo que eso es lo difícil de entender. O yo me explico mal.

No sé, es más difícil de explicar que de entender.

Edito:



Esto está mal. Debería de ser "para limpiar el flotado y que no sea afectado por el flotado del elemento anterior".
Gracias pzin, saludos¡

Etiquetas: html
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:02.