演示页:http://apps.pc-tips.in/play/
在上面,包含“Ask any& get”的div居中,但是包含“answer on”行的div不是。为什么?两者的风格相似。给定宽度,绝对位置,自动余量。
代码:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<style type="text/css">
div {
margin:0 ;
padding:0 ;
}
#sidebar {
height: 600px;
width: 200px;
}
#topside {
height: 108px;
background-image: url(Untitled-3.jpg);
background-repeat: repeat-x;
text-align: center;
position: relative;
}
.down {
bottom: 3px;
position: absolute;
margin: auto;
width: 200px;
}
#bottomside {
background-image: url(Untitled-4.jpg);
height: 492px;
position: relative;
}
#wrapper #sidebar #topside {
color: #FFF;
font-size: 0.9em;
font-weight: bold;
}
.delhi {
font-size: 1.8em;
}
.top {
top: 3px;
position: absolute;
margin-left: auto;
margin-right: auto;
width: 100px;
}
</style>
</head>
<body>
<div id="wrapper">
<div id="sidebar">
<div id="topside"><br /> <span class="delhi">Delhi </span> Questions and answers.
<div class="down">
Ask any question & get
</div>
</div>
<div id="bottomside">
<div class="top"> answers on </div>
</div>
</div>
</div>
</body>
</html>
有人想指出我在这里缺少什么吗?
答案 0 :(得分:1)
如果元素添加margin:0 auto
,则无法通过position:absolute
将元素居中。从position:absolute
移除.top
,它应该有效。
不确定您要实现的目标,但这几乎解决了您遇到的问题。请记住,您可以使用填充来“居中”内容。这将使您不必明确设置宽度。
答案 1 :(得分:1)
正如kuroir的回答所说,如果你也使用绝对定位,你不能以这种方式集中元素。
你的“问任何问题”div 不是居中,你给它的宽度和它的容器相同。
两者看起来不同的唯一原因是text-align: center
容器上有#topside
,而#bottomside
容器上没有。{/ p>
答案 2 :(得分:1)
您需要更改CSS,更新“#bottomside”和“.top”样式,如下所示:
#bottomside {
background-image: url(Untitled-4.jpg);
height: 492px;
position: relative;
text-align: center;
}
.top {
top: 3px;
position: absolute;
margin-left: auto;
margin-right: auto;
width: 100%;
}
这些变化是不言自明的,如果有混淆,请告诉我。