CSS+DIV布局如何消除两个div之间的间隙问题?

<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>布局</title>
<style>
#a {
margin:0;
width:700px;
background-color: #F00
}
#b {
margin:0;
width:700px;
background-color: #0F0
}
#a ul{
margin:0px;}
#b ul{
margin:0px;}
</style>
</head>
<body>
<div id="a">
<ul>
<li>a1</li>
<li>a2</li>
</ul>
</div>
<div id="b">
<ul>
<li>b1</li>
<li>b2</li>
</ul>
</div>
</body>
</html>
这样会使两个DIV之间没有间隙。
但是如果把
#a ul{
margin:0px;}
#b ul{
margin:0px;}
去掉之后为什么又会出现间隙?
去掉上述代码后 无论怎么设置DIV的margin和padding都会有间隙
(不要加float:left)
望高手解答一下。。。

第1个回答  推荐于2018-08-08
这个问题不复杂,也不难理解。
你要知道有的元素本身是有padding值的,ul,ol 标签水平方向默认有padding值,
同样的,p,ul,ol,dl 标签垂直方向默认有margin值。
所以你会在别的项目里看到样式充值;就是reset.css;这里面会把所有的默认值统一或者去掉。
回到你的问题;你只要在css里申明;ul{padding:0;margin:0}就可以了本回答被网友采纳
第2个回答  2018-05-10

黄色部分是外边框(margin),它是属于ul的,和div无关。只有把ul的margin清除才会成功

第3个回答  推荐于2016-03-09
因为ul 有默认的边距,你可以在css 的头部设置
*{
margin:0;
padding:0;
}

这样就可以消除所有你所用类的默认内外边距了,如果需要的话再在个别的元素里设置。本回答被提问者采纳
第4个回答  2018-08-03
css样式加*{margin:0;padding:0}
第5个回答  2013-04-11
因为 ul标签默认有间隙,你不要的话就要加margin:0; 来去除