我试图将一个绝对定位的徽标和其他元素集中在100%宽度的标题内。
将绝对定位项目居中并确保它和我将添加的其他元素在从320px移动到475px时保持居中的步骤是什么。
以下是我到目前为止的代码,它以320px为中心,但在展开页面时不会保持居中:
@media (max-width: 475px) and (min-width: 320px)
#header {
height: 170px;
width: 100%!important;
position:relative;
}
#logo
left: 21%;
top: -7px;
position: absolute;
}
答案 0 :(得分:0)
不确定您是否需要媒体查询。
这样的事情怎么样?将您想要的徽标和任何其他内容包含在inline-block
div
中,并将标题容器设置为text-align:center
。
.header {
height:100px;
background-color:grey;
text-align:center;
}
.logo {
display:inline-block;
width:100px;
height:100px;
background-color:blue;
}

<div class="header">
<div class="logo"></div>
</div>
&#13;
...或者,如果您只需要一些位居中而其他位不是:
.header {
position:relative;
height:100px;
background-color:grey;
}
.content {
position:absolute;
height:80px;
padding:10px;
text-align:center;
}
.left {
left:0;
background-color:red;
}
.center {
left:50%;
transform:translateX(-50%);
background-color:blue;
}
.right {
right:0;
background-color:red;
}
&#13;
<div class="header">
<div class="content left">Left</div>
<div class="content center">Centered</div>
<div class="content right">Right</div>
</div>
&#13;
答案 1 :(得分:0)
如果您不必支持旧浏览器,并且不介意使用CSS3,那么您可以在.logo类中使用它:
left: calc(50% - XXXpx);
其中XXX应为徽标宽度的一半
答案 2 :(得分:0)
答案 3 :(得分:0)
使用绝对定位的元素作为徽标和其他元素的容器。
使容器居中:
top:50%;
left: 50%;
transform: translate(-50%, -50%);
然后将text-align设置为容器内的中心元素。
这是一个小提琴 - http://jsfiddle.net/0a70ccz1/