J'ai un iframe entouré d'un élément div et j'essaie simplement de le positionner toujours au centre . Voici mon effort jsfiddle: jsfiddle
et vraiment croire que quelqu'un pourrait aider parce que je suis sûr que c'est quelque chose de très simple mais je ne peux tout simplement pas le voir.
Voici le code HTML lui-même:
<div id="top-element">Some div that has greater width than the inner div</div>
<div id="iframe-wrapper">
<iframe src="http://www.Apple.com/" scrolling="auto"></iframe>
</div>
une solution est:
<div>
<iframe></iframe>
</div>
div {
text-align:center;
width:100%;
}
iframe{
width: 200px;
}
edit: alignement vertical ajouté
div {
text-align: center;
width: 100%;
vertical-align: middle;
height: 100%;
display: table-cell;
}
.iframe{
width: 200px;
}
div,
body,
html {
height: 100%;
width: 100%;
}
body{
display: table;
}
en utilisant display: flex
sur le <div>
div {
display: flex;
align-items: center;
justify-content: center;
}
violon: http://jsfiddle.net/h9gTm/867/
Essaye ça:
#wrapper {
text-align: center;
}
#wrapper iframe {
display: inline-block;
}
Je pense que si vous ajoutez la marge: auto; à la div ci-dessous cela devrait fonctionner.
div#iframe-wrapper iframe {
position: absolute;
top: 0;
bottom: 0;
left: 0;
margin: auto;
right: 100px;
height: 100%;
width: 100%;
}
Vous pouvez facilement utiliser display: table pour aligner verticalement le contenu et text-align: pour centrer horizontalement votre iframe . http://jsfiddle.net/EnmD6/7/
html {
display:table;
height:100%;
width:100%;
}
body {
display:table-cell;
vertical-align:middle;
}
#top-element {
position:absolute;
top:0;
left:0;
background:orange;
width:100%;
}
#iframe-wrapper {
text-align:center;
}
version avec table-row http://jsfiddle.net/EnmD6/9/
html {
height:100%;
width:100%;
}
body {
display:table;
height:100%;
width:100%;
margin:0;
}
#top-element {
display:table-row;
background:orange;
width:100%;
}
#iframe-wrapper {
display:table-cell;
height:100%;
vertical-align:middle;
text-align:center;
}
Si tout ce que vous voulez faire, c'est afficher un iframe sur une page, la solution la plus simple que j'ai pu trouver ne nécessite pas de divs ni de commandes flex:
html {
width: 100%;
height: 100%;
display: table;
}
body {
text-align: center;
vertical-align: middle;
display: table-cell;
}
Et puis le HTML est juste:
<html>
<body>
<iframe ...></iframe>
</body>
</html>
Si c'est tout ce dont vous avez besoin, vous n'avez pas besoin de divs wrapper pour le faire. Cela fonctionne aussi pour le contenu textuel.
Fiddle .
Aussi ceci semble encore plus simple.
Première supprimer position:absolute
de div#iframe-wrapper iframe
, Supprimerposition:fixed
et tous les autres css de div#iframe-wrapper
Puis appliquez ce css,
div#iframe-wrapper {
width: 200px;
height: 400px;
margin: 0 auto;
}