FFans
火狐狸
火狐狸
  • UID10063
  • 注册日期2005-11-25
  • 最后登录2007-04-26
  • 发帖数102
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
阅读:9215回复:10

div的头疼!!到底怎么理解?

楼主#
更多 发布于:2006-01-04 16:39
div+css,在ie和ff中经常出现不同的结果,我已经头晕,到底谁理解得对。
随便给个例子都不同:
<style>
div#left {
	float: left;
	width: 150px;
	height:100px;
	background-color: red;
}
div#right {
	background-color: lime;
	float: right;
	width: 150px;
}
div#middle {
	background-color: silver;
	width:100px;
}
</style>


<div id="left">left</div>
<div id="right">right</div>
<div id="middle">center</div>
[/code]
勿以IE为标准!
骨头鱼
小狐狸
小狐狸
  • UID58
  • 注册日期2004-11-22
  • 最后登录2006-03-05
  • 发帖数13
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
1楼#
发布于:2006-01-04 16:39
你这样写肯定出问题
哈哈
非常火狐
非常火狐
  • UID8380
  • 注册日期2005-09-03
  • 最后登录2013-06-23
  • 发帖数946
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
2楼#
发布于:2006-01-04 16:39
骨头鱼:你这样写肯定出问题回到原帖

问题在哪里?请教。
nighttalker
千年狐狸
千年狐狸
  • UID43
  • 注册日期2004-11-22
  • 最后登录2015-05-03
  • 发帖数2283
  • 经验40枚
  • 威望0点
  • 贡献值42点
  • 好评度0点
  • 社区居民
  • 忠实会员
3楼#
发布于:2006-01-04 16:39
为什么不用诸如
<div style="....">试试看呢,感觉你的做法效率不够。至于对错,等高人解答。
另外你说的不同,给截图出来看看?
目前最新版本是:Firefox 37,  请各位注意升级保证安全。
loverena
小狐狸
小狐狸
  • UID9491
  • 注册日期2005-10-28
  • 最后登录2007-05-30
  • 发帖数21
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
4楼#
发布于:2006-01-04 16:39
nighttalker
<div style="....">
回到原帖


这不是内容与形式又混在一起了么
Jacky-Q
千年狐狸
千年狐狸
  • UID6896
  • 注册日期2005-06-20
  • 最后登录2012-07-23
  • 发帖数1076
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
5楼#
发布于:2006-01-04 16:39
好像没有"float:middle"这样的方法,我能想到的就是那些top、left、right、bottom.
为了节省精力,再也不去理会发帖数少于10的人提的问题了.
old9
小狐狸
小狐狸
  • UID3405
  • 注册日期2005-02-27
  • 最后登录2006-03-03
  • 发帖数5
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
6楼#
发布于:2006-01-04 16:39
#middle定宽之后,横向宽度空余(100-150=-50)已经容不下#middle中的文字了,所以向y方向拓展,也就是Firefox里面的效果。

但是在IE里面,一旦给#middle设定宽度,就会触发IE的一个神奇属性(haslayout)从而引发出种种奇怪的bug,具体到这里就体现在#middle居然有了个左边距,大小就是#left的宽度(确切的说是宽度+3)。
所以设置#middle的宽度为100那么它会在left右面形成一个100px宽的block,而不是下方。

如果要达成统一效果,要么不设定宽度,如果一定要设定就用一些CSS hack吧针对IE做一些处理吧。

关于IE的haslayout,这篇文章不错,看看可能会理解更深刻一些:
http://www.satzansatz.de/cssd/onhavinglayout.html
另外这个是一个三列布局的例子(来自w3cn):
http://www.w3cn.org/article/layout/2004/csslayout/threebox2.html
FFans
火狐狸
火狐狸
  • UID10063
  • 注册日期2005-11-25
  • 最后登录2007-04-26
  • 发帖数102
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
7楼#
发布于:2006-01-04 16:39
old9:#middle定宽之后,横向宽度空余(100-150=-50)已经容不下#middle中的文字了,所以向y方向拓展,...
回到原帖

楼上表达so 强!看到这第一句话,我就理解了...
勿以IE为标准!
afo2000
小狐狸
小狐狸
  • UID8699
  • 注册日期2005-09-19
  • 最后登录2007-02-27
  • 发帖数5
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
8楼#
发布于:2006-01-04 16:39
看看我的网站
看看我的网站,
整站全部采用W3C标准写的!
不知对你有没有帮助?
网址:
http://www.daoku.com
guoshuang
火狐狸
火狐狸
  • UID771
  • 注册日期2004-12-11
  • 最后登录2006-12-28
  • 发帖数134
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
9楼#
发布于:2006-01-04 16:39
old9 的这个解释有意思
#middle定宽之后,横向宽度空余(100-150=-50)已经容不下#middle中的文字了,所以向y方向拓展,...
xiami2046
小狐狸
小狐狸
  • UID11380
  • 注册日期2006-02-03
  • 最后登录2006-02-03
  • 发帖数2
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
10楼#
发布于:2006-01-04 16:39
写两份吧
单独给IE写一份
!important
用这个写

比如:
margin-right:5px !important; margin-right:2px

加上了“!important”的优先级就高,会优先加载这个样式,重要的是IE不认识,所有IE就读后面的那个,这样就解决了他们之间显示的差异问题。
游客

返回顶部