Come si centra facilmente orizzontalmente un usando i CSS?

Sto provando a centrare orizzontalmente un elemento di blocco

su una pagina e impostarlo su una larghezza minima. Qual è il modo più semplice per farlo? Voglio che l’elemento

sia in linea con il resto della mia pagina. Proverò a disegnare un esempio:

 page text page text page text page text page text page text page text page text ------- | div | ------- page text page text page text page text page text page text page text page text 

Nel caso di un div di larghezza non fissa (ovvero non sai quanto spazio occuperà il div).

 #wrapper { background-color: green; /* for visualization purposes */ text-align: center; } #yourdiv { background-color: red; /* for visualization purposes */ display: inline-block; } 
 
Your text

Nella maggior parte dei browser questo funzionerà:

 div.centre { width: 200px; display: block; background-color: #eee; margin-left: auto; margin-right: auto; } 
 
Some Text
 margin: 0 auto; 

come ha detto ck , la larghezza minima non è supportata da tutti i browser

Il titolo della domanda e il contenuto sono in realtà diversi, quindi pubblicherò due soluzioni per questo utilizzando Flexbox .

Immagino che Flexbox sostituirà / aggiungerà alla soluzione standard corrente prima che IE8 e IE9 siano completamente distrutti;)

Controlla la tabella di compatibilità del browser corrente per Flexbox

Singolo elemento

 .container { display: flex; justify-content: center; } 
 

CSS , HTML :

 div.mydiv {width: 200px; margin: 0 auto} 
 
I am in the middle
 .center { margin-left: auto; margin-right: auto; } 

La larghezza minima non è globalmente supportata, ma può essere implementata usando

 .divclass { min-width: 200px; } 

Quindi puoi impostare il tuo div per essere

 
stuff in here

Se i vecchi browser non sono un problema, utilizza HTML5 / CSS3. Se lo sono, applica polyfill e utilizza ancora HTML5 / CSS3. Presumo che il tuo div non abbia margini o paddings qui, ma sono relativamente facili da spiegare. Il codice segue.

 .centered { position: relative; left: 50%; transform: translateX(-50%); } 

Quello che fa è:

  1. Posiziona il div relativo al suo contenitore;
  2. Posiziona il limite sinistro del div al 50% della larghezza del suo contenitore in orizzontale;
  3. Tradurre indietro orizzontalmente del 50% della larghezza del div .

È facile immaginare questo processo per confermare che alla fine il div sarebbe centrato orizzontalmente. Come bonus, puoi centrare verticalmente senza costi aggiuntivi:

 .centered-vertically { position: relative; top: 50%; transform: translateY(-50%); } 

Il vantaggio di questo approccio è che non devi fare alcuna cosa controintuitiva, come considerare il tuo div un testo di sorta, avvolgerlo in un contenitore addizionale (spesso semanticamente inutile), o dargli una larghezza fissa, che non è sempre ansible

Non dimenticare i prefissi dei fornitori per la transform se necessario.

Dovresti usare position: relative e text-align: center l’elemento genitore e poi display: inline-block sull’elemento figlio che vuoi centrare. Questo è un semplice modello di progettazione CSS che funzionerà su tutti i principali browser. Ecco un esempio qui sotto o controlla l’ Esempio CodePen .

 p { text-align: left; } .container { position: relative; display: block; text-align: center; } /* Style your object */ .object { padding: 10px; color: #ffffff; background-color: #556270; } .centerthis { display: inline-block; } 
 

Aeroplanigera Mi Psychopathologia Subdistinctio Chirographum Intuor Sons Superbiloquentia Os Sors Sesquiseptimus Municipatio Archipresbyteratus O Conclusio Compedagogius An Maius Septentrionarius Plas Inproportionabilit Constantinopolis Particularisticus.

Something Centered

Aeroplanigera Mi Psychopathologia Subdistinctio Chirographum Intuor Sons Superbiloquentia Os Sors Sesquiseptimus Municipatio Archipresbyteratus O Conclusio Compedagogius.

puoi usare margin: 0 auto sul tuo css invece di margin-left: auto; margin-right: auto; margin-left: auto; margin-right: auto;

Si prega di utilizzare sotto il codice il tuo div sarà al centro

 .class-name{ display:block; margin:0 auto; 

}

Dopo nove anni ho pensato che fosse giunto il momento di presentare una nuova versione. Ecco i miei due (e ora uno) preferiti.

Margine

Imposta margin su auto . Dovresti sapere che la sequenza di direzione è margin: *top* *right* *bottom* *left*; o margin: *top&bottom* *left&right*

 aside{ display: block; width: 50px; height: 100px; background-color: green; float: left; } article{ height: 100px; margin: 0 0 0 50px; /* 50px aside width */ background-color: grey; } div{ margin: 0 auto; display:block; width: 60px; height: 60px; background-color: blue; color: white; } 
       
The div

Qui aggiungo la risposta corretta

Puoi utilizzare questo codice snippet e personalizzare. Qui io uso 2 blocco figlio. Questo dovrebbe mostrare il centro della pagina. Puoi usare uno o più blocchi.

      
Block 1
Block 2
 .center { height: 20px; background-color: blue; } .center>div { margin: auto; background-color: green; width: 200px; } 
 
You text

Se conosci la larghezza del tuo div ed è corretto, puoi usare il seguente css:

 margin-left: calc(50% - 'half-of-your-div-width'); 

dove ‘half-of-your-div-width’ dovrebbe essere (ovviamente) la metà della larghezza del div.

Se il tuo

ha position: absolute devi usare width: 100%;

 #parent { width: 100%; text-align: center; } #child { display: inline-block; } 

Nel tuo file html scrivi:

  

il tuo file css scrivi:

 .banner { display: block; margin: auto; width: 100px; height: 50px; } 

per me va bene.

Utilizzo di margin-left: auto e margin-right: auto potrebbe non funzionare in determinate situazioni. Ecco una soluzione che funzionerà sempre. Si specifica una larghezza richiesta e si imposta un margine sinistro su metà della larghezza rimanente.

  
your_html

Aggiungi questa class al tuo css file funzionerà perfettamente i passi da fare:

1) crea questo prima

 

2) aggiungi questo al tuo css

 .center-role-form { width: fit-content; text-align: center; margin: 1em auto; } 

La migliore risposta a questa domanda è usare margin-auto ma per usarlo devi conoscere la width del tuo div in px o % .

Codice CSS:

 div{ width:30%; margin-left:auto; margin-right:auto; } 

Uso tag div e span insieme alle proprietà CSS come blocco, cross-browser inline-block e text-align center, vedi il mio semplice esempio

    Page Title    
jjjjjk

puoi usare la posizione: relativa; e quindi imposta i valori left e top:

 .cenverDiv{ position:relative; left:30%; top:0px; } 

Usando jQuery:

 $(document).ready(function() { $(".myElement").wrap( '' ); // for IE6 $(".myElement_container_new").css({// for IE6 "display" : "block", "position" : "relative", "margin" : "0", "padding" : "0", "border" : "none", "background-color" : "transparent", "clear" : "both", "text-align" : "center" }); $(".myElement").css({ "display" : "block", "position" : "relative", "max-width" : "75%", // for example "margin-left" : "auto", "margin-right" : "auto", "clear" : "both", "text-align" : "left" }); }); 

oppure, se vuoi centrare ogni elemento con la class “.myElement”:

 $(document).ready(function() { $(".myElement").each(function() { $(this).wrap( '' ); // for IE6 $(".myElement_container_new").css({// for IE6 "display" : "block", "position" : "relative", "margin" : "0", "padding" : "0", "border" : "none", "background-color" : "transparent", "clear" : "both", "text-align" : "center" }); $(this).css({ "display" : "block", "position" : "relative", "max-width" : "75%", "margin-left" : "auto", "margin-right" : "auto", "clear" : "both", "text-align" : "left" }); }); });