2011-12-03 22 views
175

consideri il seguente esempio: (live demo)Come centrare un iframe orizzontalmente?

HTML:

<div>div</div> 
<iframe></iframe> 

CSS:

div, iframe { 
    width: 100px; 
    height: 50px; 
    margin: 0 auto; 
    background-color: #777; 
} 

Risultato:

enter image description here

Perché iframe non è allineato centralmente come lo div? Come potrei allinearlo centralmente?

+4

perché non avvolgere un div per questo iframe? – Giberno

risposta

297

Aggiungi display:block; ai tuoi iframe css.

+21

Grazie! Avrei dovuto intuire che un 'frame inline' è un elemento inline :) –

+25

Quindi questo è ciò che rappresenta la" i ". – Aayush

+8

Quindi, in alternativa, è possibile assegnare al contenitore una regola "text-align: center', corretta? – Koviko

4

si può mettere IFRAME all'interno di un <div>

<div> 
    <iframe></iframe> 
</div> 

Funziona perché è ora all'interno di un elemento di blocco.

+1

testato - non funziona – user819490

19

HTML:

<div id="all"> 
    <div class="sub">div</div> 
    <iframe>ss</iframe> 
</div> 

CSS:

#all{ 
    width:100%; 
    float:left; 
    text-align:center; 
} 
div.sub, iframe { 
    width: 100px; 
    height: 50px; 
    margin: 0 auto; 
    background-color: #777; 

} 
4

Secondo , impostando i margini destro e sinistro per l'auto specifica che essi dovrebbero dividere il margine disponibile allo stesso modo. Il risultato è un elemento centrato:

margin-left: auto;margin-right: auto; 
+0

Solo se l'elemento genitore ha lo stile testo-allineamento impostato al centro. – parvus

9

Se si sta mettendo un video nel iframe e si desidera che il layout di essere fluido, si dovrebbe guardare a questa pagina web: Fluid Width Video

A seconda della sorgente video e se vuoi che i vecchi video diventino reattivi, le tue tattiche dovranno cambiare.

Se questo è il vostro primo video, ecco un semplice soluzione:

<div class="videoWrapper"> 
 
    <!-- Copy & Pasted from YouTube --> 
 
    <iframe width="560" height="349" src="http://www.youtube.com/embed/n_dZNLr2cME?rel=0&hd=1" frameborder="0" allowfullscreen></iframe> 
 
</div>

e aggiungi a css:

.videoWrapper { 
 
\t position: relative; 
 
\t padding-bottom: 56.25%; /* 16:9 */ 
 
\t padding-top: 25px; 
 
\t height: 0; 
 
} 
 
.videoWrapper iframe { 
 
\t position: absolute; 
 
\t top: 0; 
 
\t left: 0; 
 
\t width: 100%; 
 
\t height: 100%; 
 
}

Disclaimer: niente di questo è il mio codice, ma l'ho testato ed è stato soddisfatto dei risultati.

16

modo migliore e più semplice per centrare un iframe nella tua pagina web è:

<p align="center"><iframe src="http://www.google.com/" width=500 height="500"></iframe></p> 

dove larghezza e l'altezza sarà la dimensione del vostro iframe nella pagina HTML.

+1

Pensavo che l'attributo 'align' fosse deprecato? Perché l'OP dovrebbe usare questo approccio invece di usare i CSS - qual è il vantaggio? – andrewsi

+1

'style =" text-align: center "' non è deprecato e farebbe lo stesso lavoro – Anthony

+0

anche se è deprezzato, funziona, mentre tutto il resto no. – user819490

5

Il codice più semplice per allineare l'elemento IFRAME:

<div align="center"><iframe width="560" height="315" src="www.youtube.com" frameborder="1px"></iframe></div> 
+0

Si prega di vedere questa prima come risposta a questa domanda viene data risposta prima, ovviamente, è possibile aggiungere la risposta qui. Ma devi capire alcuni punti prima di rispondere. Innanzitutto, non aggiungere una risposta che è stata precedentemente aggiunta con lo stesso codice o suggerimento. In secondo luogo, non aggiungere una risposta eccessivamente complicata se l'utente ha chiesto in modo molto specifico il problema e di cosa ha bisogno per risolverlo. Terzo, puoi aggiungere un commento se vuoi suggerire qualcosa riguardo la risposta o la domanda. –

Problemi correlati