如何消除網頁頂部的一行空白?


昨天群里一朋友詢問網頁頂部一行空白無法去除的解決辦法。常見的解決辦法均不能解決問題。深入研究了下,總結幾點以加強記憶。
一、沒有正確使用margin設置邊距,margin指的是空白長度,用於控制容器中的內容和容器邊緣的距離。

1 <style type="text/css">
2 body{
3         padding: 0px;
4         margin: 0px;
5 }
6 </style>
二、人為疏忽,尤其在是腳本語言的源代碼里多出了一行空白,解決辦法自然是刪掉空白行就OK。

對於瀏覽器來說,源代碼里回車符都不大會解釋輸出,但是偶爾也會出現源代碼里的回車造成顯示頁面也換行的問題(linux和windows的回車符在文件編碼中不同),這個問題就要注意一下代碼的規范性。

 

三、編碼問題。 類似WINDOWS自帶的記事本等軟件,在保存一個以UTF-8編碼的文件時,會在文件開始的地方插入三個不可見的字符(_0xEF _0xBB _0xBF,即BOM——Byte Order Mark)。它是一串隱藏的字符,用於讓記事本等編輯器識別這個文件是否以UTF-8編碼。對於一般的文件,這樣並不會產生什么麻煩。但對於 PHP來說,PHP在設計時就沒有考慮BOM的問題,不會忽略UTF-8編碼的文件開頭BOM的那三個字符,會把BOM作為該文件開頭正文的一部分。 由於 必須在<?或者<?php后面的代碼才會作為PHP代碼執行,所以將會造成在頁面上輸出這三個字符,顯示效果就要看瀏覽器了,一般是一個空行 或是一個亂碼。由於在html一開頭有這3個字符的存在,即使頁面的 top padding 設置為0,也無法讓整個網頁緊貼瀏覽器頂部。此問題除了能使網頁莫名出現一行空白外 ,由於受COOKIE送出機制的限制,在這些文件開頭已經有BOM的文件中,COOKIE無法送出(因為在 COOKIE送出前PHP已經送出了文件頭),所以登入和登出功能失效。一切依賴COOKIE、SESSION實現的功能全部無效。 解決辦法: 在編輯、更改任何文本文件時,請務必使用不會亂加BOM的編輯器。Linux下的編輯器應該都沒有這個問題。WINDOWS下,請勿使用記事本等編輯器。推薦的編輯器是: Editplus 2.12版本以上; EmEditor; UltraEdit(需要取消‘添加BOM’的相關選項); Dreamweaver(需要取消‘添加BOM’的相關選項); Notepad(需要進行“轉換為不帶BOM的UTF-8”)等。 對於已經添加了BOM的文件,要取消的話,可以用以上編輯器另存一次。(Editplus需要先另存為gb,再另存為UTF-8。)

 

四、js代碼的影響 。在網頁中一些廣告引入js或者某些輸出內容的js代碼,可能引起網頁頂部空白的問題。解決辦法就是采用輪流去掉js的方法找出有問題的js代碼,然后修改。

 

五、特殊字符的影響。 復制粘貼文本(尤其從Word粘貼)時可能有一些特殊的字符造成瀏覽器顯示出錯,例如版權符,在HTML代碼里應該使用 &copy; 來顯示,如果直接在源代碼粘貼這個符號,就會出問題,同樣的問題還會有空格符等等。

 

六、腳本語言函數存在的問題 。可能是程序里哪個函數哪個類無意中輸出的錯誤,這個錯誤要檢查一下代碼。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM