Como centralizar um iframe horizontalmente?


234

Considere o seguinte exemplo: ( demonstração ao vivo )

HTML:

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

CSS:

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

Resultado:

insira a descrição da imagem aqui

Por que o iframenão está alinhado centralmente como o div? Como eu poderia alinhá-lo centralmente?


6
por que não agrupar uma div para esse iframe?
Giberno

Respostas:


384

Adicione display:block;ao seu iframe css.


28
Obrigado! Eu devia ter adivinhado que um inline frameé um elemento inline :)
Misha Moroshko

34
Então é isso que o "i" significa.
Aayush

11
Então, alternativamente, você pode definir uma text-align: centerregra para o contêiner , correto?
KOVIKO

1
sim adicionando text-align: center para o contêiner iria trabalhar muito
chrisweb

9
Eu descobri que eu também tive que adicionarmargin: auto;
MarkyDD

45

A melhor maneira e mais simples de centralizar um iframe na sua página da web é:

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

onde largura e altura terão o tamanho do seu iframe na sua página html.


1
Eu pensei que o alignatributo estava obsoleto? Por que o OP deve usar essa abordagem em vez de usar CSS - qual é a vantagem?
precisa

4
style="text-align:center"não é obsoleto e faria o mesmo trabalho
Anthony

mesmo sendo depreciado, isso funciona, enquanto todo o resto não funciona.
user819490

Isso funciona no arquivo HTML e, portanto, é mais fácil para os novatos como eu implantar. Acabei de fazer isso em 2017, para que não seja depreciado. Obrigado pela dica!
Renel Chesak

20

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;

}

11

Se você estiver colocando um vídeo no iframe e desejar que seu layout seja fluido, consulte esta página da Web: Vídeo com largura de fluido

Dependendo da fonte de vídeo e se você quiser que vídeos antigos se tornem responsivos, suas táticas precisarão ser alteradas.

Se este é seu primeiro vídeo, aqui está uma solução simples:

<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 adicione este css:

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

Isenção de responsabilidade: nada disso é meu código, mas eu o testei e fiquei satisfeito com os resultados.


Isso é para tornar o vídeo no iframe responsivo, funciona bem, obrigado!
Ricardo

11

O código mais simples para alinhar o elemento iframe:

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

Por favor, veja este primeiro como responder Esta pergunta foi respondida antes, obviamente, você pode adicionar sua resposta aqui. Mas você precisa entender alguns pontos antes de responder. Primeiro, não adicione uma resposta que foi adicionada anteriormente com o mesmo código ou sugestão. Segundo, não adicione uma resposta excessivamente complicada se o usuário tiver perguntado muito especificamente sobre o problema e o que ele precisa para resolver isso. Terceiro, você pode adicionar um comentário se quiser sugerir algo sobre a resposta ou a pergunta.
Ankit suthar

6

Você pode colocar iframe dentro de um <div>

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

Funciona porque agora está dentro de um elemento de bloco.


3

De acordo com http://www.w3schools.com/css/css_align.asp , definir as margens esquerda e direita como automáticas especifica que eles devem dividir a margem disponível igualmente. O resultado é um elemento centralizado:

margin-left: auto;margin-right: auto;

1
Somente se o elemento pai tiver o estilo de alinhamento de texto definido como centralizado.
parvus

3

Podes tentar

<h3 style="text-align:center;"><iframe src=""></iframe></h3>

Espero que seja útil para você

ligação


1

No meu caso, a solução estava na classe iframe, adicionando:

    display: block;
    margin-right: auto;
    margin-left: auto;

0

Aqui eu coloquei um trecho para todos vocês que estão sofrendo para criar iframe ou imagem no centro da tela horizontalmente. Dê-me THUMBS UP VOTE, se quiser.

style> img & iframe> esse é o nome da sua tag, então mude para que, se você quiser alguma outra tag no centro

<html >
 <head> 
            <style type=text/css>
            div{}
            img{
                 margin: 0 auto;
	         display:block;
         	}
	 iframe{	
		margin: 0 auto;
		display:block;
		}
				
            </style>
</head>
 <body >
           
			<iframe src="https://test-videos.co.uk/vids/bigbuckbunny/mp4/h264/360/Big_Buck_Bunny_360_10s_1MB.mp4" width="320" height="180" frameborder="0" allowfullscreen="allowfullscreen"></iframe> 
			
			<img src="http://commondatastorage.googleapis.com/gtv-videos-bucket/sample/images/BigBuckBunny.jpg" width="320" height="180"  />
            </body> 
            </html>

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.