這次帶給大家html程式碼在寫過程中的一定要注意的三點,寫html程式碼的注意事項有哪些,以下就是實戰案例,一起來看一下。
本文想說的警惕點與瀏覽器相容無關,主要是幾個本人在專案中遇到的幾個小問題的總結,問題雖小,但是卻有時很困擾人,在此記錄一下,如果後期有此類問題會持續添加到這裡。
1.內嵌標籤之間的空格
正常情況下書寫html程式碼的時候都有換行、縮排等習慣,例如
<head> <meta charset="utf-8"> <style> html,body, p, dl, dt, dd, ul, ol, li, h1, h2, h3, h4, h5, h6, pre, code, form, fieldset, legend, input, button, textarea, p, blockquote, th, td{ margin: 0; padding:0; } #myDIV { width: 200px; height: 200px; background-color: #ff0; } #myDIV > p{ width: 50px; height: 50px; display: inline-block; background-color: #f00; } </style> </head> <body> <p id="myDIV"> <p>p1</p> <p>p2</p> </p> </body>
中間有一個空白。原因是如果兩個內聯標籤(或設定display:inline或inline-block)之間有連續的空格符、回車符、換行符,則會這些符號會被預設為一個空格符號。
比如我們在兩個p標籤之內加入" ddd dd d ",效果如下,無論有多少個相連的空白符號,最終呈現的效果都只有一個空格符
但內聯元素會去除頭部和尾部的空白字元。
所以需要提示的是:
內嵌元素排列時如果需要避免標籤之間的空白則需要使標籤緊密相連。
內聯元素要填寫內容時盡量使用.innerText或.textContent(Firefox不支援innerText,但是支援該屬性)。
非要在html程式碼中寫入空白,請使用html的空格表示方法
說這裡,我想有些人對內嵌元素理解有偏差。所謂內聯是和所謂的「塊」對立的。內聯元素不成塊的,感覺就像水流一樣,遇到阻礙就環繞而行。例如原始碼
<p id="myDIV"> <p>p1</p> ddd dd d <p>p2</p> <span> d dd d </span> </p>
span裡面的內容被分成了兩段,不是一個完整的區塊了。
2.body標籤預設的margin邊框
這個沒什麼說的,現代瀏覽器(支援CSS3)和IE8的body都預設了一個css樣式margin:8px。其他有的標籤也是有這樣的,這裡不舉例了。很多時候我們都不需要,需要一般的項目樣式開頭都有一個類似的設定。
html,body, p, dl, dt, dd, ul, ol, li, h1, h2, h3, h4, h5, h6, pre, code, form, fieldset, legend, input, button, textarea, p, blockquote, th, td{ margin: 0; padding:0; }
3.特殊空白字元導致顯示異常
舉個例子,下面的源碼中看似沒有問題
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <style> html,body, p, dl, dt, dd, ul, ol, li, h1, h2, h3, h4, h5, h6, pre, code, form, fieldset, legend, input, button, textarea, p, blockquote, th, td{ margin: 0; padding:0; } *{ -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; } #myDIV { width: 200px; height: 40px; background-color: #ff0; } #myDIV a{ float: left; width: 200px; background-color: #f00; } </style> </head> <body> <p class="tabbable" id="tabs" style="border:none;"> <!-- 页面标签列表 --> <p id="myDIV" style=""> <a data-toggle="tab" href="#tab-content-0" >test0</a> </p> </p> </body> </html>
實際上a標籤前面的有一個非正常的的空白字元
a的寬度和#myDIV的寬度應該是相同的,且a是浮動,顯示效果卻換行了,這也太讓人抓狂了,有麼有。
正常的顯示效果是
我們來看這個非正常的空白是啥。
第一個是非正常的空格,其URI元件編碼為"%E3%80%80"
第二個是正常的空格,其URI組件編碼為"%20"
第三個是正常的Tab建,其URI組件編碼為"%20%20%20%20",實際上就是4個空格。
看出來了吧。所以有的時候再網站中拷貝的程式碼運作效果異常可能就是這個原因導致的。
相信看了這些案例你已經掌握了方法,更多精彩請關注php中文網其它相關文章!
相關閱讀:
以上是html程式碼在編寫過程中的一定要注意的三點的詳細內容。更多資訊請關注PHP中文網其他相關文章!