posicionar horizontalmente divs div derecha contenido centrar boton bootstrap alinear css html5

horizontalmente - posicionar div css



¿Cómo alinear los elementos div? (8)

El cuerpo de mi documento html consta de 3 elementos, un botón, una forma y un lienzo. Quiero que el botón y la forma estén alineados a la derecha y que el lienzo permanezca alineado a la izquierda. El problema es que cuando trato de alinear los dos primeros elementos, ya no se siguen uno al otro y están uno al lado del otro horizontalmente. He aquí el código que tengo hasta ahora. Quiero que el formulario siga directamente después del botón de la derecha. sin espacio en el medio.

#cTask { background-color: lightgreen; } #button { position: relative; float: right; } #addEventForm { position: relative; float: right; border: 2px solid #003B62; font-family: verdana; background-color: #B5CFE0; padding-left: 10px; }

<!DOCTYPE html> <html lang="en"> <head> <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.js"></script> <script type="text/javascript" src="timeline.js"></script> <link rel="stylesheet" href="master.css" type="text/css" media="screen" /> </head> <body bgcolor="000" TEXT="FFFFFF"> <div id="button"> <button onclick="showForm()" type="button" id="cTask"> Create Task </button> </div> <div id="addEventForm"> <form> <p><label>Customer name: <input></label></p> <p><label>Telephone: <input type=tel></label></p> <p><label>E-mail address: <input type=email></label></p> </form> </div> <div> <canvas id="myBoard" width="1000" height="600"> <p>Your browser doesn''t support canvas.</p> </canvas> </div> </body> </html>


Las carrozas están bien, pero problemáticas con ie6 y 7.

Preferiría usar margin-left:auto; margin-right:0; margin-left:auto; margin-right:0; en el div interior


Otras respuestas para esta pregunta no son tan buenas ya que float:right puede ir fuera de un div padre (desbordamiento: oculto para el padre a veces puede ayudar) y margin-left: auto, margin-right: 0 para mí no funcionó en conjunto Divs anidados (no he investigado por qué).

Me he dado cuenta de que para ciertos elementos text-align: right funciona, asumiendo que esto funciona cuando el elemento y el elemento principal están en inline o en inline-block .

Nota: la propiedad CSS de text-align describe cómo el contenido en línea como el texto se alinea en su elemento de bloque principal. text-align no controla la alineación de los elementos del bloque en sí, solo su contenido en línea.

Un ejemplo:

<div style="display: block; width: 80%; min-width: 400px; background-color: #caa;"> <div style="display: block; width: 100%"> I''m parent </div> <div style="display: inline-block; text-align: right; width: 100%"> Caption for parent </div> </div>

Aquí hay un JS Fiddle .


Puede hacer un div que contenga tanto el formulario como el botón, luego hacer que el div flote a la derecha estableciendo float: right; .



Sé que esta es una publicación antigua, pero no podrías simplemente usar <div id=xyz align="right"> para la derecha.

Simplemente puede reemplazar a la derecha con la izquierda, centro y justificar.

Trabajó en mi sitio :)


Si no tiene que ser compatible con IE9 y más abajo puede usar flexbox para resolver esto: codepen

También hay algunos errores con IE10 y 11 ( compatibilidad con flexbox ), pero no están presentes en este ejemplo

Puede alinear verticalmente el <button> y la <form> envolviéndolos en un contenedor con flex-direction: column . El orden de origen de los elementos será el orden en el que se muestran de arriba a abajo, así que los reordené.

Luego, puede alinear horizontalmente el contenedor de formulario y botón con el lienzo envolviéndolos en un contenedor con flex-direction: row . Nuevamente, el orden de origen de los elementos será el orden en que se muestran de izquierda a derecha, por lo que los reordené.

Además, esto requeriría que elimines todas las reglas de estilo de position y float del código vinculado en la pregunta.

Aquí hay una versión recortada del HTML en el codepen enlazado arriba.

<div id="mainContainer"> <div> <canvas></canvas> </div> <div id="formContainer"> <div id="addEventForm"> <form></form> </div> <div id="button"> <button></button> </div> </div> </div>

Y aquí está el CSS relevante.

#mainContainer { display: flex; flex-direction: row; } #formContainer { display: flex; flex-direction: column; }


Si tiene varios divs que desea alinear uno al lado del otro en el extremo derecho del div principal, configure text-align: right; en el div padre


Viejas respuestas Una actualización: use flexbox, prácticamente funciona en todos los navegadores ahora.

<div style="display: flex; justify-content: flex-end"> <div>I''m on the right</div> </div>

Y puedes ser aún más elegante, simplemente:

<div style="display: flex; justify-content: space-around"> <div>Left</div> <div>Right</div> </div>

Y más elegante:

<div style="display: flex; justify-content: space-around"> <div>Left</div> <div>Middle</div> <div>Right</div> </div>