热搜词
发表于 2012-4-20 13:53:54 | 显示全部楼层 |阅读模式
今天发现网页上方多了一行空白区域,然后就找了一下,发现是UTF-8的编码文件问题,保存UTF-8的时候,系统会默认在文件的开始地方插入BOM(三个不可见字符:0xEF 0xBB 0xBF)。它是一串隐藏的字符,用于给记事本等编辑器识别这个文件是否UTF-8编码。


对于一般软件来说这几个编码确实没什么问题,但是对于PHP网页来说,这个BOM是个累赘麻烦的东西,因为它会让网页的顶部产生一行空白区域。


解除办法两种:
1.用BODY标签的margin-top属性,使得网页自动向前缩进15px或16px;
2.在编辑器中(如notepad)储存的时候转换为不带BOM的UTF-8。


推荐的编辑器:Editplus 2.12版本以上; EmEditor; UltraEdit(需要取消‘添加BOM’的相关选项); Dreamweaver(需要取消‘添加BOM’的相关选项); Notepad(需要进行“转换为不带BOM的UTF-8”)等。


第一种方法其实不大好,没有从根本上解决问题。因为COOKIE的送出机制也会有限制。在这些开头有BOM的文件中,在COOKIE送出钱PHP已经送出了头文件,COOKIE无法送出,所以登入和登出功能都会导致失败,一切依赖COOKIE、SESSION实现的功能都将无效。所以最好还是用第二种方法。




另外顶部空白还有一个很2的原因,如果在首页部分有字体,字体有行间距,行间距有可能会引起顶部空白的出现。所以CSS那边要写好。
全部评论0
回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|Archiver|手机版|小黑屋|管理员之家 ( 苏ICP备2023053177号-2 )

GMT+8, 2024-12-29 03:30 , Processed in 0.164834 second(s), 22 queries .

Powered by Discuz! X3.5

Cpoyright © 2001-2024 Discuz! Team