He flotante imágenes y recuadros en la parte superior de un contenedor usando flotante: derecha (o izquierda) muchas veces. Recientemente tuve la necesidad de flotar un div en la esquina inferior derecha de otro div con el ajuste de texto normal que obtienes con float (texto envuelto arriba y solo a la izquierda).
Pensé que esto debería ser relativamente fácil a pesar de que float no tiene un valor de fondo, pero no he podido hacerlo usando una serie de técnicas y la búsqueda en la web no ha tenido más que usar posicionamiento absoluto, pero esto no dar el comportamiento correcto de ajuste de palabras.
Pensé que este sería un diseño muy común, pero aparentemente no lo es. Si nadie tiene una sugerencia, tendré que dividir mi texto en cuadros separados y alinear el div manualmente, pero eso es bastante precario y odiaría tener que hacerlo en cada página que lo necesite.
EDITAR: Solo una nota para cualquiera que venga aquí. La pregunta vinculada anteriormente como un duplicado, de hecho, no es un duplicado. El requisito de que el texto se ajuste alrededor del elemento insertado lo hace completamente diferente. De hecho, la respuesta a la respuesta más votada aquí deja en claro por qué la respuesta en la pregunta vinculada es incorrecta como respuesta a esta pregunta. De todos modos, todavía no parece haber una solución general a este problema, pero algunas de las soluciones publicadas aquí y en la pregunta vinculada pueden funcionar para casos específicos.
Respuestas:
Establezca el div padre en
position: relative
, luego el div interno en ...... y ahí lo tienes :)
fuente
Una forma de hacerlo funcionar es la siguiente:
Gire el div padre 180 grados usando
JSfiddle: http://jsfiddle.net/wcneY/
Ahora gire todos los elementos que flotan hacia la izquierda (deles una clase) 180 grados para volver a colocarlos en línea recta. Voila! flotan hasta el fondo.
fuente
Después de luchar con varias técnicas durante un par de días, debo decir que esto parece imposible. Incluso usando javascript (que no quiero hacer) no parece posible.
Para aclarar a aquellos que pueden no haber entendido, esto es lo que estoy buscando: en la publicación es bastante común diseñar un recuadro (imagen, tabla, figura, etc.) para que su parte inferior se alinee con la parte inferior de la última línea de texto de un bloque (o página) con el texto que fluye alrededor del recuadro de forma natural arriba y a la derecha o izquierda, dependiendo de qué lado de la página se encuentre el recuadro. En html / css es trivial usar el estilo flotante para alinear la parte superior de un recuadro con la parte superior de un bloque, pero para mi sorpresa, parece imposible alinear la parte inferior del texto y el recuadro a pesar de ser una tarea de diseño común .
Supongo que tendré que revisar los objetivos de diseño de este artículo a menos que alguien tenga una sugerencia de último minuto.
fuente
He logrado esto en JQuery colocando un elemento de puntal de ancho cero encima del flotador a la derecha, luego dimensionando el puntal (o tubería) de acuerdo con la altura del padre menos la altura del niño flotante.
Antes de que js entre en acción, estoy usando el enfoque de posición absoluta, que funciona pero permite que el texto fluya detrás. Por lo tanto, cambio a la posición estática para permitir el enfoque del puntal. (el encabezado es el elemento padre, el recorte es el que quiero abajo a la derecha, y la tubería es mi puntal)
CSS
La tubería debe venir primero, luego el recorte, luego el texto en el orden HTML.
fuente
Esto coloca un div fijo en la parte inferior de la página y se fija en la parte inferior a medida que se desplaza hacia abajo
fuente
Coloque el div en otro div y establezca el estilo del div primario en
position:relative;
Luego, en el div secundario, configure las siguientes propiedades CSS:position:absolute; bottom:0;
fuente
Si está de acuerdo con que solo la línea inferior del texto vaya al lado del bloque (en lugar de estar completamente alrededor y debajo, lo que no puede hacer sin terminar el bloque y comenzar uno nuevo), es No es imposible hacer flotar un bloque en una de las esquinas inferiores de un bloque principal. Si coloca algo de contenido en una etiqueta de párrafo dentro de un bloque y desea hacer flotar un enlace en la esquina inferior derecha del bloque, coloque el enlace dentro del bloque de párrafo y configúrelo como flotante: a la derecha, luego coloque una etiqueta div con clear : ambos se encuentran justo debajo del final de la etiqueta de párrafo. El último div es asegurarse de que la etiqueta principal rodea las etiquetas flotantes.
fuente
Si establece el elemento principal como posición: relativa, puede establecer el elemento secundario en la posición de configuración inferior: absoluta; y abajo: 0;
fuente
Si desea que el texto se ajuste bien: -
fuente
Sé que estas cosas son viejas, pero recientemente me encontré con este problema.
usar divs de posición absoluta consejos de es realmente tonto, porque todo el flotador pierde el punto con las posiciones absolutas
ahora, no encontré una solución universal, pero en muchos casos prople usa divs flotantes solo para mostrar algo en una fila, como una serie de elementos span. y no puedes alinearlo verticalmente.
para lograr un efecto similar, puede hacer esto: no haga que el div flote, sino que configure su propiedad de visualización en
inline-block
. entonces puedes alinearlo verticalmente como te plazca. sólo tiene que propiedad div conjunto de los padresvertical-align
o bientop
,bottom
,middle
obaseline
Espero que ayude a alguien
fuente
Con la introducción de Flexbox , esto se ha vuelto bastante fácil sin mucho hackeo.
align-self: flex-end
en el elemento hijo lo alineará a lo largo del eje transversal .Salida:
Mostrar fragmento de código
fuente
Había encontrado esta solución durante mucho tiempo también. Esto es lo que obtengo:
autoalinear: extremo flexible;
enlace: https://philipwalton.github.io/solved-by-flexbox/demos/vertical-centering/ Sin embargo, no recuerdo de dónde abrí este enlace. Espero eso ayude
fuente
Yo solo haría una mesa.
Y el CSS:
Véalo en acción:
http://jsfiddle.net/mLphM/1/
fuente
Probé varias de estas técnicas, y las siguientes funcionaron para mí, así que si todo lo demás aquí, si todo lo demás falla, intente esto porque funcionó para mí :).
fuente
A eligió este enfoque de @ dave-kok. Pero solo funciona si todo el contenido se adapta sin desplazamiento. Agradezco si alguien mejorará
Aquí está el código http://jsfiddle.net/d9t9joh2/
fuente
Esto ahora es posible con flex box. Simplemente configure la 'visualización' de la división principal como 'flex' y configure la propiedad 'margin-top' en 'auto'. Esto no distorsiona ninguna propiedad de ambos div.
fuente
No estoy seguro, pero un escenario publicado anteriormente parece funcionar si usa position: relative en lugar de absoluto en el elemento secundario div.
Y no hay mesas ...!
fuente
Si necesita una alineación relativa y los DIV aún no le dan lo que desea, simplemente use tablas y establezca valign = "bottom" en la celda donde desea que el contenido se alinee con la parte inferior. Sé que no es una gran respuesta a su pregunta, ya que se supone que los DIV deben reemplazar las tablas, pero esto es lo que tuve que hacer recientemente con un título de imagen y hasta ahora ha funcionado perfectamente.
fuente
Probé este escenario publicado anteriormente también;
El posicionamiento absoluto fija el div en la parte más baja del navegador al cargar la página, pero cuando se desplaza hacia abajo si la página es más larga, no se desplaza con usted. Cambié el posicionamiento para que sea relativo y funciona perfecto. El div va directo al fondo después de la carga, por lo que no lo verá hasta que llegue al fondo.
fuente
Un enfoque interesante es apilar un par de elementos flotantes derechos uno encima del otro.
El único problema es que esto solo funciona cuando conoce la altura de la caja.
fuente
La respuesta de Stu es lo más parecido a trabajar hasta ahora, pero aún no tiene en cuenta el hecho de que la altura de su div externo puede cambiar, según la forma en que el texto se ajusta dentro de él. Por lo tanto, reposicionar el div interno (cambiando la altura de la "tubería") solo una vez no será suficiente. Ese cambio tiene que ocurrir dentro de un bucle, por lo que puede verificar continuamente si ya ha logrado el posicionamiento correcto y reajustarlo si es necesario.
El CSS de la respuesta anterior sigue siendo perfectamente válido:
Sin embargo, el Javascript debería verse más así:
fuente
Sé que es un hilo muy antiguo, pero aún así me gustaría responder. Si alguien sigue el siguiente CSS y HTML, entonces funciona. El div de pie de página infantil se pegará con el fondo como pegamento.
fuente
Usar la
margin-top
propiedad css con el propósito de establecer el pie de página en la parte inferior de su contenedor. Y usar latext-align-last
propiedad css para establecer el contenido del pie de página en el centro.fuente
Oh, jóvenes ... Aquí están:
¡Ninguna posición absoluta! ¡Sensible! Vieja escuela
fuente
Pregunta bastante antigua, pero aún así ... Puede flotar un div en la parte inferior de la página de esta manera:
Puedes ver dónde sucede la magia. Creo que podría hacer lo mismo para flotarlo al fondo de un div padre.
fuente
simple ...... en el archivo html a la derecha ... tiene el "pie de página" (o el div que desea en la parte inferior) en la parte inferior. Así que no hagas esto:
HAGA ESTO: (tenga el pie de página debajo).
Después de hacer esto, puede ir al archivo css y hacer que la "barra lateral" flote a la izquierda. luego haga que el "contenido" flote a la derecha y luego el "pie de página" borre ambos.
eso debería funcionar para mí.
fuente
Obtuve esto para trabajar en el primer intento agregando
position:absolute; bottom:0;
a la ID div dentro del CSS. No agregué el estilo principalposition:relative;
.Funciona perfectamente tanto en Firefox como en IE 8, aún no lo he probado en IE 7.
fuente
Una respuesta alternativa es el uso juicioso de tablas y filas. configurando todas las celdas de la tabla en la línea anterior (excepto la de contenido principal) para que sean rowpan = "2" siempre obtendrá un agujero de celda en la parte inferior de la celda de la tabla principal que siempre puede poner valign = "bottom".
También puede establecer su altura como el mínimo que necesita para una línea. Por lo tanto, siempre obtendrá su línea de texto favorita en la parte inferior, independientemente de cuánto espacio ocupe el resto del texto.
Intenté todas las respuestas div, no pude hacer que hicieran lo que necesitaba.
fuente
Aquí está mi solución:
fuente
Puede intentar usar un elemento vacío con un ancho de 1px y flotarlo. Luego, borre el elemento que realmente desea colocar y use la altura del elemento vacío para controlar qué tan lejos va.
http://codepen.io/cssgrid/pen/KNYrey/
fuente