編寫(xiě)高質(zhì)量代碼-web前端開(kāi)發(fā)修煉之道--筆記

本篇簡(jiǎn)潔記錄一下,有些值得學(xué)習(xí)的地方,方便日后記憶在辆。

1.web標(biāo)準(zhǔn)--結(jié)構(gòu)、樣式桥氏、行為 的分離

  • 結(jié)構(gòu)標(biāo)準(zhǔn)(xml、xhtml粒褒、html)
  • 樣式標(biāo)準(zhǔn)(css)
  • 行為標(biāo)準(zhǔn)(DOM识颊、ECMAScript)

2.語(yǔ)義化標(biāo)簽意義在于

  • 搜索引擎看到的只是代碼只能通過(guò)標(biāo)簽來(lái)判斷語(yǔ)義,來(lái)看當(dāng)失去樣式"css裸體日"(Web Developer可調(diào)試)奕坟,網(wǎng)絡(luò)結(jié)構(gòu)是否組織良好有序/可讀性

  • 語(yǔ)義化標(biāo)簽應(yīng)該注意:盡可能少地使用無(wú)語(yǔ)義標(biāo)簽div和span祥款; 在語(yǔ)義不明顯,既可以使用p也可以用div的地方月杉,盡量用p刃跛,因?yàn)閜默認(rèn)情況下有上下間距,去樣式后的可讀性更好苛萎,對(duì)兼容特殊終端有利桨昙;

3.組織CSS的方法

  • base.css:與具體UI無(wú)關(guān),力求精簡(jiǎn)和通用
  • common.css:提供組件級(jí)的css類(lèi)腌歉,盡可能將內(nèi)部實(shí)現(xiàn)封裝
  • page.css:高度重用的模塊有蛙酪,每個(gè)頁(yè)面都自己的page

4.CSS命名

  • 駱駝命名法: 區(qū)別不同單詞,
  • 劃線(xiàn): 表明從屬關(guān)系,推薦組合命名
  • 如果不確定模塊的上下margin特別穩(wěn)定翘盖,最好不要將它寫(xiě)到模塊的類(lèi)里桂塞,而是使用類(lèi)的組合,單獨(dú)為上下margin掛用于邊距的原子類(lèi)(如mt10馍驯,mb20).模塊最好不要混用margin-top和margin-bottom阁危,統(tǒng)一使用margin-top或margin-bottom(上下margin會(huì)重合玛痊,左右不會(huì))。

5.權(quán)重:

  • HTML標(biāo)簽權(quán)重是1
  • class的權(quán)重是10
  • id的權(quán)重是100
  • !important的權(quán)重是1000狂打。
  • 如果CSS選擇符權(quán)重相同擂煞,那么樣式會(huì)遵循就近原則(哪個(gè)選擇符最后定義,就采用哪個(gè)選擇符的樣式)
  • CSS選擇符需保證權(quán)重盡可能低趴乡。少用自選擇器对省,多添加class。

6.CSS sprite

  • 圖片翻轉(zhuǎn)技術(shù)將多張圖片合并為一張,不懂可看這里
    雪碧圖 (耗時(shí)5分鐘)

7.CSS hack

  • IE條件注釋?zhuān)籰t,gt,lte,gte
  • 選擇符前綴法晾捏;
  • 樣式屬性前綴法官辽。

8.解決超鏈接訪問(wèn)后hover樣式不出現(xiàn)的問(wèn)題

  • love hate原則,即l(link)ov(visited)e h(hover)a(active)te粟瞬。

9.haslayoutIE瀏覽器專(zhuān)有的屬性

  • 用于CSS的解析引擎,在IE下一些復(fù)雜的CSS設(shè)置解析起來(lái)會(huì)出現(xiàn)bug萤捆,
  • 其原因可能與haslayout沒(méi)有被自動(dòng)觸發(fā)有關(guān)裙品;haslayout觸發(fā)方法:設(shè)置width,height的值俗或,設(shè)置position為relative市怎,但是會(huì)有副作用;更好的解決方法:使用“zoom:1”.

10.塊級(jí)元素和行內(nèi)元素

  • 塊級(jí)元素(div,p,form,ul,ol,li)
  • 行內(nèi)元素(span,strong,em)設(shè)置width辛慰,height屬性,豎直方向邊距(內(nèi)外)無(wú)效区匠。

11.display:inline-block

  • 行內(nèi)的塊級(jí)元素,擁有塊級(jí)元素的特點(diǎn)帅腌,可以設(shè)置長(zhǎng)寬驰弄,可以設(shè)置margin和padding的值,卻不獨(dú)占一行速客,寬度并不沾滿(mǎn)父元素戚篙。
  • IE6和IE7不支持,可以通過(guò)觸發(fā)行內(nèi)元素的halayout實(shí)現(xiàn)溺职。

12.水平居中

  • 行內(nèi)元素的水平居中: text-align:center
  • 確定寬度的塊級(jí)元素的水平居中 :margin-left:auto岔擂;margin-right:auto
  • 不確定寬度的塊級(jí)元素水平居中:
    1.將ul包含在table標(biāo)簽內(nèi),對(duì)table設(shè)置margin-left:auto和margin-right:auto浪耘;
    2.改變塊級(jí)元素的display為inline類(lèi)型乱灵,然后使用text-align:center;
    3.給父元素設(shè)置float七冲,然后父元素設(shè)置position:relative 和left:50%痛倚,子元素設(shè)置position:relative和left:-50%。

13.垂直居中

  • 父元素高度不確定的文本癞埠,圖片状原,塊級(jí)元素的豎直居中:通過(guò)給父容器設(shè)置相同上下邊距實(shí)現(xiàn)聋呢。

  • 父元素高度確定的單行文本的豎直居中:通過(guò)給父元素設(shè)置line-height來(lái)實(shí)現(xiàn),line-height值和父元素的高度只相同颠区。

  • 父元素高度確定的多行文本削锰,圖片,塊級(jí)元素的豎直居中
    1.當(dāng)父元素為td或th時(shí)毕莱,可以設(shè)置vertical-align屬性
    2.對(duì)支持display:table-cell的IE8H和Firefox用display:table-cell和vertical-align:middle來(lái)實(shí)現(xiàn)居中
    3.不支持的IE6和IE7器贩,使用特定格式的hack。

14.合作控制全局變量

  • 團(tuán)隊(duì)合作中朋截,用匿名函數(shù)將腳本包起來(lái)蛹稍,可以有效控制全局變量,避免沖突隱患部服。

15.JavaScript分層

  • base層:
    1.位于底端唆姐,封裝不同瀏覽器下JavaScript的差異
    2.提供統(tǒng)一的接口,可以靠它來(lái)完成跨瀏覽器兼容的工作
    3.擴(kuò)展JavaScript語(yǔ)言底層提供的接口廓八,讓它提供更多更為易用的接口奉芦。
  • common層:
    1.中間層,依賴(lài)base層提供的接口
    2.common層提供可供復(fù)用的組件剧蹂,和頁(yè)面功能沒(méi)有直接關(guān)系
  • page層:位于頂端声功,和頁(yè)面里的具體功能需求直接相關(guān)

16.獲得DOM節(jié)點(diǎn)的三種方法

  • getElementById,
  • getElementsByTagName
  • getElementsByClassName(這個(gè)原生js沒(méi)有,類(lèi)庫(kù)有)

17.使用id的注意事項(xiàng)

  • 同一個(gè)頁(yè)面里id只能出現(xiàn)一次宠叼,所以如果你的程序需要被多處復(fù)用先巴,就一定不能使用id作為JavaScript獲得DOM節(jié)點(diǎn)的掛鉤。

  • 組件需要指定一個(gè)根節(jié)點(diǎn)冒冬,以保持每個(gè)組件之間的獨(dú)立性伸蚯。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市简烤,隨后出現(xiàn)的幾起案子朝卒,更是在濱河造成了極大的恐慌,老刑警劉巖乐埠,帶你破解...
    沈念sama閱讀 216,651評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件抗斤,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡丈咐,警方通過(guò)查閱死者的電腦和手機(jī)瑞眼,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,468評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)棵逊,“玉大人伤疙,你說(shuō)我怎么就攤上這事。” “怎么了徒像?”我有些...
    開(kāi)封第一講書(shū)人閱讀 162,931評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵黍特,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我锯蛀,道長(zhǎng)灭衷,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,218評(píng)論 1 292
  • 正文 為了忘掉前任旁涤,我火速辦了婚禮翔曲,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘劈愚。我一直安慰自己瞳遍,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,234評(píng)論 6 388
  • 文/花漫 我一把揭開(kāi)白布菌羽。 她就那樣靜靜地躺著掠械,像睡著了一般。 火紅的嫁衣襯著肌膚如雪注祖。 梳的紋絲不亂的頭發(fā)上份蝴,一...
    開(kāi)封第一講書(shū)人閱讀 51,198評(píng)論 1 299
  • 那天,我揣著相機(jī)與錄音氓轰,去河邊找鬼。 笑死浸卦,一個(gè)胖子當(dāng)著我的面吹牛署鸡,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播限嫌,決...
    沈念sama閱讀 40,084評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼靴庆,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了怒医?” 一聲冷哼從身側(cè)響起炉抒,我...
    開(kāi)封第一講書(shū)人閱讀 38,926評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎稚叹,沒(méi)想到半個(gè)月后焰薄,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,341評(píng)論 1 311
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡扒袖,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,563評(píng)論 2 333
  • 正文 我和宋清朗相戀三年塞茅,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片季率。...
    茶點(diǎn)故事閱讀 39,731評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡野瘦,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情鞭光,我是刑警寧澤吏廉,帶...
    沈念sama閱讀 35,430評(píng)論 5 343
  • 正文 年R本政府宣布,位于F島的核電站惰许,受9級(jí)特大地震影響席覆,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜啡省,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,036評(píng)論 3 326
  • 文/蒙蒙 一娜睛、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧卦睹,春花似錦畦戒、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,676評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至徐鹤,卻和暖如春垃环,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背返敬。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,829評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工遂庄, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人劲赠。 一個(gè)月前我還...
    沈念sama閱讀 47,743評(píng)論 2 368
  • 正文 我出身青樓涛目,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親凛澎。 傳聞我的和親對(duì)象是個(gè)殘疾皇子霹肝,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,629評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容

  • ?前端面試題匯總 一、HTML和CSS 21 你做的頁(yè)面在哪些流覽器測(cè)試過(guò)塑煎?這些瀏覽器的內(nèi)核分別是什么? ...
    Simon_s閱讀 2,220評(píng)論 0 8
  • 本文主要是起筆記的作用沫换,內(nèi)容來(lái)自慕課網(wǎng). 認(rèn)識(shí)CSS樣式 CSS全稱(chēng)為“層疊樣式表 (Cascading Styl...
    0o凍僵的企鵝o0閱讀 2,641評(píng)論 0 30
  • 1.CSS基本概念 1.1 CSS的定義 CSS(Cascading Style Sheets)層疊樣式表,主要用...
    寥寥十一閱讀 1,832評(píng)論 0 6
  • 本課來(lái)自http://www.imooc.com/learn/9請(qǐng)不要用作商業(yè)用途最铁。 HTML5 HTML介紹 H...
    PYLON閱讀 3,223評(píng)論 0 5
  • 什么是選擇器 每一條css樣式聲明(定義)由兩部分組成讯赏,形式如下: 在{}之前的部分就是“選擇器”,“選擇器”指明...
    小撓許閱讀 333評(píng)論 0 1