技巧:用CSS制作网页过程中注意长度的细节

2008-02-23 08:42:43来源:互联网 阅读 ()

新老客户大回馈,云服务器低至5折

  background-position 的值可以是长度单位,百分比,或者关键字。

  长度单位比较好理解。多少就多少,正的就正,负的就负的。而关键字的中left top就是0% center 就是50% right bottom就是100%,那百分比是怎样算的呢?

  假如是 background-position:50% 0 的话,就是容器的左上角开始的坐标(50%,0) 和背景图的左上角开始的坐标(50%,0)的位置同点处,但这样的说法好像比较不好计算。
或者换个说法比较容易理解: 容器的宽减去背景图的宽,再乘 50% ,高的计算也一样。

  比如 容器宽 1000px 背景图宽 800px:

  如果background-positionX 是50%时,就是 ( 1000px - 800px ) * 50% = 100px;

  如果background-positionX 是-50%时,就是 (1000px - 800px ) *-50% = -100px。

  又比如 容器宽 600px 背景图宽 800px :

  如果background-positionX 是 50% 时,就是 ( 600px - 800px ) * 50% = -100px;

  如果background-positionX 是 -50% 时,就是 (600px - 800px ) *-50% = 100px 。

  最后一种就会出现就算是使用负的百分比也让容器的背景图左边为空或者出现背景色,百分比真是奇妙!

  因为屏幕能显示的最小单位是1px,对于像773*50%=386.5这样带数字的长度必须有所取舍。

  IE:按四舍五入的方式计算。

  Firefox:计算后的值忽略小数部分,但会把多出的长度分配给里面的各元素。 如果只多出1px,比如2*386=772,剩下的1px会到其中一个元素,优先分配第一个元素,像773px分配给两个50%时得到的是:387px和386px,分配给四个25%时得到的是:194px、193px、193px和193px; 而对于多出几个px,如773*33.3%=257.409,773*33.33%=257.6409,由于忽略掉的小数不一样,分配的原则也不一样,找不到相关资料,以下是我的猜想,三个元素的,按四舍五入的方式分配,四舍的优先分配给两边,五入的优先分配给前边两个,对于分配给三个元素以上的,多出部分自由分配,我找不到规律,但第一个一定会分配到。

  FF还有一些奇怪的地方。Firefix测试页面。1024宽度不会自动分配,也许是因为外层也是带小数的,导致1px没分配,接着测试Firefox

  Opera & Safari2:计算时忽略百分比的小数部分,计算后的值忽略小数部分,如果里面的元素大于计算后的宽度不会导致后面的元素换行。

  Netscape & Mozilla:计算后忽略小数,多出部分有点类似Firefox,但多出部分是比透明显示,而且比较奇怪,比如33.33%*3=99.99% 小于100%,但却大于100%,奇怪的浏览器,还好使用的人不多,不用过于在意这两个浏览器。

  测试没完成,有兴趣的朋友帮忙测试,单独的测试页,有知道原因的朋友讲一下。

关键词:
【推荐给好友】【关闭】
最新五条评论
查看全部评论
评论总数 0 条
您的评论
用户名: 新注册) 密 码: 匿名:
·用户发表意见仅代表其个人意见,并且承担一切因发表内容引起的纠纷和责任
·本站管理人员有权在不通知用户的情况下删除不符合规定的评论信息或留做证据
·请客观的评价您所看到的资讯,提倡就事论事,杜绝漫骂和人身攻击等不文明行为

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:技巧:同一网页实现多种CSS 样式表切换

下一篇:技巧:解决密码框和文本框长度不一致的问题