请教我的代码中为什么有个div无法居中

2012-07-31 11:21:31 +08:00
 stackpop
html代码如下:

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>xxxx</title>
<script src="http://lib.sinaapp.com/js/jquery/1.6.2/jquery.min.js" type="text/javascript"></script>
<link rel="stylesheet" href="style.css">
</head>
<body>
<div class="main">
<div class="logo" id="front">
</div>
<div class="startgame">
<a href="#"></a>
</div>
</div>
</body>
</html>

CSS样式定义如下:
*{
padding: 0;
margin: 0;
}
body{
width: 800px;
background: url(bg2.jpg) repeat;
}
img{
border: 0;
}
.main{
margin: auto;
width:730px;
}
}
.logo{
width:428;
height: 285px;
background: url(logo.png) no-repeat;
}
#front{
height: 285px;
background: url(logo.png) no-repeat;
}

}
.startgame{
margin-top: 100px;
padding-bottom: 100px;
}
.startgame a:hover {
background: url(bta.png) no-repeat 0px -313px;
}
.startgame a {
width: 163px;
height: 45px;
display: block;
background: url(bta.png) no-repeat 0px -223px;
margin:auto;
}


其中startgame这个div是可以居中对齐的,但是上面那个logo div完全对不齐,一直在最左,请教大家
4468 次点击
所在节点    PHP
31 条回复
gucheen
2012-07-31 11:30:03 +08:00
你logo和front都没有给剧中啊。。。
stackpop
2012-07-31 11:36:56 +08:00
@gucheen 加了margin auto,根本没有用啊~
margin-left:500px;都没有任何效果。
gucheen
2012-07-31 11:45:09 +08:00
@stackpop 你的CSS貌似多了几个},检查下
gucheen
2012-07-31 11:45:42 +08:00
然后加上margin:auto;我这边是可以居中的
NemoAlex
2012-07-31 11:48:28 +08:00
CSS 里有几个多余的 “}”
zsdsz
2012-07-31 11:50:20 +08:00
你body设置了宽度,logo是相对于body居中的,你删掉body的宽度就知道。
stackpop
2012-07-31 11:58:32 +08:00
@gucheen 我删除了那2个多余的} 加了margin:auto依然没有效果。。。。

*{
padding: 0;
margin: 0;
}
body{
width: 800px;
background: url(bg2.jpg);
}
img{
border: 0;
}
.main{
margin: auto;
width:730px;
}
.logo{
width:428;
height: 285px;
background: url(logo.png) no-repeat;
margin: auto;
}
#front{
margin: auto;
height: 285px;
background: url(logo.png) no-repeat;
}

.startgame{
margin-top: 100px;
padding-bottom: 100px;
}
.startgame a:hover {
background: url(bta.png) no-repeat 0px -313px;
}
.startgame a {
width: 163px;
height: 45px;
display: block;
background: url(bta.png) no-repeat 0px -223px;
margin:auto;
}
stackpop
2012-07-31 11:59:46 +08:00
@zsdsz 如何让他相对于main居中呢?
gucheen
2012-07-31 12:03:58 +08:00
我这边一切正常,话说你把logo的width的px加上,我用border代替图片,显示是居中的
zsdsz
2012-07-31 12:16:15 +08:00
@stackpop 如果你的body一定要设宽度,那就把margin: auto;放到body。
luin
2012-07-31 12:16:18 +08:00
.logo 的 width 你没加 px
lingyired
2012-07-31 12:27:34 +08:00
width:428;
zsdsz
2012-07-31 12:29:01 +08:00
@lingyired
@luin 在chrome中是可以正常显示的
frittle
2012-07-31 12:49:45 +08:00
除了上面指出的错误之外,在IE里是无法用margin: auto来居中的。
NemoAlex
2012-07-31 12:52:39 +08:00
@frittle 不可能
cloudhunter
2012-07-31 17:08:34 +08:00
在IE上想用margin: 0 auto;来居中,必须指定正确的html头部声明如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
wuxiaolin
2012-08-02 14:13:33 +08:00
好长的代码
LcaKen0day
2012-08-02 16:38:15 +08:00
你可以试试在这个div中加入一个<table border="0px" align="center" valign="center"></table>
LcaKen0day
2012-08-02 16:40:50 +08:00
一般的话用div+css控制图片只可以水平剧终,控制不了垂直剧终 ,你可以试试在其中插入一个<table></table>利用table的属性去定义logo让其居中。
LcaKen0day
2012-08-02 16:43:02 +08:00
还有就是注意一下类选择器跟id选择器是否有冲突,id选择器的优先级要高于类选择器。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/43931

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX