Como posso alinhar o texto à esquerda e o texto à direita na mesma linha?

102

Como posso alinhar o texto de forma que parte dele fique alinhado à esquerda e parte à direita na mesma linha?

<p>This text should be left-aligned. This text should be right aligned.</p> 

Posso alinhar todo o texto à esquerda (ou à direita), diretamente embutido ou usando uma folha de estilo -

<p style='text-align: left'>This text should be left-aligned. 
    This text should be right aligned.</p>

Como posso alinhar o texto correspondente à esquerda e à direita, mantendo-o na mesma linha?

Sababoni
fonte

Respostas:

164

<p style="text-align:left;">
    This text is left aligned
    <span style="float:right;">
        This text is right aligned
    </span>
</p>

https://jsfiddle.net/gionaf/5z3ec48r/

Giona
fonte
1
text-align:left;deve ser float:left;como <p> <span style = "float: left;"> Texto à esquerda </span> <span style = "float: right;"> Texto à direita </span> </p>
Shylendra Madda
34

HTML:

<span class="right">Right aligned</span><span class="left">Left aligned</span>

css:

.right{
    float:right;
}

.left{
    float:left;
}

Demo:
http://jsfiddle.net/W3Pxv/1

Puyol
fonte
@mawg Embora possa ser, prefiro a resposta principal porque não requer css.
Menasheh
4
Atualmente "no topo" ou "mais votos"? Ambos podem mudar, então você não está ajudando nenhum futuro ceifeiro :-) De qualquer forma, embora eu tenha começado como você, com todos os estilos em linha, logo percebi que existem boas razões para separar conteúdo e apresentação. CSS não é assustador e há muitos tutoriais gratuitos por aí - vá em frente
Mawg diz para restabelecer Monica em
18

Se você não quiser usar elementos flutuantes e quiser ter certeza de que os dois blocos não se sobrepõem, tente:

<p style="text-align: left; width:49%; display: inline-block;">LEFT</p>
<p style="text-align: right; width:50%;  display: inline-block;">RIGHT</p>
Jack Miller
fonte
Esta é a única resposta que permite usar mais do que apenas duas colunas, que era o que eu precisava. É provavelmente um controle mais granular do que o OP se importava.
Kristen Hammack
9

ARQUIVO HTML:

<div class='left'> Left Aligned </div> 
<div class='right'> Right Aligned </div>

ARQUIVO CSS:

.left
{
  float: left;
}

.right
{
  float: right;
}

e você está pronto ....

Osama Yawar Khawaja
fonte
7
<h1> left <span> right </span></h1>

css:

h1{text-align:left; width:400px; text-decoration:underline;}
span{float:right; text-decoration:underline;}
Web Designer cum Promoter
fonte
7

Embora várias das soluções aqui funcionem, nenhuma delas se sobrepõe bem e acaba movendo um item para baixo do outro. Se você está tentando fazer o layout de dados que serão vinculados dinamicamente, você não saberá até o tempo de execução que está ruim.

O que eu gosto de fazer é simplesmente criar uma tabela de linha única e aplicar o float certo na segunda célula. Não há necessidade de aplicar um alinhamento à esquerda no primeiro, isso acontece por padrão. Isso lida com sobreposição perfeitamente por quebra de linha.

HTML

<table style="width: 100%;">
  <tr><td>Left aligned stuff</td>
      <td class="alignRight">Right aligned stuff</td></tr>
</table>

CSS

.alignRight {
  float: right;
}

https://jsfiddle.net/esoyke/7wddxks5/

Eric Soyke
fonte
Isso é quase dourado para mim, mas alguma ideia de por que usar as propriedades da tabela CSS torna as duas células fora de linha horizontalmente? jsfiddle.net/7wddxks5/7 Não consigo contornar isso.
addMitt
1
Na verdade, para mim, como eu quero o texto correto alinhado à direita, isso parece funcionar perfeitamente se eu simplesmente atribuir text-align: right e me livrar do float.
addMitt
Eu também não conseguia descobrir por que isso estava causando a mudança vertical. Mas fui capaz de consertar com o alinhamento vertical. Também coloquei os estilos em classes para limpar um pouco o HTML. jsfiddle.net/o10ogqkd
Eric Soyke
esta é uma solução elegante aqui. Acho que deveria ser a resposta aceita, pois emprega mais criatividade no uso da etiqueta de mesa
Rotimi
3

Adicione extensão em cada ou grupo de palavras que deseja alinhar à esquerda ou à direita. em seguida, adicione id ou classe no intervalo, como:

<h3>
<span id = "makeLeft"> Left Text</span>
<span id = "makeRight"> Right Text</span>
</h3>

CSS-

#makeLeft{
float: left;
}

#makeRight{
float: right;
}
Urvashi Gupta
fonte
2
De acordo com a especificação html, seu exemplo deve usar uma classe e não um ID.
Sergio
0

Se você estiver usando o Bootstrap, tente isto:

<div class="row">
    <div class="col" style="text-align:left">left align</div>
    <div class="col" style="text-align:right">right align</div>
</div>
Adrian Chrostowski
fonte
-1

Se você apenas deseja alterar o alinhamento do texto, basta criar uma classe

.left {
text-align: left;
}

e estender essa classe ao longo do texto

<span class='left'>aligned left</span>
bntrns
fonte
3
Esta é a metade da resposta à questão dos alinhamentos múltiplos por linha.
TimZaman de