Isso não funcionará, pois a text-alignpropriedade se aplica ao bloco de contêineres, não aos elementos embutidos e imgé um elemento embutido. Veja a especificação W3C .
Eu tentei esse método e funciona! mas quando tentei 2 imagens, não funcionou, apenas se empilhamento como um totem, alguma idéia de como alinhar 2 imagens na mesma linha no meio?
PatrickGamboa 28/02
1
Como isso não é suportado pelo W3C? Você pode fornecer links para apoiar essa reivindicação?
Madara's Ghost
1
@SecondRikudo: text-aligné para centralizar o texto, como o nome indica. Para elementos de bloco, margin: 0 auto;é a abordagem recomendada .
precisa saber é o seguinte
4
@Mchchief As imagens são elementos embutidos, não blocos. text-alignfunciona tão bem neles.
Ghost de Madara
4
Essa explicação é meio estranha, não é? Você diz que 'alinhamento de texto' se aplica a blocos e não linhas, o que acredito, então você literalmente o altera para um elemento de bloco, mas evita o uso de alinhamento de texto. Quero dizer, seu código funciona, mas esse parágrafo precisa ser completamente reformulado.
Eu discordo, acho que isso responde à pergunta. O OP perguntou se a propriedade text-align: centeré ou não uma boa maneira de centralizar uma imagem e não especificou que a propriedade deveria fazer parte da tag img. Esta resposta usa a propriedade em questão em um esforço para fornecer uma solução (que funciona).
21313 MandM
2
Isso funcionou para mim quando exibir: bloco, etc. não.
infelizmente, <center>não é suportado no html5, mas, droga, funciona.
Ayrat
13
Na verdade, o único problema com o seu código é que o text-alignatributo se aplica ao texto (sim, as imagens contam como texto) dentro da tag. Você gostaria de colocar uma spanmarca em torno da imagem e definir seu estilo para text-align: center:
A imagem será centralizada. Em resposta à sua pergunta, é a maneira mais fácil e infalível de centralizar imagens, desde que você lembre de aplicar a regra ao conteúdo span(ou div) da imagem.
Um spanelemento é display: inline;, por padrão, de modo que isto corre para o mesmo problema como a colocação text-align: center;sobre o imgmesmo. Você deve configurá span- display: block;lo ou substituí-lo por um divpara que isso funcione.
Web_Designer 22/05
10
Existem três métodos para centralizar um elemento que posso sugerir:
O primeiro e o segundo métodos funcionam apenas se o pai for pelo menos tão largo quanto a imagem. Quando a imagem é mais larga que o pai, a imagem não fica centralizada !!!
Mas: o terceiro método é um bom caminho para isso!
<p>Hello the following image is centered</p><pclass="pic"><imgsrc="https://twimg0-a.akamaihd.net/profile_images/440228301/StackoverflowLogo_reasonably_small.png"/></p><p>Did it work?</p>
CSS:
p.pic {
width:48px;
margin:0auto;}
O único problema aqui é que a largura do parágrafo deve ser igual à largura da imagem . Se você não colocar uma largura no parágrafo, ele não funcionará, porque assumirá 100% e sua imagem será alinhada à esquerda, a menos que você use text-align:center.
caçador de sonhos, se você está propondo uma maneira alternativa de centralizar uma imagem usando o css, precisará expandir um pouco a sua pergunta. Você pode explicar como e por que essa alternativa proposta seria uma maneira melhor de atingir o objetivo do questionador, talvez incluindo um link para a documentação relevante. Isso tornaria mais útil para eles e também para outros leitores de sites que estão procurando soluções para problemas semelhantes.
precisa saber é o seguinte
6
Se você estiver usando uma classe com uma imagem, o seguinte fará
class{
display: block;
margin:0auto;}
Se for apenas uma imagem em uma classe específica que você deseja centralizar o alinhamento, o seguinte será feito:
O que no conteúdo justificado pode usar para definir o alinhamento em <p> ??
Manjitha teshara
Era isso que eu queria. Obrigado.
Dionne Kim
5
A solução mais simples que encontrei foi adicionar isso ao meu elemento img:
style="display:block;margin:auto;"
Parece que não preciso adicionar "0" antes do "auto", conforme sugerido por outras pessoas. Talvez essa seja a maneira correta, mas funciona bem o suficiente para meus propósitos sem o "0" também. Pelo menos no Firefox, Chrome e Edge mais recentes .
única auto média auto auto auto autoe 0 automeio 0 auto 0 auto... e por auto padrão para margem inferior e superior é 0assim que adicionar 0 ou não é exatamente a mesma, neste caso, que fazem você responder a um enésimo duplicado das já forneceu
temanitas Afif
Seu comentário explica por que funciona. Ótimo. Mas qual das respostas anteriores disse que 'auto' sem '0' funciona também? Não vale a pena mencionar esse fato?
Panu Logic
nesse caso, deve ser um comentário, porque nesse caso em particular os dois são iguais. Eu não acho que devemos ter uma resposta para todos os valores equivalentes, neste caso, podemos escrever: auto, auto auto, auto auto auto, auto auto auto auto, 0 auto 0, 0 auto, 0 auto 0 auto, e assim por diante ... você acha que cada um merece uma resposta diferente? Acho que não.
Temani Afif 13/11/19
Eu não diria que se dois segmentos diferentes de CSS produzem o mesmo resultado final, esses dois segmentos de CSS "são iguais". Sua saída é a mesma, mas seu código-fonte não é o mesmo. Assim como em geral, você pode escrever qualquer número de programas diferentes que produzam a mesma saída. É importante saber (e dizer às pessoas que perguntam) quais desses programas "equivalentes" parecem os mais simples e os mais curtos de escrever.
Panu Logic
e tudo isso deve ser escrito em uma resposta. É por isso que essa resposta é mais adequada como comentário do que uma resposta totalmente nova. Deveríamos apresentar todas as coisas equivalentes e não torná-las uma característica separada, que pode parecer completamente diferente porque não é o caso [minha opinião, não há necessidade de concordar com isso ou argumentar o contrário]. E não estou falando de programas diferentes que produzem a mesma saída, é uma coisa completamente diferente, pois a lógica pode não ser a mesma. Aqui nós estamos falando sobre a mesma propriedade e o mesmo valor (como i++são as mesmas i+=1)
Você pode usar text-align: centero pai e alterar imgpara display: inline-block→, portanto, ele se comporta como um elemento de texto e será centralizado se o pai tiver uma largura!
Para centralizar uma imagem não em segundo plano depende se você deseja exibir a imagem como um elemento embutido (comportamento padrão) ou um bloco.
Caso em linha
Se você deseja manter o comportamento padrão da propriedade CSS de exibição da imagem, será necessário agrupar sua imagem dentro de outro elemento de bloco no qual você deve definir text-align: center;
Caso de bloqueio
Se você deseja considerar a imagem como um elemento de bloco próprio, a text-alignpropriedade não faz sentido, e você deve fazer isso:
A propriedade alinhar texto: center; uma boa maneira de centralizar uma imagem usando CSS?
Sim e não.
Sim, se a imagem for o único elemento dentro de seu invólucro.
Não, caso você tenha outros elementos dentro do invólucro da imagem, porque todos os elementos filhos que são irmãos da imagem herdarão a text-alignpropriedade: e pode ser que você não goste desse efeito colateral.
img {
width:60%;/* Or required size of image. */
margin-left:20%/* Or scale it to move image. */
margin-right:20%/* It doesn't matters much if using left and width */}
você quis dizer margin: 0 auto;? A tecla está configurando margin-lefte margin-rightpara auto. margin: 0 auto;é apenas um atalho para isso.
Web_Designer
1
@Web_Designer Tentei margin: 0 auto, margin: 0e margin: auto, nenhum funcionou. Note que no inspector do Chrome, quando se usa margin: 0 auto, é ataca a propriedade com um ponto de exclamação dizendo invalid property value(ou seja lá o que significa que)
OverCoder
Eu acho que você quis dizer "posição: absoluta"; em vez de "display: absolute;"
WebDevDaniel 26/09/16
Obrigado @WebDevDaniel por apontar o erro de digitação. Ah, a propósito, você pode querer usar o relativeposicionamento em vez de absolute, ambos funcionam muito bem.
precisa saber é o seguinte
0
Descobri que, se eu tenho uma imagem e algum texto dentro de a div, posso usá-lo text-align:centerpara alinhar o texto e a imagem de uma só vez.
HTML:
<divclass="picture-group"><h2class="picture-title">Picture #1</h2><imgsrc="http://lorempixel.com/99/100/"alt=""class="picture-img"/><pclass="picture-caption">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Temporibus sapiente fuga, quia?</p></div>
Às vezes, adicionamos diretamente o conteúdo e as imagens no administrador do WordPress dentro das páginas. Quando inserimos as imagens dentro do conteúdo e queremos alinhar esse centro. O código é exibido como:
Respostas:
Isso não funcionará, pois a
text-align
propriedade se aplica ao bloco de contêineres, não aos elementos embutidos eimg
é um elemento embutido. Veja a especificação W3C .Use isto:
fonte
text-align
é para centralizar o texto, como o nome indica. Para elementos de bloco,margin: 0 auto;
é a abordagem recomendada .text-align
funciona tão bem neles.Isso nem sempre funciona ... se não, tente:
fonte
Me deparei com este post , e funcionou para mim:
(Alinhamento vertical e horizontal)
fonte
Outra maneira de fazer isso seria centralizar um parágrafo anexo:
fonte
text-align: center
é ou não uma boa maneira de centralizar uma imagem e não especificou que a propriedade deveria fazer parte da tag img. Esta resposta usa a propriedade em questão em um esforço para fornecer uma solução (que funciona).Você pode fazer:
<center><img src="..." /></center>
fonte
<center>
não é suportado no html5, mas, droga, funciona.Na verdade, o único problema com o seu código é que o
text-align
atributo se aplica ao texto (sim, as imagens contam como texto) dentro da tag. Você gostaria de colocar umaspan
marca em torno da imagem e definir seu estilo paratext-align: center
:A imagem será centralizada. Em resposta à sua pergunta, é a maneira mais fácil e infalível de centralizar imagens, desde que você lembre de aplicar a regra ao conteúdo
span
(oudiv
) da imagem.fonte
span
elemento édisplay: inline;
, por padrão, de modo que isto corre para o mesmo problema como a colocaçãotext-align: center;
sobre oimg
mesmo. Você deve configuráspan
-display: block;
lo ou substituí-lo por umdiv
para que isso funcione.Existem três métodos para centralizar um elemento que posso sugerir:
Usando a
text-align
propriedadeUsando a
margin
propriedadeUsando a
position
propriedadeO primeiro e o segundo métodos funcionam apenas se o pai for pelo menos tão largo quanto a imagem. Quando a imagem é mais larga que o pai, a imagem não fica centralizada !!!
Mas: o terceiro método é um bom caminho para isso!
Aqui está um exemplo:
fonte
img
dentro de um justificadodiv
em umWebView
com injeção de CSS. Obrigado!Somente se você precisar oferecer suporte a versões antigas do Internet Explorer.
A abordagem moderna é fazer
margin: 0 auto
no seu CSS.Exemplo aqui: http://jsfiddle.net/bKRMY/
HTML:
CSS:
O único problema aqui é que a largura do parágrafo deve ser igual à largura da imagem . Se você não colocar uma largura no parágrafo, ele não funcionará, porque assumirá 100% e sua imagem será alinhada à esquerda, a menos que você use
text-align:center
.Experimente o violino e experimente, se quiser.
fonte
fonte
Se você estiver usando uma classe com uma imagem, o seguinte fará
Se for apenas uma imagem em uma classe específica que você deseja centralizar o alinhamento, o seguinte será feito:
fonte
img.class
ou adicionaria umaimg.class
versão também. Thx por isso.Na imagem que contém o contêiner, você pode usar um Flexbox CSS 3 para centralizar perfeitamente a imagem dentro, vertical e horizontalmente.
Vamos supor que você tenha <div class = "container"> como detentor da imagem:
Então, como CSS, você deve usar:
E isso tornará todo o seu conteúdo dentro desta div perfeitamente centralizado.
fonte
A solução mais simples que encontrei foi adicionar isso ao meu elemento img:
Parece que não preciso adicionar "0" antes do "auto", conforme sugerido por outras pessoas. Talvez essa seja a maneira correta, mas funciona bem o suficiente para meus propósitos sem o "0" também. Pelo menos no Firefox, Chrome e Edge mais recentes .
fonte
auto auto auto auto
e0 auto
meio0 auto 0 auto
... e por auto padrão para margem inferior e superior é0
assim que adicionar 0 ou não é exatamente a mesma, neste caso, que fazem você responder a um enésimo duplicado das já forneceuauto
,auto auto
,auto auto auto
,auto auto auto auto
,0 auto 0
,0 auto
,0 auto 0 auto
, e assim por diante ... você acha que cada um merece uma resposta diferente? Acho que não.i++
são as mesmasi+=1
)Simplesmente mude o alinhamento dos pais :)
Experimente este nas propriedades pai:
fonte
Você pode usar
text-align: center
o pai e alterarimg
paradisplay: inline-block
→, portanto, ele se comporta como um elemento de texto e será centralizado se o pai tiver uma largura!fonte
Eu usaria uma div para alinhar uma imagem no centro. Como em:
fonte
Se você deseja definir a imagem como plano de fundo, eu tenho uma solução:
fonte
Para centralizar uma imagem não em segundo plano depende se você deseja exibir a imagem como um elemento embutido (comportamento padrão) ou um bloco.
Caso em linha
Se você deseja manter o comportamento padrão da propriedade CSS de exibição da imagem, será necessário agrupar sua imagem dentro de outro elemento de bloco no qual você deve definir
text-align: center;
Caso de bloqueio
Se você deseja considerar a imagem como um elemento de bloco próprio, a
text-align
propriedade não faz sentido, e você deve fazer isso:A resposta para sua pergunta:
Sim e não.
text-align
propriedade: e pode ser que você não goste desse efeito colateral.Referências
fonte
Mais uma maneira de escalar - exiba:
fonte
Use isso para o seu
img
CSS:fonte
display: block
commargin: 0
não funcionou para mim, nem quebra com umtext-align: center
elemento.Esta é a minha solução:
translateX
é suportado pela maioria dos navegadoresfonte
margin: 0 auto;
? A tecla está configurandomargin-left
emargin-right
paraauto
.margin: 0 auto;
é apenas um atalho para isso.margin: 0 auto
,margin: 0
emargin: auto
, nenhum funcionou. Note que no inspector do Chrome, quando se usamargin: 0 auto
, é ataca a propriedade com um ponto de exclamação dizendoinvalid property value
(ou seja lá o que significa que)relative
posicionamento em vez deabsolute
, ambos funcionam muito bem.Descobri que, se eu tenho uma imagem e algum texto dentro de a
div
, posso usá-lotext-align:center
para alinhar o texto e a imagem de uma só vez.HTML:
CSS:
CodePen: https://codepen.io/artforlife/pen/MoBzrL?editors=1100
fonte
Às vezes, adicionamos diretamente o conteúdo e as imagens no administrador do WordPress dentro das páginas. Quando inserimos as imagens dentro do conteúdo e queremos alinhar esse centro. O código é exibido como:
Nesse caso, você pode adicionar conteúdo CSS como este:
fonte
Usar:
Eu acho que esse é o caminho para centralizar uma imagem no framework Laravel.
fonte
isso fará com que o centro da imagem seja vertical e horizontalmente
fonte