BOM头导致网页无法紧贴浏览器顶部
BOM头是一个很麻烦的一串隐藏的字符,最近下载了zzcms系统进行研究,把系统安装调试完成,整个前后台都可以使用,无奈,前台页面距离浏览器总有哪么几个像素的距离,无论如何都调不到最顶端,不管是调整了 CSS 样式文件,还是 DW 里面调到顶端,预览时依然留那么几像素的空白。
经过一番的搜索,最后锁定问题并不是 CSS 样式或其它定义的问题,而是页面的问题,解决的方法是用 DW 打开 PHP 文件,快捷键 ctrl+j 打开页面属性,将属性定位到 title/encoding,这是页面编码设置的地方,我们看 unicode normalization form 这一项,这就是 BOM 头了,这里的下拉菜单不用去管,默认 None 就可以了,关键的地方就是下面的 include unicode signature(BOM) 这一项了,如果前面打着勾,就说明页面有 BOM 头隐藏的字符,我们把勾去掉即可,这样在前面再进行预览的时候就不会出现页面空白的问题了。
除了使用 DW 来解决 BOM 头文件还可以使用其他方法,例如使用 editplus 选择不带 BOM 的编码,其实质和 DW 是一样的道理。
我们再来了解一下什么是 BOM 头,在我们保存一个 UTF8 编码的文件时,有时候会插入三个不见的字符,这也就是在页面空白的情况下我们查看页面什么都看不到的原因了,这三个字符是 0xEF 0xBB 0xBF,即BOM,是一串隐藏的字符,如果不是 PHP 页面文件,这样的 UTF8 编码通常不会有什么影响,如果是PHP页面文件,就会产生很大的麻烦,例如我上面遇到的问题。
PHP并不会忽略BOM,会进行正常的读取,和引用这些隐藏的文件,会把 BOM 头作为该文件的一部分,这串字符会被直接显示出来,由此造成 top padding 的问题,也就是没办法让整个网页紧贴浏览器顶部,所以一开始的时候就会有空白行出现。
原来如此,之前找这问题找了很久,这个问题在ie浏览器下还会使整个网页错位
汗,gbk就没问题。
没遇到过 gbk 的问题.
bom头很讨厌!
虽然看不明白什么意思,但是我还是在自己电脑里保存了楼主文章
哈哈,我也曾發現這個問題,後來用NOTEPAD++
notepad++也可以解决掉么。
我也曾经遇到过啊