Tengo un diseño fluido usando el bootstrap de Twitter, en el que tengo una fila con dos columnas. La primera columna tiene mucho contenido, que quiero llenar normalmente. La segunda columna solo tiene un botón y algo de texto, que quiero alinear en relación con la celda de la primera columna.
Esto es lo que tengo:
-row-fluid-------------------------------------
+-span6----------+ +-span6----------+
| | |short content |
| content | +----------------+
| that |
| is tall |
| |
+----------------+
-----------------------------------------------
Esto es lo que quiero:
-row-fluid-------------------------------------
+-span6----------+
| |
| content |
| that |
| is tall | +-span6----------+
| | |short content |
+----------------+ +----------------+
-----------------------------------------------
He visto soluciones que hacen que el primer tramo tenga una altura absoluta, y coloque el segundo tramo en relación con él, pero sería preferible una solución donde no tuviera que especificar la altura absoluta de mis divisiones. También estoy abierto a un replanteamiento completo de cómo lograr el mismo efecto. No estoy casado con este uso de los andamios, simplemente parecía tener más sentido para mí.
Este diseño como violín:
fuente
Respuestas:
Tenga en cuenta que: para los usuarios de Bootstrap 4+, considere la solución de Christophe (Bootstrap 4 introdujo flexbox, que proporciona una solución de CSS más elegante). Lo siguiente funcionará para versiones anteriores de Bootstrap ...
Ver http://jsfiddle.net/jhfrench/bAHfj/ para una solución de trabajo.
En el lado positivo:
pull-down
.Ahora las malas noticias:
fuente
.pull-left
y.pull-right
), sin afectar a los hermanos. ¿Se puede hacer eso con una solución solo CSS?Esta es una solución actualizada para Bootstrap 3 (aunque debería funcionar para versiones anteriores) que usa solo CSS / LESS:
http://jsfiddle.net/silb3r/0srp42pb/11/
Establece el tamaño de fuente en 0 en la fila (de lo contrario, terminará con un espacio molesto entre columnas), luego elimina los flotadores de columna, establece la visualización en
inline-block
, restablece su tamaño de fuente y luegovertical-align
se puede configurar en Cualquier cosa que necesites.No se requiere jQuery.
fuente
div
s envertical-align: middle;
..myrow
) ... ¿no significa esto que no puede tener una columna alineada en la parte superior, una columna en la parte inferior y una tercera columna en la parte superior?Puedes usar flex:
fuente
Necesitas agregar un estilo para
span6
, smthg así:y este es tu violín: http://jsfiddle.net/sgB3T/
fuente
padding-left: 0
y activapadding-right: 0
todos los cols en esa fila.Aquí también hay una directiva angularjs para implementar esta funcionalidad
fuente
Simplemente configure el padre
display:flex;
y el hijo amargin-top:auto
. Esto colocará el contenido secundario en la parte inferior del elemento primario, suponiendo que el elemento primario tenga una altura mayor que el elemento secundario.No es necesario intentar calcular un valor para
margin-top
cuando tiene una altura en su elemento primario u otro elemento mayor que su elemento secundario de interés dentro de su elemento primario.fuente
Basado en las otras respuestas aquí hay una versión aún más receptiva. Realicé cambios en la versión de Ivan para admitir ventanas gráficas de <768 píxeles de ancho y para admitir mejor el cambio de tamaño de la ventana lenta.
fuente
margin-top
en 0, luego configurarlo nuevamente al nuevo valor? Además, ¿por qué estas cosas en doseach()
"bucles"?Esto se basa en la solución de cfx, pero en lugar de establecer el tamaño de fuente en cero en el contenedor principal para eliminar los espacios entre columnas agregados debido a la pantalla: bloque en línea y tener que restablecerlos, simplemente agregué
a la columna divs para compensar.
fuente
Bueno, no me gustaba ninguna de esas respuestas, mi solución del mismo problema era que añadir lo siguiente:
<div> </div>
. Entonces, en su esquema se vería así (más o menos), en mi caso no fueron necesarios cambios de estilo:fuente
agregar si la longitud de la celda izquierda es desconocida?fuente