El cuerpo de mi documento html consta de 3 elementos, un botón, un formulario y un lienzo. Quiero que el botón y el formulario 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 entre sí y, en cambio, están uno al lado del otro horizontalmente ?, aquí está el código que tengo hasta ahora, quiero que el formulario siga directamente después del botón a 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>
margin-left: auto;
pero no funcionó, lo que me sorprendió porque el elemento que estoy tratando de alinear a la derecha es relativo.Los flotadores están bien, pero son problemáticos con ie6 y 7.
Preferiría usar
margin-left:auto; margin-right:0;
en el div interno.fuente
0
es válido, sin embargo, también lo es 0px ... argumenta tu punto para que aprendamos algo.display: block;
Viejas respuestas. Una actualización: use flexbox, ahora funciona prácticamente en todos los navegadores.
Y puedes ser aún más elegante, simplemente:
Y más elegante:
fuente
Otras respuestas para esta pregunta no son tan buenas ya que
float:right
pueden salir de un div principal (desbordamiento: oculto para el padre a veces puede ayudar) ymargin-left: auto, margin-right: 0
para mí no funcionó en divs anidados complejos (no investigué por qué).He descubierto que para ciertos elementos
text-align: right
funciona, suponiendo que esto funcione cuando el elemento y el padre son ambosinline
oinline-block
.Nota: la
text-align
propiedad CSS describe cómo se alinea el contenido en línea como el texto en su elemento de bloque primario.text-align
no controla la alineación de los elementos del bloque en sí, solo su contenido en línea.Un ejemplo:
Aquí hay un JS Fiddle .
fuente
Quieres decir así? http://jsfiddle.net/6PyrK/1
Puede agregar los atributos de
float:right
yclear:both;
al formulario y al botónfuente
Si tiene varios divs que desea alinear uno al lado del otro en el extremo derecho del div principal, configúrelo
text-align: right;
en el div principal.fuente
Puede usar
flexbox
conflex-grow
para empujar el último elemento hacia la derecha.fuente
Si no tiene que soportar IE9 y más abajo, puede usar flexbox para resolver esto: codepen
También hay algunos errores con IE10 y 11 ( soporte de flexbox ), pero no están presentes en este ejemplo
Puede alinear verticalmente el
<button>
y el<form>
envolviéndolos en un contenedor conflex-direction: column
. El orden de origen de los elementos será el orden en que se muestran de arriba a abajo, así que los reordené.A continuación, puede alinear horizontalmente el contenedor de formularios y botones 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, así que los reordené.Además, esto requeriría que quite todo
position
yfloat
reglas de estilo a partir del código relacionado en la pregunta.Aquí hay una versión recortada del HTML en el codepen vinculado anteriormente.
Y aquí está el CSS relevante
fuente
La respuesta simple está aquí:
fuente
Simplemente puede usar padding-left: 60% (por ej.) Para alinear su contenido a la derecha y envolver simultáneamente el contenido en un contenedor receptivo (en mi caso, necesitaba la barra de navegación) para garantizar que funcione en todos los ejemplos.
fuente
Si está utilizando bootstrap, entonces:
fuente
<div class="text-right"></div>
.Sé que esta es una publicación antigua, pero ¿no podrías usarla?
<div id=xyz align="right">
correctamente?Simplemente puede reemplazar a la derecha con izquierda, centro y justificar.
Trabajó en mi sitio :)
fuente
align
atributo ahora está en desuso .