La proprietà è text-align: center;un buon modo per centrare un'immagine usando i CSS?
img {
text-align: center;
}
La proprietà è text-align: center;un buon modo per centrare un'immagine usando i CSS?
img {
text-align: center;
}
Risposte:
Ciò non funzionerà poiché la text-alignproprietà si applica ai contenitori di blocchi, non agli elementi inline ed imgè un elemento inline. Vedi le specifiche W3C .
Usa questo invece:
img.center {
display: block;
margin: 0 auto;
}
<div style="border: 1px solid black;">
<img class="center" src ="https://cdn.sstatic.net/Sites/stackoverflow/company/img/logos/so/so-icon.png?v=c78bd457575a">
</div>
text-alignserve per centrare il testo, come suggerisce il nome. Per gli elementi a blocchi, margin: 0 auto;è l' approccio raccomandato .
text-alignfunziona altrettanto bene su di loro.
Non funziona sempre ... in caso contrario, prova:
img {
display: block;
margin: 0 auto;
}
Mi sono imbattuto in questo post e ha funzionato per me:
img {
position: absolute;
top: 0;
bottom: 0;
left: 0;
right: 0;
margin: auto;
}
<div style="border: 1px solid black; position:relative; min-height: 200px">
<img src="https://cdn.sstatic.net/Sites/stackoverflow/company/img/logos/so/so-icon.png?v=c78bd457575a">
</div>
(Allineamento verticale e orizzontale)
Un altro modo per farlo sarebbe centrare un paragrafo allegato:
<p style="text-align:center; border:1px solid black"><img src="https://cdn.sstatic.net/Sites/stackoverflow/company/img/logos/so/so-icon.png?v=c78bd457575a"></p>
text-align: centerè un buon modo per centrare un'immagine e non ha specificato che la proprietà doveva far parte del tag img. Questa risposta utilizza la proprietà in questione nel tentativo di fornire una soluzione (che funzioni).
Tu puoi fare:
<center><img src="..." /></center>
<center>non è supportato in HTML5, ma accidenti, funziona.
In realtà, l'unico problema con il tuo codice è che l' text-alignattributo si applica al testo (sì, le immagini contano come testo) all'interno del tag. Dovresti mettere un spantag attorno all'immagine e impostarne lo stile su text-align: center, in questo modo:
span.centerImage {
text-align: center;
}
<span class="centerImage"><img src="http://placehold.it/60/60" /></span>
L'immagine sarà centrata. In risposta alla tua domanda, è il modo più semplice e più sicuro per centrare le immagini, purché ti ricordi di applicare la regola al contenuto span(o div) dell'immagine .
spanelemento è display: inline;di default, quindi questo si presenta nello stesso problema del posizionamento text-align: center;su imgse stesso. È necessario impostare spansu display: block;o sostituirlo con a divaffinché funzioni.
Esistono tre metodi per centrare un elemento che posso suggerire:
Utilizzando la text-alignproprietà
.parent {
text-align: center;
}
<div class="parent">
<img src="https://placehold.it/60/60" />
</div>
Utilizzando la marginproprietà
Utilizzando la positionproprietà
img {
display: block;
position: relative;
left: -50%;
}
.parent {
position: absolute;
left: 50%;
}
<div class="parent">
<img src="https://placehold.it/60/60" />
</div>
Il primo e il secondo metodo funzionano solo se il genitore è largo almeno quanto l'immagine. Quando l'immagine è più larga del suo genitore, l'immagine non rimarrà centrata !!!
Ma: il terzo metodo è un buon modo per farlo!
Ecco un esempio:
img {
display: block;
position: relative;
left: -50%;
}
.parent {
position: absolute;
left: 50%;
}
<div class="parent">
<img src="http://imgsv.imaging.nikon.com/lineup/lens/zoom/normalzoom/af-s_dx_18-140mmf_35-56g_ed_vr/img/sample/img_01.jpg" />
</div>
imgdentro un giustificato divin un WebViewcon iniezione CSS. Grazie!
Solo se è necessario supportare versioni precedenti di Internet Explorer.
L'approccio moderno è quello di fare margin: 0 autonel tuo CSS.
Esempio qui: http://jsfiddle.net/bKRMY/
HTML:
<p>Hello the following image is centered</p>
<p class="pic"><img src="https://twimg0-a.akamaihd.net/profile_images/440228301/StackoverflowLogo_reasonably_small.png"/></p>
<p>Did it work?</p>
CSS:
p.pic {
width: 48px;
margin: 0 auto;
}
L'unico problema qui è che la larghezza del paragrafo deve essere uguale alla larghezza dell'immagine . Se non si inserisce una larghezza nel paragrafo, non funzionerà, poiché assumerà il 100% e l'immagine verrà allineata a sinistra, a meno che ovviamente non si usi text-align:center.
Prova il violino e sperimentalo se vuoi.
img{
display: block;
margin-right: auto;
margin-left: auto;
}
Se stai usando una classe con un'immagine, allora farà quanto segue
class {
display: block;
margin: 0 auto;
}
Se è solo un'immagine in una classe specifica che si desidera allineare al centro, attenersi alla seguente procedura:
class img {
display: block;
margin: 0 auto;
}
img.classo aggiungerei anche una img.classversione. Grazie per questo.
Sull'immagine contenente il contenitore è possibile utilizzare un Flexbox CSS 3 per centrare perfettamente l'immagine all'interno, sia in verticale che in orizzontale.
Supponiamo che tu abbia <div class = "container"> come titolare dell'immagine:
Quindi come CSS devi usare:
.container {
display: flex;
align-items: center;
justify-content: center;
height: 100%;
}
E questo renderà tutti i tuoi contenuti all'interno di questo div perfettamente centrati.
La soluzione più semplice che ho trovato è stata aggiungere questo al mio img-element:
style="display:block;margin:auto;"
Sembra che non sia necessario aggiungere "0" prima di "auto" come suggerito da altri. Forse è il modo corretto, ma funziona abbastanza bene per i miei scopi anche senza lo "0". Almeno sugli ultimi Firefox, Chrome e Edge .
auto auto auto autoe 0 autosignifica 0 auto 0 auto... e per impostazione predefinita auto per il margine inferiore e superiore è 0quindi aggiungere 0 o meno è esattamente lo stesso in questo caso che ti fa rispondere a un ennesimo duplicato di quelli già forniti
auto, auto auto, auto auto auto, auto auto auto auto, 0 auto 0, 0 auto, 0 auto 0 auto, e così via ... tu pensi che ognuno merita una risposta diversa? Io non la penso così.
i++sono gli stessi i+=1)
Puoi usare text-align: centeril genitore e cambiare imgin display: inline-block→, quindi si comporta come un elemento di testo ed è centrato se il genitore ha una larghezza!
img {
display: inline-block
}
Centrare un'immagine non di sfondo dipende dal fatto che si desideri visualizzare l'immagine come in linea (comportamento predefinito) o come elemento a blocchi.
Caso di in linea
Se si desidera mantenere il comportamento predefinito della proprietà CSS di visualizzazione dell'immagine, sarà necessario avvolgere l'immagine all'interno di un altro elemento a blocchi su cui è necessario impostare text-align: center;
Caso di blocco
Se vuoi considerare l'immagine come un elemento a blocchi a sé stante, allora la text-alignproprietà non ha senso, e dovresti invece farlo:
IMG.display {
display: block;
margin-left: auto;
margin-right: auto;
}
La risposta alla tua domanda:
La proprietà text-align: center; un buon modo per centrare un'immagine usando i CSS?
Sì e no.
text-alignproprietà: e potrebbe essere che non ti piacerebbe questo effetto collaterale.Riferimenti
Un altro modo per ridimensionare: visualizzalo:
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 */
}
display: blockcon margin: 0non ha funzionato per me, né avvolgersi con un text-align: centerelemento.
Questa è la mia soluzione:
img.center {
position: absolute;
transform: translateX(-50%);
left: 50%;
}
margin: 0 auto;? La chiave sta impostando margin-lefte margin-rightsu auto. margin: 0 auto;è solo una scorciatoia per quello.
margin: 0 auto, margin: 0e margin: autonessuno ha funzionato. Si noti che nell'ispettore di Chrome, quando si utilizza margin: 0 auto, colpisce la proprietà con un punto esclamativo che dice invalid property value(o qualunque cosa significhi)
relativeposizionamento piuttosto che absoluteentrambi funzionano abbastanza bene.
Ho scoperto che se ho un'immagine e del testo all'interno di una div, allora posso usare text-align:centerper allineare il testo e l'immagine in un colpo solo.
HTML:
<div class="picture-group">
<h2 class="picture-title">Picture #1</h2>
<img src="http://lorempixel.com/99/100/" alt="" class="picture-img" />
<p class="picture-caption">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Temporibus sapiente fuga, quia?</p>
</div>
CSS:
.picture-group {
border: 1px solid black;
width: 25%;
float: left;
height: 300px;
#overflow:scroll;
padding: 5px;
text-align:center;
}
CodePen: https://codepen.io/artforlife/pen/MoBzrL?editors=1100
A volte aggiungiamo direttamente il contenuto e le immagini sull'amministratore di WordPress all'interno delle pagine. Quando inseriamo le immagini all'interno del contenuto e vogliamo allineare quel centro. Il codice viene visualizzato come:
**<p><img src="https://abcxyz.com/demo/wp-content/uploads/2018/04/1.jpg" alt=""></p>**
In tal caso è possibile aggiungere contenuti CSS in questo modo:
article p img{
margin: 0 auto;
display: block;
text-align: center;
float: none;
}
Uso:
<dev class="col-sm-8" style="text-align: center;"><img src="{{URL('image/car-trouble-with-clipping-path.jpg')}}" ></dev>
Penso che questo sia il modo di centrare un'immagine nel framework Laravel.