A-A+

BOM头导致网页无法紧贴浏览器顶部

2014年08月01日 PHP技术文章 评论 8 条 阅读 270 views 次

BOM头是一个很麻烦的一串隐藏的字符,最近下载了zzcms系统进行研究,把系统安装调试完成,整个前后台都可以使用,无奈,前台页面距离浏览器总有哪么几个像素的距离,无论如何都调不到最顶端,不管是调整了 CSS 样式文件,还是 DW 里面调到顶端,预览时依然留那么几像素的空白。

经过一番的搜索,最后锁定问题并不是 CSS 样式或其它定义的问题,而是页面的问题,解决的方法是用 DW 打开 PHP 文件,快捷键 ctrl+j 打开页面属性,将属性定位到 title/encoding,这是页面编码设置的地方,我们看 unicode normalization form 这一项,这就是 BOM 头了,这里的下拉菜单不用去管,默认 None 就可以了,关键的地方就是下面的 include unicode signature(BOM) 这一项了,如果前面打着勾,就说明页面有 BOM 头隐藏的字符,我们把勾去掉即可,这样在前面再进行预览的时候就不会出现页面空白的问题了。

1

除了使用 DW 来解决 BOM 头文件还可以使用其他方法,例如使用 editplus 选择不带 BOM 的编码,其实质和 DW 是一样的道理。

我们再来了解一下什么是 BOM 头,在我们保存一个 UTF8 编码的文件时,有时候会插入三个不见的字符,这也就是在页面空白的情况下我们查看页面什么都看不到的原因了,这三个字符是 0xEF 0xBB 0xBF,即BOM,是一串隐藏的字符,如果不是 PHP 页面文件,这样的 UTF8 编码通常不会有什么影响,如果是PHP页面文件,就会产生很大的麻烦,例如我上面遇到的问题。

PHP并不会忽略BOM,会进行正常的读取,和引用这些隐藏的文件,会把 BOM 头作为该文件的一部分,这串字符会被直接显示出来,由此造成 top padding 的问题,也就是没办法让整个网页紧贴浏览器顶部,所以一开始的时候就会有空白行出现。

标签:

8 条留言  访客:8 条  博主:0 条

  1. 百家网络博客

    原来如此,之前找这问题找了很久,这个问题在ie浏览器下还会使整个网页错位

  2. vfhky

    汗,gbk就没问题。

    • smiling

      没遇到过 gbk 的问题.

  3. PHP二次开发

    bom头很讨厌!

  4. 塔式起重机

    虽然看不明白什么意思,但是我还是在自己电脑里保存了楼主文章

  5. 听风客栈

    哈哈,我也曾發現這個問題,後來用NOTEPAD++

    • smiling

      notepad++也可以解决掉么。

  6. 百家争鸣

    我也曾经遇到过啊

给我留言