这是链接:http ://www.cssdesk.com/PYBRZ
帮助,我不能让那个元素(或任何不同大小的元素)将自己定位到父元素的中间。我已经解决了2天,仍然找不到解决此问题的方法。
这是更新的链接:http ://www.cssdesk.com/W3MvQ
尽管如此,它不会将自己定位到中间,它只是去中心:(
这是链接:http ://www.cssdesk.com/PYBRZ
帮助,我不能让那个元素(或任何不同大小的元素)将自己定位到父元素的中间。我已经解决了2天,仍然找不到解决此问题的方法。
这是更新的链接:http ://www.cssdesk.com/W3MvQ
尽管如此,它不会将自己定位到中间,它只是去中心:(
让margin:auto
图像水平居中对齐。
.overlay img
{
display: block;
margin-left: auto;
margin-right: auto;
}
这是来自 W3C 居中图像标准。请参阅此http://www.w3.org/Style/Examples/007/center.en.html
因为您的 div 是固定位置的,所以垂直对齐不是直截了当的。相反,您可以将背景添加到您的 div
background:url("http://oi46.tinypic.com/56612.jpg") no-repeat center center
试试这个:- http://www.cssdesk.com/nSyPa
<div id="overlay">
</div>
#overlay {
background: black url('http://oi46.tinypic.com/56612.jpg') no-repeat center center;
position: fixed;
top:0;
left:0;
width: 100%;
height: 100%;
z-index:1000;
text-align: center;
}
您也可以在图像上使用 margin-top ,但这将更加令人头疼,并且您必须根据各种分辨率等计算边距。
OP 表示与中间垂直对齐请注意,此答案分为两部分:
你需要的有点棘手。您需要知道父级的高度,以便应用顶部边距、顶部填充,甚至使用绝对位置的顶部和左侧值;
例如看这个:
#overlay {
background: black;
position: fixed;
top:0;
left:0;
width: 100%;
height: 700px;
z-index:1000;
text-align:center;
}
#overlay img {
margin-top:100px
}
使用 JavaScript,您可以动态检测父级的高度,以便相应地对子级应用一些样式。
您还可以让父级不带任何尺寸并添加特定的填充,这样父级将采用子级的大小加上周围的填充:
#overlay {
background: black;
position: fixed;
top:0;
left:0;
z-index:1000;
padding:80px;
}
#overlay img {
/*nothing in here unless you need any other style*/
}
第一个答案**
有很多方法,给父母风格text-align:center
#overlay {
display: table;
background: black;
position: fixed;
top:0;
left:0;
width: 100%;
height: 100%;
z-index:1000;
text-align:center;
}
或将图像转换为具有特定 with 和 margin auto 的块:
#overlay img {
display:block;
width:100px;
margin:auto
}
图像的默认值是 inline-block ,这使它充当文本,这就是为什么 text-align center to parent 起作用的原因,另一方面,如果你把它做成一个块,具有特定的 with 和 margin auto 你保证它不被视为文本,并将在所有浏览器中居中。
由于您有不同的尺寸并且无法指定宽度,因此只需在您的示例中执行以下操作,请尝试:
#overlay img {
display: block;
margin:auto;
}
您可以尝试以下 CSS:
html, body {
height: 100%;
width: 100%;
}
#overlay {
position:relative;
background: black;
width: 100%;
height: 100%;
}
#overlay img {
position:absolute;
top:0;
bottom:0;
left: 0;
right: 0;
margin: auto;
outline: 1px dotted yellow;
}
并查看以下 jsFiddle:http: //jsfiddle.net/audetwebdesign/UwJZw/
这是如何工作的
您position: relative
在父容器 ( #overlay
) 上进行设置,并将宽度设置为 100%,将高度设置为 100%。请注意,要使高度起作用,您需要将高度设置为根元素 ( <html>
) 和<body>
100%。
诀窍是<img>
绝对定位并将顶部/底部/左侧/右侧位置设置为零,然后将边距设置为自动,这将水平和垂直居中。
好处是无论图像大小如何,它都可以工作,不需要数学。
我添加了一个黄色轮廓以显示图像的边缘,这不会影响解决方案。
请注意,根据播放的浏览器 chrome 的数量,100% 的高度可能会触发垂直滚动条。考虑到页面布局的其余部分,您需要考虑如何最好地围绕它进行设计。
另一方面,如果你有固定高度的容器,这就像一个魅力,特别是对于照片画廊等。
该技术基于 CSS 2.1,因此它应该可以在相当多的浏览器中使用。