两个div并排,为各占50%宽度,为何错开??

yuxh81 2010-07-06 06:15:14
<div style="float:left;width:100%;">
<div style="width:50%; float:left;"></div>
<div style="width:50%; float:right;"></div>
</div>

我以前不爱思考,故将其中一个改成49%就可以了
现在想问,那个1%到底谁占去了呢?

大家都是怎么做的?谢谢!
...全文
1197 14 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
yuxh81 2010-07-08
  • 打赏
  • 举报
回复
感谢各位的回答!

简单总结一下:

1:错开的主要还是IE的原因(IE6,IE7均有此问题,其它版本未测)
因为margin,padding,border都设为0,所以与之无关
在FF下显示正常(其它浏览器未测)
2:注意,margin,padding,border是会占用当前元素以外的空间,而并非其本身的空间

个人感觉FF是比较标准的,毕竟绝大多数情况都是FF可以而IE不行!

---------------------------------------------------------------------------------------
所以我选择的解决方案是在右面的div加上:margin-left:-3px;
至于使用49%,其实也可以,不过两个div会存在一定的间距,而且会随着父级div的大小而缩放




a6711145 2010-07-07
  • 打赏
  • 举报
回复
[Quote=引用楼主 yuxh81 的回复:]

现在想问,那个1%到底谁占去了呢?

[/Quote]

margin 和 边框线 占去了
jianshao810 2010-07-07
  • 打赏
  • 举报
回复
弄小点。。
*{ margin: 0; padding: 0; border: 0; } 边框也是占位置的,还有内外间距

zlcqupt 2010-07-07
  • 打赏
  • 举报
回复



hoojo 2010-07-07
  • 打赏
  • 举报
回复

*{
margin: 0;
padding: 0;
border: 0;
}
边框也是占位置的,还有内外间距
mykelly6 2010-07-07
  • 打赏
  • 举报
回复
浏览器默认的margin是不一样的,IE6下面浮动元素的margin有双倍的BUG,
浏览器的width值是否包含了border各个浏览器也是不一样的,LZ可以自己在每个浏览器都试试啊。
chainhou 2010-07-07
  • 打赏
  • 举报
回复
边框的一像素也算了吧
mybenben02 2010-07-07
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 jianshao810 的回复:]

弄小点。。
*{ margin: 0; padding: 0; border: 0; } 边框也是占位置的,还有内外间距
[/Quote]
正解
superman1986 2010-07-06
  • 打赏
  • 举报
回复
FF 和 IE对div宽度的计算是不一样的。。
好像IE里不计算margin padding border 这些东西。。。
woshiguotao 2010-07-06
  • 打赏
  • 举报
回复
1.浏览器兼容问题,不同的浏览器简析出来的布局是有偏差的(有时候在IE下正确在FF不正确,反之亦然啊)。在VS开发环境下,和IE与FF是一样的道理毕竟都是微软开发的东西,用的是相同的内核。
2.目前在IE6+的浏览器以及FF下DIV变宽算在DIV(width)之外。
yuxh81 2010-07-06
  • 打赏
  • 举报
回复
谢谢几位的回答!

我有两个疑问:
如果是IE有问题--(当然同样的代码放到FF下运行是正常的,但这也不能说明IE有问题,因为很多情况IE可以FF却不行),
那为什么在开发环境(vs)下也会显示错位?难道开发环境有问题?


还有一个疑问(这个可能有点偏题了啊),加了1个像素的边框,情况却出现了变化,连FF也错位了!
难道边框不属于div本身?

bhbhxy 2010-07-06
  • 打赏
  • 举报
回复
IE6的bug,最好还是设成49%,但这并不是慢移3像素的问题
bennman 2010-07-06
  • 打赏
  • 举报
回复
我懂你的问题了 你的应该是在IE6下 两个DIV会成两行 这是因为 3px的BUG
只用 将右边的DIV <div style="width:50%; float:right; margin-left:-3px;"></div>
Gondon 2010-07-06
  • 打赏
  • 举报
回复
<div style="float:left;width:100%;">
<div style="width:50%; float:left;"></div>
<div style="width:50%; float:left;"></div>
</div>
改成这样试试

61,128

社区成员

发帖
与我相关
我的任务
社区描述
层叠样式表(英文全称:Cascading Style Sheets)是一种用来表现HTML(标准通用标记语言的一个应用)或XML(标准通用标记语言的一个子集)等文件样式的计算机语言。
社区管理员
  • HTML(CSS)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧