娛樂(lè)首頁(yè)改版總結(jié)

一、遇到的問(wèn)題和學(xué)到的東西

這次娛樂(lè)首頁(yè)遇到了太多的問(wèn)題,試著回憶一下:

1、 最頭疼的是編碼問(wèn)題,新系統(tǒng)是 utf-8 編碼格式,引用之前 gbk 編碼的 css 和 js 文件時(shí),容易出現(xiàn)各種問(wèn)題:

1)頁(yè)面中文亂碼;

2)若 js 包含亂碼的中文, ie6 會(huì)有莫名其妙的報(bào)錯(cuò),一般是提示“缺少 } ”、“缺少 : ”、“缺少 ; ”之類的,而且通常是報(bào)錯(cuò)在 html 里面;

3)css 中的亂碼中文,不僅僅導(dǎo)致樣式錯(cuò)誤,有時(shí)候還會(huì)導(dǎo)致 js 報(bào)錯(cuò)。

避免亂碼要養(yǎng)成好習(xí)慣:

1)不管在什么地方引用 js ,都要設(shè)置 charset ,而不是跟隨 html 的編碼;

2)js 文件中最好不要有中文,若不可避免,要盡可能將中文進(jìn)行 unicode 轉(zhuǎn)義(附上傳送門(mén):http://www.guabu.com/zhuanma/ );

3)顯式的設(shè)置頁(yè)面 charset ,不要讓瀏覽器自動(dòng)識(shí)別編碼,避免一些“傻傻分不清”的瀏覽器;

4)尤其需要注意的地方,是 js 文件里面動(dòng)態(tài)加載了其他 js ,若后者也是 gbk ,同樣需要設(shè)置 charset。

2、dom 及 css 規(guī)范的問(wèn)題。由于從事前端時(shí)間不長(zhǎng),很多規(guī)范性知識(shí)積累不夠(我ciao,吐槽一下,如果不是為了兼容 ie6\7\8 和一些國(guó)產(chǎn)奇葩瀏覽器,也不會(huì)存在這個(gè)問(wèn)題,所以嚴(yán)格來(lái)說(shuō)是那些瀏覽器不按套路出牌,而不是我書(shū)寫(xiě)不夠規(guī)范,也可以說(shuō)是兼容性問(wèn)題)。問(wèn)題如下:

1)當(dāng) a 標(biāo)簽中嵌套塊級(jí)元素,且該塊級(jí)元素包含一個(gè) img 標(biāo)簽時(shí),在 ie6\7 中,圖片的鏈接會(huì)失效;

2)向右浮動(dòng)塊級(jí)元素中的子元素,在 ie6\7 中,該子元素會(huì)被他前面的元素或文本擠掉下來(lái),而不是完全脫離文檔流、頂?shù)阶钌戏剑?/p>

3)在設(shè)置 z-index 時(shí)候,ie6\7 中子元素的 z-index 受到父級(jí)元素的 position 限制,若不設(shè)置父級(jí)元素的 position: relative ,該子元素會(huì)被父元素的兄弟元素遮擋;

4)display: inline-block 的使用。之前一直覺(jué)得這是個(gè)很好的屬性,現(xiàn)在感覺(jué)還是少用,首先 ie6 支持的不夠完善,其次,dom 中被加了這個(gè)屬性的元素之間若有換行,會(huì)在頁(yè)面上顯示一個(gè)空格的距離,甚至瀏覽器不同,這個(gè)距離也會(huì)發(fā)生變化;

5)在給 a 標(biāo)簽制定 class 的時(shí)候,最好只寫(xiě)針對(duì)行內(nèi)元素的樣式,比如字體、顏色、左右 padding 、左右 margin 等等,若將 a 標(biāo)簽設(shè)置為了塊級(jí)元素,會(huì)導(dǎo)致 a 該 class 復(fù)用性降低;

為了更靠譜,針對(duì)上面問(wèn)題,需要注意一些地方:

1)行內(nèi)元素不要嵌套塊級(jí)元素,雖然 chrome 等瀏覽器是可以在 a 標(biāo)簽中放 div 的,但是為了兼容 ie 標(biāo)準(zhǔn)的瀏覽器,還是把 a 標(biāo)簽放到 div 里面比較靠譜,條件允許的時(shí)候可以將一個(gè) a 標(biāo)簽分成多個(gè);

2)為了兼容 ie6\7 ,塊級(jí)元素內(nèi)向右浮動(dòng)的子元素要寫(xiě)到最前面,或者把其他元素向左浮動(dòng);

3)z-index 在 ie6\7 中特別蛋疼,一定要記得給需要設(shè)置 z-index 元素的父元素們加上 position: relative ,必要時(shí)候還要加上 z-index ;

4)少用 inline-block ,菜單導(dǎo)航等橫向排列的列表,用 float 方式替代,但是需要注意 ie6 左右 margin 距離乘 2 的 bug;

5)a 標(biāo)簽的 class 不要涉及 a 的元素類型(或者干脆設(shè)置兩類 a 標(biāo)簽的 class ,一類是行內(nèi)元素的 class ,一類是 塊級(jí)元素的 class ,并加上前綴加以區(qū)分),而是給 a 標(biāo)簽的外層元素設(shè)置樣式。

還有另外一些需要注意的地方:

1)給頁(yè)面設(shè)置 meta ,讓 ipad 中保留左右側(cè)留白:

? ? ? ??<meta?name="viewport"?content="width=1024" />

2)為了讓那些雙核瀏覽器默認(rèn)以 webkit 模式瀏覽,可以在添加 meta:

? ? ? ??<meta name="renderer" content="webkit" />?

3)為了讓 ie 瀏覽器起用最高版本瀏覽網(wǎng)頁(yè),添加 meta:

? ? ? ? <meta http-equiv="X-UA-Compatible" content="IE=edge" />?

3、再總結(jié)一下小技巧啥的

1)回調(diào)函數(shù)是個(gè)好東西,在以后 coding 的時(shí)候,注意給回調(diào)函數(shù)留出位置;

2)行內(nèi)元素的上下 padding 雖然不會(huì)增加容器的高度,也不會(huì)撐開(kāi)外層容器,但是可以加高該行內(nèi)元素背景圖的可視范圍;

二、項(xiàng)目管理上獲得的經(jīng)驗(yàn)

三、流程上的經(jīng)驗(yàn)


更新中 ...

..... 好像 忘記這回事了 。。。擦了、。。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 問(wèn)答題47 /72 常見(jiàn)瀏覽器兼容性問(wèn)題與解決方案? 參考答案 (1)瀏覽器兼容問(wèn)題一:不同瀏覽器的標(biāo)簽?zāi)J(rèn)的外補(bǔ)...
    _Yfling閱讀 14,180評(píng)論 1 92
  • 一:在制作一個(gè)Web應(yīng)用或Web站點(diǎn)的過(guò)程中,你是如何考慮他的UI、安全性、高性能、SEO、可維護(hù)性以及技術(shù)因素的...
    Arno_z閱讀 1,369評(píng)論 0 1
  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,680評(píng)論 19 139
  • ?前端面試題匯總 一、HTML和CSS 21 你做的頁(yè)面在哪些流覽器測(cè)試過(guò)?這些瀏覽器的內(nèi)核分別是什么? ...
    Simon_s閱讀 2,387評(píng)論 0 8
  • 1.有如下代碼,解釋Person、 prototype、proto、p、constructor之間的關(guān)聯(lián)。 pro...
    泰格_R閱讀 476評(píng)論 0 0

友情鏈接更多精彩內(nèi)容