O corpo do meu documento html consiste em 3 elementos, um botão, um formulário e uma tela. Quero que o botão e o formulário estejam alinhados à direita e a tela fique alinhada à esquerda. O problema é quando tento alinhar os dois primeiros elementos, eles não se seguem e ficam próximos um do outro na horizontal ?, aqui está o código que tenho até agora, quero que o formulário siga diretamente após o botão à direita sem espaço no meio.
#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;
mas isso não funcionou, o que me surpreendeu porque o elemento que estou tentando alinhar à direita é relativo.os flutuadores estão ok, mas problemáticos com ie6 e 7.
eu preferiria usar
margin-left:auto; margin-right:0;
na div interna.fonte
0
é válido, no entanto, também é 0px ... discuta seu ponto, então aprendemos algo.display: block;
Respostas antigas. Uma atualização: use flexbox, funciona praticamente em todos os navegadores agora.
E você pode ficar ainda mais sofisticado, simplesmente:
E mais extravagante:
fonte
Outras respostas para esta pergunta não são tão boas, pois
float:right
podem sair de uma div pai (estouro: oculto para pai às vezes pode ajudar) e,margin-left: auto, margin-right: 0
para mim, não funcionou em divs aninhadas complexas (não investiguei o porquê).Eu descobri que, para certos elementos
text-align: right
, funciona, assumindo que isso funcione quando o elemento e o pai forem ambosinline
ouinline-block
.Nota: a
text-align
propriedade CSS descreve como o conteúdo embutido, como texto, é alinhado em seu elemento de bloco pai.text-align
não controla o alinhamento dos próprios elementos do bloco, apenas seu conteúdo embutido.Um exemplo:
Aqui está um JS Fiddle .
fonte
Você quer dizer assim? http://jsfiddle.net/6PyrK/1
Você pode adicionar os atributos de
float:right
eclear:both;
ao formulário e botãofonte
Se você tem várias divs que deseja alinhar lado a lado na extremidade direita da div principal, defina
text-align: right;
a div principal.fonte
Você pode usar
flexbox
comflex-grow
para empurrar o último elemento para a direita.fonte
Se você não precisa oferecer suporte ao IE9 e abaixo, pode usar o flexbox para resolver isso: codepen
Há também alguns bugs no IE10 e 11 ( suporte à flexbox ), mas eles não estão presentes neste exemplo
É possível alinhar verticalmente a
<button>
ea<form>
enrolando-os em um recipiente comflex-direction: column
. A ordem de origem dos elementos será a ordem em que eles são exibidos de cima para baixo, então eu os reordenei.Em seguida, você pode alinhar horizontalmente o contêiner de formulários e botões com a tela, envolvendo-os em um contêiner
flex-direction: row
. Novamente, a ordem de origem dos elementos será a ordem em que eles são exibidos da esquerda para a direita, então eu os reordenei.Além disso, isso exigiria a remoção de todas
position
efloat
regras de estilo do código vinculado na pergunta.Aqui está uma versão reduzida do HTML no código de código acima.
E aqui está o CSS relevante
fonte
Resposta simples está aqui:
fonte
Você pode simplesmente usar o preenchimento à esquerda: 60% (por exemplo) para alinhar seu conteúdo à direita e envolver simultaneamente o conteúdo em um contêiner responsivo (exigi a barra de navegação no meu caso) para garantir que funcione em todos os exemplos.
fonte
Se você estiver usando o bootstrap, então:
fonte
<div class="text-right"></div>
.Eu sei que este é um post antigo, mas você não pode usar apenas
<div id=xyz align="right">
para a direita.Você pode simplesmente substituir a direita por esquerda, centro e justificar.
Trabalhei no meu site :)
fonte
align
atributo agora está obsoleto .