Classe de alinhamento de texto para dentro de uma tabela

724

Existe um conjunto de classes na estrutura de Bootstrap do Twitter que alinha o texto?

Por exemplo, tenho algumas tabelas com $totais que quero alinhados à direita ...

<th class="align-right">Total</th>

e

<td class="align-right">$1,000,000.00</td>
Mediabeastnz
fonte

Respostas:

1412

Bootstrap 3

v3 Documentos de alinhamento de texto

<p class="text-left">Left aligned text.</p>
<p class="text-center">Center aligned text.</p>
<p class="text-right">Right aligned text.</p>
<p class="text-justify">Justified text.</p>
<p class="text-nowrap">No wrap text.</p>

Exemplo de alinhamento de texto do Bootstrap 3

Bootstrap 4

Documentos de alinhamento de texto v4

<p class="text-xs-left">Left aligned text on all viewport sizes.</p>
<p class="text-xs-center">Center aligned text on all viewport sizes.</p>
<p class="text-xs-right">Right aligned text on all viewport sizes.</p>

<p class="text-sm-left">Left aligned text on viewports sized SM (small) or wider.</p>
<p class="text-md-left">Left aligned text on viewports sized MD (medium) or wider.</p>
<p class="text-lg-left">Left aligned text on viewports sized LG (large) or wider.</p>
<p class="text-xl-left">Left aligned text on viewports sized XL (extra-large) or wider.</p>

Exemplo de alinhamento de texto do Bootstrap 4

Michael J. Calkins
fonte
29
Infelizmente, isso não funciona para as células da tabela. Pode ser simplesmente um problema de pedido CSS. Veja esta edição [ github.com/twitter/bootstrap/issues/6837] . Deve ser corrigido na versão 3.0.
David
26
Atm eu faço <td> <div class = 'text-center'> inicializando </div> </td> para contornar isso.
22713 Michael J. Calkins
3
Eu gostaria que o bootstrap usasse os pontos de interrupção com esta classe como: text-right-md para alinhar o texto à direita apenas para médias.
Eric Bishard
2
<p class = "text-left"> Texto alinhado à esquerda. </p> <p class = "text-center"> Texto alinhado ao centro. </p> <p class = "text-right"> Texto alinhado à direita. </p> <p class = "text-justify"> Texto justificado. </p> <p class = "text-nowrap"> Nenhum texto de quebra automática. </p>
user5026837
1
É estranho que eu tentei usar text-md-right (e xs & lg), mas eles não funcionariam. Eu estava no Codepen para que possa ter algo a ver com isso. De qualquer forma, essa resposta funcionou para mim. Obrigado!
Edson
76

O uso do Bootstrap 3.x text-rightfunciona perfeitamente:

<td class="text-right">
  text aligned
</td>
Paolo Casciello
fonte
Você também pode aplicar isso a toda a linha: <tr class = "text-right"> <td> texto alinhado </td> </tr>
Glade Mellor
46

Não, o Bootstrap não tem uma classe para isso, mas esse tipo de classe é considerado uma classe "utilitária", semelhante à classe ".pull-right" mencionada pelo @anton.

Se você olhar para utilities.less, verá muito poucas classes de utilitários no Bootstrap, o motivo é que esse tipo de classe geralmente é desaprovado e recomenda-se que seja usado para: a) prototipagem e desenvolvimento - para que você possa construir rapidamente expanda suas páginas e remova as classes pull-right e pull-left em favor da aplicação de flutuadores para mais classes semânticas ou para os próprios elementos, ou b) quando for claramente mais prático do que uma solução mais semântica.

No seu caso, pela sua pergunta, parece que você deseja alinhar certo texto à direita da sua tabela, mas não todo. Semanticamente, seria melhor fazer algo do tipo (vou criar algumas classes aqui, exceto a classe de inicialização padrão, .table):

  <table class="table price-table">
    <thead>
      <th class="price-label">Total</th>
    </thead>
    <tbody>
      <tr>
        <td class="price-value">$1,000,000.00</td>
      </tr>
    </tbody>
  </table>

E basta aplicar o text-align: leftoutext-align: right declarações às classes de valor e etiqueta de preço (ou quaisquer classes que funcionem para você).

O problema de se aplicar align-rightcomo classe é que, se você quiser refatorar suas tabelas, precisará refazer a marcação e os estilos. Se você usar classes semânticas, poderá refatorar apenas o conteúdo CSS. Além disso, se você estiver aplicando um tempo para aplicar uma classe a um elemento, é recomendável tentar atribuir valor semântico a essa classe para facilitar a navegação da marcação para outros programadores (ou você três meses depois).

Uma maneira de pensar sobre isso é: quando você coloca a pergunta "Para que serve isso?", Você não receberá esclarecimentos com a resposta "alinhar à direita".

jonschlinkert
fonte
1
e, a propósito, tenho certeza de que você pode se sair melhor com os nomes das classes do que o que eu escolhi. mas isso não foi a ênfase
jonschlinkert
3
Eles não o fizeram na época, e a IMO ainda não deveria.
Jschlinkert #
34

Bootstrap 2.3 tem classes de utilitários text-left, text-righte text-center, mas eles não funcionam em células da tabela. Até o lançamento do Bootstrap 3.0 (onde eles corrigiram o problema) e eu posso fazer a troca, adicionei isso ao CSS do meu site que é carregado após bootstrap.css:

.text-right {
    text-align: right !important;
}

.text-center {
    text-align: center !important;
}

.text-left {
    text-align: left !important;
}
David
fonte
26

Basta adicionar uma folha de estilo "personalizada" que é carregada após a folha de estilo do Bootstrap. Portanto, as definições de classe estão sobrecarregadas.

Nesta folha de estilo, declare o alinhamento da seguinte maneira:

.table .text-right {text-align: right}
.table .text-left {text-align: left}
.table .text-center {text-align: center}

Agora você pode usar as convenções de alinhamento "comuns" para os elementos td e th.

Michael
fonte
23

Eu acho que porque CSS já tem text-align:right , AFAIK, o Bootstrap não tem uma classe especial para ele.

O Bootstrap tem "pull-right" para divs flutuantes, etc. para a direita.

O Bootstrap 2.3 acabou de sair e adicionou estilos de alinhamento de texto:

Lançamento do Bootstrap 2.3 (07-02-2013)

Anton
fonte
1
Sim, eu não queria usar estilos embutidos em cada elemento. Eu sei sobre pull-right, mas não queria que os elementos flutuassem. Eu poderia simplesmente adicionar uma classe se não houver nenhum :)
Mediabeastnz
15

O Bootstrap 4 está chegando ! As classes de utilitário familiarizadas no Bootstrap 3.xagora estão ativadas para o ponto de interrupção. Os pontos de interrupção padrão são: xs, sm, md, lge xl, por isso, essas classes de alinhamento de texto algo parecido .text-[breakpoint]-[alignnment].

<div class="text-sm-left"></div> //or
<div class="text-md-center"></div> //or
<div class="text-xl-right"></div>

Importante: Ao escrever isso, o Bootstrap 4 está apenas no Alpha 2. Essas classes e como elas são usadas estão sujeitas a alterações sem aviso prévio.

dKen
fonte
Isso me pegou de surpresa ao ler os documentos do Bootstrap 3 em uma instalação do Bootstrap 4. Obrigado pela lembrança!
Ben Simpson
12

Alinhamento de texto de inicialização na v3.3.5:

 <p class="text-left">Left</p>
 <p class="text-center">Center</p>
 <p class="text-right">Right</p>

Exemplo de CodePen

Gothburz
fonte
11

As seguintes linhas de código estão funcionando corretamente. Você pode atribuir as classes como centro do texto, esquerda ou direita. O texto será alinhado de acordo.

<p class="text-center">Day 1</p> 
<p class="text-left">Day 2</p> 
<p class="text-right">Day 3</p>

Aqui não há necessidade de criar nenhuma classe externa. Estas são as classes Bootstrap e têm sua própria propriedade.

Vanshaj Rai
fonte
10

Você pode usar este CSS abaixo:

.text-right {text-align: right} /* For right align */
.text-left {text-align: left} /* For left align */
.text-center {text-align: center} /* For center align */
kushal kant
fonte
8

A .text-alignclasse é totalmente válida e mais útil do que ter um .price-labele.price-value que não tem mais utilidade.

Eu recomendo ir 100% com uma classe de utilitário personalizada chamada

.text-right {
  text-align: right;
}

Eu gosto de fazer mágica, mas isso depende de você, como algo:

span.pull-right {
  float: none;
  text-align: right;
}
Bart Calixto
fonte
1
Sim, toda classe é totalmente "válida", mas não é semântica. Você deve usar classes de utilitário com moderação no código de produção, elas são destinadas ao "bootstrapping".
Jschlinkert #
3
Porque o w3 diz que essa é a maneira correta de usar clases não significa que seja a melhor. jQuery UI e Bootstrap não existiriam se não fosse por causa de classes 'não-semânticas'. As pessoas tendem a usar significado semântico para classes até perceberem que ir para o genérico é muito melhor em todos os aspectos. É díficil para obtê-lo em primeira ou pensar que IT'S realmente bom, eu andei nessa estrada ...
Bart Calixto
1
A interface do usuário do jQuery é um mau exemplo, porque é uma biblioteca javascript que também inclui CSS, e o Bootstrap, como apontei, usa classes de utilitário como UTILITIES. Você já pensou por que o Bootstrap é chamado de Bootstrap ? Para que você possa usar essas classes para desenvolvimento e alterá-las em seu código de produção. E eu não disse para não usá-los, eu uso pull-left, pull-right bastante. E eu também uso o centro de texto algumas vezes. Mas eu os uso com moderação e, como primeiro curso de ação, não recomendo que outros os usem sobre opções melhores e mais semânticas.
Jschlinkert
1
UI jQuery foi apenas um exemplo. A abordagem de que estou falando é o que faz as bibliotecas funcionarem. Podemos ver kendo, blueprint, grid, 960, Chico UI e até o próprio Bootstrap fazer isso. É a única maneira que essas bibliotecas podem existir / funcionar. Você pode dar uma olhada nas principais empresas como elas usam CSS como Apple ( images.apple.com/v/imac/a/styles/imac.css ) e ficará impressionado. Isso é responsável pela produtividade e um grande problema. Deve ser honesto, fiquei surpreso por não encontrar nenhum tutorial explicando isso. Eu acho que o termo bootstrap é porque é algo que você precisa começar, não mudar mais tarde.
Bart Calixto
7

Aqui está uma resposta curta e agradável com um exemplo.

table{
    width: 100%;
}
table td, table th {
    border: 1px solid #000;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet"/>
<body>
  <table>
    <tr>
      <th class="text-left">Text align left.</th>
      <th class="text-center">Text align center.</th>
      <th class="text-right">Text align right.</th>
    </tr>
    <tr>
      <td class="text-left">Text align left.</td>
      <td class="text-center">Text align center.</td>
      <td class="text-right">Text align right.</td>
    </tr>
  </table>
</body>

Hitesh
fonte
São as tags HTML linke scriptválida fora do headou bodytags? Por que não fornecer um exemplo completo e válido de documento HTML?
Peter Mortensen
6

Expandindo a resposta de David , apenas adicionei uma classe simples para aumentar o Bootstrap assim:

.money, .number {
    text-align: right !important;
}
anopres
fonte
5

Agora, com o lançamento do Bootstrap 3, você pode usar as classes de text-centerpara alinhamento central, text-left para alinhamento esquerdo, text-rightpara alinhamento direito e text-justifypara um alinhamento justificado.

O Bootstrap é uma estrutura de frontend muito simples de se trabalhar, depois que você a utiliza. Além de ser muito fácil de personalizar para se adequar ao seu gosto.

Jordan D. Angus
fonte
3

Temos cinco classes para isso, que você pode consultar aqui: http://v4-alpha.getbootstrap.com/components/utilities/

<div class="text-left">Left aligned text.</div>
<div class="text-center">Center aligned text.</div>
<div class="text-right">Right aligned text.</div>
<div class="text-justify">Justified text.</div>
<div class="text-nowrap">No wrap text.</div>

Ganesh Putta
fonte
3

Aqui está a solução mais simples

Você pode atribuir as classes como centro de texto, esquerda ou direita. O texto será alinhado de acordo com essas classes. Você não precisa fazer aulas separadamente. Essas classes são incorporadas no BootStrap 3

    <h1 class="text-center"> Heading 1 </h1> 
    <h1 class="text-left"> Heading 2 </h1> 
    <h1 class="text-right"> Heading 3 </h1>

Confira aqui: Demo

wali
fonte
1
<p class="text-sm-left">Left aligned text on viewports sized SM (small) or wider.</p>
Texto alinhado à esquerda em viewports com tamanho MD (médio) ou maior.

Texto alinhado à esquerda em viewports de tamanho LG (grande) ou maior.

Texto alinhado à esquerda em viewports de tamanho XL (extra grande) ou maior.

Ch UmarJamil
fonte
1

No Bootstrap versão 4. Existem algumas classes embutidas para posicionar o texto.

Para o cabeçalho da tabela de centralização e o texto dos dados:

 <table>
    <tr>
      <th class="text-center">Text align center.</th>
    </tr>
    <tr>
      <td class="text-center">Text align center.</td>
    </tr>
  </table>

Você também pode usar essas classes para posicionar qualquer texto.

<p class="text-left">Left aligned text on all viewport sizes.</p>
<p class="text-center">Center aligned text on all viewport sizes.</p>
<p class="text-right">Right aligned text on all viewport sizes.</p>

<p class="text-sm-left">Left aligned text on viewports sized SM (small) or wider.</p>
<p class="text-md-left">Left aligned text on viewports sized MD (medium) or wider.</p>
<p class="text-lg-left">Left aligned text on viewports sized LG (large) or wider.</p>
<p class="text-xl-left">Left aligned text on viewports sized XL (extra-large) or wider</p>

Para mais detalhes

Espero que ajude você.

Majedur Rahaman
fonte
0

Nesta classe inválida de inicialização de três classes

 .text-right {
     text-align: right; }

 .text-center {
     text-align: center; }

 .text-left {
    text-align: left; }
Ashu Designer
fonte
5
Já existem várias respostas de alta qualidade para essa pergunta, a maioria publicada há três anos quando a pergunta foi feita. Embora possa ser um exercício interessante tentar responder a perguntas simples como esta para aprimorar suas habilidades de programação, postar essa resposta em seu estado atual não adiciona nada à pergunta. Se houver algo novo em sua resposta, faça algumas frases para explicar como é diferente e por que isso a torna melhor.
MTCoster
O que você quer dizer com "Nesta classe inválida do Bootstrap de três classes" ? Você pode elaborar? Em particular, para "classe inválida" .
Peter Mortensen
0

Use text-align:center !important. Pode haver outras text-alignregras de CSS, então isso !importanté importante.

table,
th,
td {
  color: black !important;
  border-collapse: collapse;
  background-color: yellow !important;
  border: 1px solid black;
  padding: 10px;
  text-align: center !important;
}
<table>
  <tr>
    <th>
      Center aligned text
    </th>
  </tr>
  <tr>
    <td>Center aligned text</td>
    <td>Center aligned text</td>
  </tr>
</table>

Justin Liu
fonte