本文想說的警惕點(diǎn)與瀏覽器兼容無關(guān),主要是幾個本人在項(xiàng)目中遇到的幾個小問題的總結(jié),問題雖小,但是卻有時很困擾人,在此記錄一下,如果后期有此類問題會持續(xù)添加到這里。
1.內(nèi)聯(lián)標(biāo)簽之間的空格
正常情況下書寫html代碼的時候都有換行、縮進(jìn)等習(xí)慣,比如
XML/HTML Code復(fù)制內(nèi)容到剪貼板
- <head>
- <meta charset="utf-8">
- <style>
- html,body, div, 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 > div{
- width: 50px;
- height: 50px;
- display: inline-block;
- background-color: #f00;
- }
- </style>
-
- </head>
- <body>
- <div id="myDIV">
- <div>div1</div>
- <div>div2</div>
- </div>
- </body>
顯示效果為
中間有一個空白。原因是如果兩個內(nèi)聯(lián)標(biāo)簽(或者設(shè)置display:inline或inline-block)之間有連續(xù)的空格符、回車符、換行符,則會這些符號會被默認(rèn)處理為一個空格符號。
比如我們在兩個div標(biāo)簽之內(nèi)加入" ddd dd d ",效果如下,無論有多少個相連的空白符號,最終呈現(xiàn)的效果都只有一個空格符
這個和在內(nèi)聯(lián)元素中直接寫入字符類似
但是內(nèi)聯(lián)元素會去掉頭部和尾部的空白字符。
所以需要提示的是:
內(nèi)聯(lián)元素排列時如果需要避免標(biāo)簽之間的空白則需要使標(biāo)簽緊密相連。
內(nèi)聯(lián)元素要填寫內(nèi)容時盡量使用.innerText或.textContent(Firefox不支持innerText,但是支持該屬性)。
非要在html代碼中寫入空白,請使用html的空格表示方法
說道這里,我想有些人對內(nèi)聯(lián)元素理解有偏差。所謂內(nèi)聯(lián)是和所謂的“塊”對立的。內(nèi)聯(lián)元素不成塊的,感覺就像水流一樣,遇到阻礙就環(huán)繞而行。比如源碼
XML/HTML Code復(fù)制內(nèi)容到剪貼板
- <div id="myDIV">
- <div>div1</div> ddd dd d <div>div2</div>
- <span> d dd d </span>
- </div>
顯示效果
span里面的內(nèi)容被分成了兩段,不是一個完整的塊了。
2.body標(biāo)簽?zāi)J(rèn)的margin邊框
這個沒有什么說的,現(xiàn)代瀏覽器(支持CSS3)和IE8的body都默認(rèn)了一個css樣式margin:8px。其他有的標(biāo)簽也是有這樣的,這里不舉例了。很多時候我們都不需要,需要一般的項(xiàng)目樣式開頭都有一個類似的設(shè)置。
XML/HTML Code復(fù)制內(nèi)容到剪貼板
- html,body, div, 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.特殊空白字符導(dǎo)致顯示異常
舉個例子,下面的源碼中看似沒有問題
XML/HTML Code復(fù)制內(nèi)容到剪貼板
- <!DOCTYPE html>
- <html>
- <head>
- <meta charset="utf-8">
- <style>
- html,body, div, 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>
- <div class="tabbable" id="tabs" style="border:none;">
-
- <div id="myDIV" style="">
- <a data-toggle="tab" href="#tab-content-0" >test0</a>
- </div>
- </div>
- </body>
- </html>
實(shí)際上a標(biāo)簽前面的有一個非正常的的空白字符,顯示效果如下
a的寬度和#myDIV的寬度應(yīng)該是相同的,且a是浮動,顯示效果卻換行了,這也太讓人抓狂了,有么有。
正常的顯示效果是
我們來看一下這個非正常的空白是啥。
第一個是非正常的空格,其URI組件編碼為"%E3%80%80"
第二個是正常的空格,其URI組件編碼為"%20"
第三個是正常的Tab建,其URI組件編碼為"%20%20%20%20",實(shí)際上就是4個空格。
看出來了吧。所以有的時候再網(wǎng)站中拷貝的代碼運(yùn)行效果異??赡芫褪沁@個原因?qū)е碌摹?/span>
未完待續(xù),后期如果想到其他的點(diǎn)補(bǔ)上。也希望童鞋們提一些相關(guān)的點(diǎn),本人一定補(bǔ)上。
以上這篇html/css基礎(chǔ)篇——html代碼編寫過程中的幾個警惕點(diǎn)(必看)就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
原文地址:http://www.cnblogs.com/chuaWeb/p/5053644.html