CODE
<!DOCTYPE html>
<html lang=en-US>
<head>
<title></title>
<style type="text/css">
iframe {
margin: 0 auto;
display: block;
border: 1px solid #ccc;
}
</style>
</head>
<body>
<iframe width="800" height="500"">
</iframe>
</body>
</html>
技巧是使用嵌套元素的margin和top offset属性。
在这种情况下,给定父div(A)为300px,我将嵌套div(B)偏移了300的50%,即150。因此B定位在距A容器顶部向下150px处。但是,我们还没有完成。为了使B的中心与A的中心匹配,我们需要将B的高度的负50%应用于margin-top属性。这将使它居中,数学运算将检出。
如果您知道所有像素的尺寸,则更加容易。
随意更改A的宽度或高度。它会动态居中。
div#a
{
width: 300px;
height: 300px;
border-width:1px;
border-style: solid;
/* important stuff below */
display: inline-block;
}
div#b
{
width: 60px;
height: 60px;
background-color: red;
/* important stuff below */
position: relative;
margin: -30px auto 0 auto;
top: 50%;
}
因此,我建议将iframe包裹在div中。它给您更多的控制权。再说一次,我是那些过多的div包装器之一...
iframe {
margin: 0 auto;
display: block;
width: 800px;
border: 1px solid #ccc;
}
vertical-align: middle; width: 800px; margin-right: auto; margin-left: auto;
。html,正文{高度:100%;}
再一次,这样做有点不好,因为您使用表格来组织视觉布局,但是它有好处
<table height="100%" width="100%">
<tr>
<td valign="middle" align="center">
<iframe width="800" height="500"></iframe>
</td>
</tr>
</table>
以及CSS
body{ height:100% }
/* Here just for context */
html,
body,
.container {
width: 100%;
height: 100%;
}
/* This is whats needed */
.container {
display: flex;
align-items: center;
justify-content: center;
}
<div class="container">
<iframe width="300" height="150" src="https://www.youtube.com/embed/V17ij5Ap1pA"></iframe>
</div>