Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 天天玩天天干,国产zzzwww在线观看视频,九九九九精品视频在线播放

          整合營(yíng)銷服務(wù)商

          電腦端+手機(jī)端+微信端=數(shù)據(jù)同步管理

          免費(fèi)咨詢熱線:

          深度學(xué)習(xí)自動(dòng)前端開(kāi)發(fā):從草圖到HTML只需5秒

          人們的不斷探索下,「使用人工智能自動(dòng)生成網(wǎng)頁(yè)」的方法已經(jīng)變得越來(lái)越接近實(shí)用化了。本文介紹的這種名為 SketchCode 的卷積神經(jīng)網(wǎng)絡(luò)能夠把網(wǎng)站圖形用戶界面的設(shè)計(jì)草圖直接轉(zhuǎn)譯成代碼行,為前端開(kāi)發(fā)者們分擔(dān)部分設(shè)計(jì)流程。目前,該模型在訓(xùn)練后的 BLEU 得分已達(dá) 0.76。

          你可以在 GitHub 上找到這個(gè)項(xiàng)目的代碼:https://github.com/ashnkumar/sketch-code

          為用戶創(chuàng)造直觀、富有吸引力的網(wǎng)站是各家公司的重要目標(biāo),而且這是個(gè)快速進(jìn)行原型、設(shè)計(jì)、用戶測(cè)試循環(huán)的過(guò)程。像 Facebook 這樣的大公司有著讓整個(gè)團(tuán)隊(duì)專注于設(shè)計(jì)流程的人力,改動(dòng)可能需要幾周的時(shí)間,并涉及到多種利益相關(guān)者;而小型企業(yè)就沒(méi)有這樣的資源,因此其用戶界面可能受到一些影響。

          我在 Insight 當(dāng)中的目標(biāo)是使用現(xiàn)代深度學(xué)習(xí)算法大大簡(jiǎn)化設(shè)計(jì)工作流程,并使得任何規(guī)模的公司都能快速地創(chuàng)造并測(cè)試網(wǎng)頁(yè)。

          現(xiàn)有的設(shè)計(jì)工作流程

          現(xiàn)有工作流程涉及多個(gè)利益相關(guān)者

          一個(gè)典型的設(shè)計(jì)工作流程如下所示:

          • 產(chǎn)品經(jīng)理進(jìn)行用戶研究,從而制定技術(shù)參數(shù)表

          • 設(shè)計(jì)人員將接受這些要求并嘗試創(chuàng)建低保真原型,最終創(chuàng)建高保真原型

          • 工程師將這些設(shè)計(jì)轉(zhuǎn)化為代碼并最終將產(chǎn)品交付給用戶

          開(kāi)發(fā)周期的時(shí)間長(zhǎng)度很快就會(huì)變成瓶頸,像 Airbnb 這樣的公司已經(jīng)開(kāi)始使用機(jī)器學(xué)習(xí)來(lái)提高這個(gè)過(guò)程的效率了。(參見(jiàn):https://airbnb.design/sketching-interfaces/)

          Airbnb 內(nèi)部 AI 工具演示:從草圖到代碼

          雖然這種工具很有希望成為機(jī)器輔助設(shè)計(jì)的例子,但是尚不清楚這種模型在端到端的情況下能完全訓(xùn)練到什么程度,也不清楚它在多大程度上依賴于手工制作的圖像特征。這肯定是無(wú)法知道的,因?yàn)樗壳斑€是 Airbnb 專有的非開(kāi)源方案。我想創(chuàng)造一個(gè)「從繪圖到代碼」技術(shù)的開(kāi)源版本,可供更多開(kāi)發(fā)者和設(shè)計(jì)者使用。

          理想情況下,我的模型可以采用簡(jiǎn)單的網(wǎng)站設(shè)計(jì)手繪原型,并立即從該圖像生成一個(gè)可用的 HTML 網(wǎng)站:

          SketchCode 模型需要繪制好的網(wǎng)站線框圖并能生成 HTML 代碼

          實(shí)際上,上面的例子是一個(gè)從我模型測(cè)試集圖像生成的實(shí)際網(wǎng)站!你可以在我的 Github 頁(yè)面中查看它:https://github.com/ashnkumar/sketch-code

          從圖像標(biāo)注中獲取靈感

          我正在解決的問(wèn)題屬于程序綜合(https://en.wikipedia.org/wiki/Program_synthesis)這個(gè)廣義任務(wù)范疇,即工作源代碼的自動(dòng)生成。盡管很多程序綜合能處理從自然語(yǔ)言要求或執(zhí)行軌跡所生成的代碼,但在我這個(gè)案例中,我可以從一個(gè)源圖像(手繪線框圖)開(kāi)始,自動(dòng)獲得想要的代碼。

          機(jī)器學(xué)習(xí)領(lǐng)域中,有一個(gè)名為圖像字幕生成的領(lǐng)域(https://cs.stanford.edu/people/karpathy/deepimagesent/),該領(lǐng)域有著充分的研究,旨在學(xué)習(xí)將圖像和文本相連的模型,特別是生成關(guān)于源圖片內(nèi)容的描述。

          圖像標(biāo)注模型生成源圖片的描述

          我從最近一篇名為 pix2code 的論文和 Emil Wallner 使用該方法的一個(gè)相關(guān)項(xiàng)目獲得了靈感(參見(jiàn):前端慌不慌?用深度學(xué)習(xí)自動(dòng)生成 HTML 代碼),并決定將我的任務(wù)重構(gòu)成圖像字幕生成問(wèn)題的一部分,即將線框圖作為輸入圖像,將對(duì)應(yīng)的 HTML 代碼作為輸出文本。

          獲取正確的數(shù)據(jù)集

          考慮到圖像標(biāo)注的方法,我心中理想的訓(xùn)練數(shù)據(jù)集是成千上萬(wàn)對(duì)手繪線框圖和它們 HTML 代碼的等價(jià)物。不出所料,我無(wú)法找到這種數(shù)據(jù)集,因此我不得不為該任務(wù)創(chuàng)建自己的數(shù)據(jù)。

          我從 pix2code 論文中提到的一個(gè)開(kāi)源數(shù)據(jù)集(https://github.com/tonybeltramelli/pix2code)入手,它由 1750 張人工生成的網(wǎng)頁(yè)截圖和其對(duì)應(yīng)源代碼構(gòu)成。

          pix2code 中生成的網(wǎng)站圖像及其源代碼數(shù)據(jù)集

          這個(gè)數(shù)據(jù)集對(duì)我而言是個(gè)很好的開(kāi)始,其中有一些有趣的地方:

          • 數(shù)據(jù)集中每個(gè)生成的網(wǎng)站都包含幾個(gè)簡(jiǎn)單的 Bootstrap 元素例如按鈕、文本框和 DIV。雖然這意味著我的模型將會(huì)因把這幾個(gè)元素作為「詞匯」(模型可選擇用于生成網(wǎng)站的元素)而受限制,這種方法應(yīng)該很容易推廣到更大的元素詞匯表中。

          • 每個(gè)示例的源代碼包含領(lǐng)域?qū)S谜Z(yǔ)言(DSL)的標(biāo)記,這些符號(hào)是由論文作者創(chuàng)建的。每個(gè)標(biāo)記對(duì)應(yīng)于 HTML 和 CSS 的片段,且有一個(gè)編譯器將 DSL 轉(zhuǎn)化為工作使用的 HTML 代碼。

          讓圖片更像手繪的

          將網(wǎng)站的多彩主題切換成手寫主題。

          為了調(diào)整數(shù)據(jù)集以適應(yīng)我的任務(wù),我得把網(wǎng)站的圖片弄得像是手繪的。對(duì)圖片的手繪化都得益于 OpenCV 和 PIL library 的灰度轉(zhuǎn)換和輪廓檢測(cè)功能。

          最終,我決定直接通過(guò)一系列操作來(lái)直接修改原網(wǎng)站的 CSS 樣式表:

          • 通過(guò)改變頁(yè)面元素的邊框半徑實(shí)現(xiàn)按鈕和 div 的圓潤(rùn)化

          • 調(diào)整邊框的粗細(xì)以模仿手繪素描,并添加陰影

          • 將字體改為類手寫字體

          我的最終版本又增加了一個(gè)步驟,通過(guò)加入傾斜,偏移和旋轉(zhuǎn)來(lái)進(jìn)行數(shù)據(jù)增強(qiáng),以模仿實(shí)際繪制的素描的不確定性。

          使用圖像標(biāo)注模型架構(gòu)

          現(xiàn)在我已經(jīng)準(zhǔn)備好我的數(shù)據(jù)了,我可以把它輸入模型進(jìn)行訓(xùn)練了!

          我用的這個(gè)用于圖像標(biāo)注的模型包括三個(gè)主要部分:

          • 一個(gè)卷積神經(jīng)網(wǎng)路(CNN)視覺(jué)模型用于提取源圖片特征

          • 一種由編碼源代碼標(biāo)記序列的門控循環(huán)單元(GRU)組成的語(yǔ)言模型

          • 一個(gè)解碼器模型(也是一個(gè) GRU),它以前兩個(gè)步的輸出作為輸入,預(yù)測(cè)序列中的下一個(gè)標(biāo)記

          使用標(biāo)記序列作為輸入來(lái)訓(xùn)練模型

          為了訓(xùn)練這個(gè)模型,我把源代碼分成標(biāo)記序列。其中一個(gè)序列及其源圖像是模型的單個(gè)輸入,其標(biāo)簽是文檔中的下一個(gè)標(biāo)記。該模型使用交叉熵成本(cross-entropy cost)作為其損失函數(shù),將模型預(yù)測(cè)的下一個(gè)標(biāo)記與實(shí)際的標(biāo)記進(jìn)行比較。

          在模型從頭開(kāi)始生成代碼的推理階段,該過(guò)程稍有不同。該圖像仍然通過(guò) CNN 網(wǎng)絡(luò)進(jìn)行處理,但文本處理僅提供一個(gè)開(kāi)始序列。在每一步中,模型對(duì)序列中下一個(gè)標(biāo)記的預(yù)測(cè)將返回到當(dāng)前輸入序列,同時(shí)作為新的輸入序列輸入到模型中。重復(fù)此操作直到模型預(yù)測(cè)出 <END> 標(biāo)記或進(jìn)程達(dá)到每個(gè)文檔的標(biāo)記數(shù)的預(yù)定義上限。

          一旦從模型中生成了一組預(yù)測(cè)標(biāo)記,編譯器就會(huì)將 DSL 標(biāo)記轉(zhuǎn)換為 HTML,這些 HTML 可以在任何瀏覽器中展示出來(lái)。

          用 BLEU 得分評(píng)估模型

          我決定用 BLEU 評(píng)分(https://machinelearningmastery.com/calculate-bleu-score-for-text-python/)來(lái)評(píng)估模型。這是機(jī)器翻譯任務(wù)中經(jīng)常會(huì)用到的評(píng)估標(biāo)準(zhǔn),它試圖在給定相同輸入的情況下,評(píng)估機(jī)器生成的文本與人類可能寫的文本的近似程度。

          實(shí)質(zhì)上,BLEU 通過(guò)比較生成文本和參考文本的 n-元 序列,生成精修改后的文本。它非常適合這個(gè)項(xiàng)目,因?yàn)樗鼤?huì)影響生成的 HTML 中的實(shí)際元素,以及它們之間的相互關(guān)系。

          然后這是最棒的——我完全可以通過(guò)檢查生成的網(wǎng)站來(lái)理解 BLEU 得分!

          BLEU 得分可視化

          一個(gè)完美的 1.0 的 BLEU 分?jǐn)?shù)將在正確的位置生成源圖像的正確元素,而較低的得分可以預(yù)測(cè)錯(cuò)誤的元素和/或?qū)⑺鼈兎旁谙鄬?duì)于彼此錯(cuò)誤的位置。最終我的模型能夠在測(cè)試集上得到 0.76 的 BLEU 分?jǐn)?shù)。

          福利 - 定制樣式

          我覺(jué)察到的一個(gè)額外福利是,由于模型只生成頁(yè)面的骨架(文檔的標(biāo)記),我可以在編譯過(guò)程中添加一個(gè)自定義的 CSS 層,并且可以即時(shí)看到網(wǎng)站的不同風(fēng)格。

          一次轉(zhuǎn)換 => 同時(shí)生成多種樣式

          將樣式與模型生成過(guò)程分離,給使用模型帶來(lái)了很多好處:

          • 想要將 SketchCode 模型應(yīng)用到自己公司產(chǎn)品中的前端工程師可以按原樣使用該模型,只需更改一個(gè) CSS 文件以符合其公司的樣式要求

          • 可擴(kuò)展性已內(nèi)置 - 使用一張?jiān)磮D像,模型輸出可立即編譯為 5、10 或 50 種不同的預(yù)定義樣式,因此用戶可以看到他們網(wǎng)站的多個(gè)版本,并在瀏覽器中瀏覽這些網(wǎng)站

          總結(jié)與展望

          通過(guò)利用圖像標(biāo)注的研究成果,SketchCode 能夠在幾秒鐘內(nèi)將手繪網(wǎng)站線框圖轉(zhuǎn)換為可用的 HTML 網(wǎng)站。

          該模型有些局限性,大概包括以下幾點(diǎn):

          • 由于這個(gè)模型是用一個(gè)只有 16 個(gè)元素的詞匯進(jìn)行訓(xùn)練的,它不能預(yù)測(cè)訓(xùn)練數(shù)據(jù)之外的標(biāo)記。下一步可能是使用更多元素(如圖像,下拉菜單和表單)生成其他樣例網(wǎng)站——Bootstrap components 是個(gè)練手的好網(wǎng)站:https://getbootstrap.com/docs/4.0/components/buttons/

          • 實(shí)際生產(chǎn)環(huán)境中,網(wǎng)站有很多變化。創(chuàng)建一個(gè)更能反映這種變化的訓(xùn)練數(shù)據(jù)集的好方法是去爬取實(shí)際的網(wǎng)站,捕獲他們的 HTML / CSS 代碼以及網(wǎng)站內(nèi)容的截圖

          • 手繪素描也有很多變化,CSS 修改技巧沒(méi)有被模型完全學(xué)會(huì)。在手繪素描上生成更多變化的一種好方法是使用生成對(duì)抗網(wǎng)絡(luò)來(lái)創(chuàng)建逼真的繪制網(wǎng)站圖像

          我很期待看到項(xiàng)目的進(jìn)一步發(fā)展!

          TML可以將文檔分割為若干段落

          段落通過(guò)<p>標(biāo)簽定義,注意不要忘記結(jié)束標(biāo)簽

          THML折行

          可以使用如下例子測(cè)試

          HTML輸出-使用提醒

          對(duì)于 HTML,您無(wú)法通過(guò)在 HTML 代碼中添加額外的空格或換行來(lái)改變輸出的效果。

          當(dāng)顯示頁(yè)面時(shí),瀏覽器會(huì)移除源代碼中多余的空格和空行。所有連續(xù)的空格或空行都會(huì)被算作一個(gè)空格。需要注意的是,HTML 代碼中的所有連續(xù)的空行(換行)也被顯示為一個(gè)空格。

          譯自: https://medium.freecodecamp.org/for-your-first-html-code-lets-help-batman-write-a-love-letter-64c203b9360b

          作者: Kunal Sarkar

          譯者: MjSeven

          在一個(gè)美好的夜晚,你的肚子拒絕消化你在晚餐吃的大塊披薩,所以你不得不在睡夢(mèng)中沖進(jìn)洗手間。

          在浴室里,當(dāng)你在思考為什么會(huì)發(fā)生這種情況時(shí),你聽(tīng)到一個(gè)來(lái)自通風(fēng)口的低沉聲音:“嘿,我是蝙蝠俠。”

          這時(shí),你會(huì)怎么做呢?

          在你恐慌并處于關(guān)鍵時(shí)刻之前,蝙蝠俠說(shuō):“我需要你的幫助。我是一個(gè)超級(jí)極客,但我不懂 HTML。我需要用 HTML 寫一封情書,你愿意幫助我嗎?”

          誰(shuí)會(huì)拒絕蝙蝠俠的請(qǐng)求呢,對(duì)吧?所以讓我們用 HTML 來(lái)寫一封蝙蝠俠的情書。

          你的第一個(gè) HTML 文件

          HTML 網(wǎng)頁(yè)與你電腦上的其它文件一樣。就同一個(gè) .doc 文件以 MS Word 打開(kāi),.jpg 文件在圖像查看器中打開(kāi)一樣,一個(gè) .html 文件在瀏覽器中打開(kāi)。

          那么,讓我們來(lái)創(chuàng)建一個(gè) .html 文件。你可以在 Notepad 或其它任何編輯器中完成此任務(wù),但我建議使用 VS Code。 在這里下載并安裝 VS Code 。它是免費(fèi)的,也是我唯一喜歡的微軟產(chǎn)品。

          在系統(tǒng)中創(chuàng)建一個(gè)目錄,將其命名為 “HTML Practice”(不帶引號(hào))。在這個(gè)目錄中,再創(chuàng)建一個(gè)名為 “Batman’s Love Letter”(不帶引號(hào))的目錄,這將是我們的項(xiàng)目根目錄。這意味著我們所有與這個(gè)項(xiàng)目相關(guān)的文件都會(huì)在這里。

          打開(kāi) VS Code,按下 ctrl+n 創(chuàng)建一個(gè)新文件,按下 ctrl+s 保存文件。切換到 “Batman’s Love Letter” 文件夾并將其命名為 “l(fā)oveletter.html”,然后單擊保存。

          現(xiàn)在,如果你在文件資源管理器中雙擊它,它將在你的默認(rèn)瀏覽器中打開(kāi)。我建議使用 Firefox 來(lái)進(jìn)行 web 開(kāi)發(fā),但 Chrome 也可以。

          讓我們將這個(gè)過(guò)程與我們已經(jīng)熟悉的東西聯(lián)系起來(lái)。還記得你第一次拿到電腦嗎?我做的第一件事是打開(kāi) MS Paint 并繪制一些東西。你在 Paint 中繪制一些東西并將其另存為圖像,然后你可以在圖像查看器中查看該圖像。之后,如果要再次編輯該圖像,你在 Paint 中重新打開(kāi)它,編輯并保存它。

          我們目前的流程非常相似。正如我們使用 Paint 創(chuàng)建和編輯圖像一樣,我們使用 VS Code 來(lái)創(chuàng)建和編輯 HTML 文件。就像我們使用圖像查看器查看圖像一樣,我們使用瀏覽器來(lái)查看我們的 HTML 頁(yè)面。

          HTML 中的段落

          我們有一個(gè)空的 HTML 文件,以下是蝙蝠俠想在他的情書中寫的第一段。

          “After all the battles we fought together, after all the difficult times we saw together, and after all the good and bad moments we’ve been through, I think it’s time I let you know how I feel about you.”

          復(fù)制這些到 VS Code 中的 loveletter.html。單擊 “View -> Toggle Word Wrap (alt+z)” 自動(dòng)換行。

          保存并在瀏覽器中打開(kāi)它。如果它已經(jīng)打開(kāi),單擊瀏覽器中的刷新按鈕。

          瞧!那是你的第一個(gè)網(wǎng)頁(yè)!

          我們的第一段已準(zhǔn)備就緒,但這不是在 HTML 中編寫段落的推薦方法。我們有一種特定的方法讓瀏覽器知道一個(gè)文本是一個(gè)段落。

          如果你用 <p> 和 </p> 來(lái)包裹文本,那么瀏覽器將識(shí)別 <p> 和 </p> 中的文本是一個(gè)段落。我們這樣做:

          <p>After all the battles we fought together, after all the difficult times we saw together, after all the good and bad moments we've been through, I think it's time I let you know how I feel about you.</p>

          通過(guò)在 <p> 和 </p>中編寫段落,你創(chuàng)建了一個(gè) HTML 元素。一個(gè)網(wǎng)頁(yè)就是 HTML 元素的集合。

          讓我們首先來(lái)認(rèn)識(shí)一些術(shù)語(yǔ):<p> 是開(kāi)始標(biāo)簽,</p> 是結(jié)束標(biāo)簽,“p” 是標(biāo)簽名稱。元素開(kāi)始和結(jié)束標(biāo)簽之間的文本是元素的內(nèi)容。

          “style” 屬性

          在上面,你將看到文本覆蓋屏幕的整個(gè)寬度。

          我們不希望這樣。沒(méi)有人想要閱讀這么長(zhǎng)的行。讓我們?cè)O(shè)定段落寬度為 550px。

          我們可以通過(guò)使用元素的 style 屬性來(lái)實(shí)現(xiàn)。你可以在其 style 屬性中定義元素的樣式(例如,在我們的示例中為寬度)。以下行將在 p 元素上創(chuàng)建一個(gè)空樣式屬性:

          <p style="">...</p>

          你看到那個(gè)空的 "" 了嗎?這就是我們定義元素外觀的地方。現(xiàn)在我們要將寬度設(shè)置為 550px。我們這樣做:

          <p style="width:550px;">

          After all the battles we fought together, after all the difficult times we saw together, after all the good and bad moments we've been through, I think it's time I let you know how I feel about you.

          </p>

          我們將 width 屬性設(shè)置為 550px,用冒號(hào) : 分隔,以分號(hào) ; 結(jié)束。

          另外,注意我們?nèi)绾螌?<p> 和 </p> 放在單獨(dú)的行中,文本內(nèi)容用一個(gè)制表符縮進(jìn)。像這樣設(shè)置代碼使其更具可讀性。

          HTML 中的列表

          接下來(lái),蝙蝠俠希望列出他所欽佩的人的一些優(yōu)點(diǎn),例如:

          You complete my darkness with your light. I love:

          - the way you see good in the worst things

          - the way you handle emotionally difficult situations

          - the way you look at Justice

          I have learned a lot from you. You have occupied a special place in my heart over time.

          這看起來(lái)很簡(jiǎn)單。

          讓我們繼續(xù),在 </p> 下面復(fù)制所需的文本:

          <p style="width:550px;">

          After all the battles we faught together, after all the difficult times we saw together, after all the good and bad moments we've been through, I think it's time I let you know how I feel about you.

          </p>

          <p style="width:550px;">

          You complete my darkness with your light. I love:

          - the way you see good in the worse

          - the way you handle emotionally difficult situations

          - the way you look at Justice

          I have learned a lot from you. You have occupied a special place in my heart over the time.

          </p>

          保存并刷新瀏覽器。



          哇!這里發(fā)生了什么,我們的列表在哪里?

          如果你仔細(xì)觀察,你會(huì)發(fā)現(xiàn)沒(méi)有顯示換行符。在代碼中我們?cè)谛碌囊恍兄芯帉懥斜眄?xiàng),但這些項(xiàng)在瀏覽器中顯示在一行中。

          如果你想在 HTML(新行)中插入換行符,你必須使用 <br>。讓我們來(lái)使用 <br>,看看它長(zhǎng)什么樣:

          <p style="width:550px;">

          After all the battles we faught together, after all the difficult times we saw together, after all the good and bad moments we've been through, I think it's time I let you know how I feel about you.

          </p>

          <p style="width:550px;">

          You complete my darkness with your light. I love: <br>

          - the way you see good in the worse <br>

          - the way you handle emotionally difficult situations <br>

          - the way you look at Justice <br>

          I have learned a lot from you. You have occupied a special place in my heart over the time.

          </p>

          保存并刷新:



          好的,現(xiàn)在它看起來(lái)就像我們想要的那樣!

          另外,注意我們沒(méi)有寫一個(gè) </br>。有些標(biāo)簽不需要結(jié)束標(biāo)簽(它們被稱為自閉合標(biāo)簽)。

          還有一件事:我們沒(méi)有在兩個(gè)段落之間使用 <br>,但第二個(gè)段落仍然是從一個(gè)新行開(kāi)始,這是因?yàn)?<p> 元素會(huì)自動(dòng)插入換行符。

          我們使用純文本編寫列表,但是有兩個(gè)標(biāo)簽可以供我們使用來(lái)達(dá)到相同的目的:<ul> and <li>。

          讓我們解釋一下名字的意思:ul 代表 無(wú)序列表(Unordered List),li 代表 列表項(xiàng)目(List Item)。讓我們使用它們來(lái)展示我們的列表:

          <p style="width:550px;">

          After all the battles we faught together, after all the difficult times we saw together, after all the good and bad moments we've been through, I think it's time I let you know how I feel about you.

          </p>

          <p style="width:550px;">

          You complete my darkness with your light. I love:

          <ul>

          <li>the way you see good in the worse</li>

          <li>the way you handle emotionally difficult situations</li>

          <li>the way you look at Justice</li>

          </ul>

          I have learned a lot from you. You have occupied a special place in my heart over the time.

          </p>

          在復(fù)制代碼之前,注意差異部分:

          • 我們刪除了所有的 <br>,因?yàn)槊總€(gè) <li> 會(huì)自動(dòng)顯示在新行中
          • 我們將每個(gè)列表項(xiàng)包含在 <li> 和 </li> 之間
          • 我們將所有列表項(xiàng)的集合包裹在 <ul> 和 </ul> 之間
          • 我們沒(méi)有像 <p> 元素那樣定義 <ul> 元素的寬度。這是因?yàn)?<ul> 是 <p> 的子節(jié)點(diǎn),<p> 已經(jīng)被約束到 550px,所以 <ul> 不會(huì)超出這個(gè)范圍。

          讓我們保存文件并刷新瀏覽器以查看結(jié)果:



          你會(huì)立即注意到在每個(gè)列表項(xiàng)之前顯示了重點(diǎn)標(biāo)志。我們現(xiàn)在不需要在每個(gè)列表項(xiàng)之前寫 “-”。

          經(jīng)過(guò)仔細(xì)檢查,你會(huì)注意到最后一行超出 550px 寬度。這是為什么?因?yàn)?HTML 不允許 <ul> 元素出現(xiàn)在 <p> 元素中。讓我們將第一行和最后一行放在單獨(dú)的 <p> 元素中:

          <p style="width:550px;">

          After all the battles we faught together, after all the difficult times we saw together, after all the good and bad moments we've been through, I think it's time I let you know how I feel about you.

          </p>

          <p style="width:550px;">

          You complete my darkness with your light. I love:

          </p>

          <ul style="width:550px;">

          <li>the way you see good in the worse</li>

          <li>the way you handle emotionally difficult situations</li>

          <li>the way you look at Justice</li>

          </ul>

          <p style="width:550px;">

          I have learned a lot from you. You have occupied a special place in my heart over the time.

          </p>

          保存并刷新。

          注意,這次我們還定義了 <ul> 元素的寬度。那是因?yàn)槲覀儸F(xiàn)在已經(jīng)將 <ul> 元素放在了 <p> 元素之外。

          定義情書中所有元素的寬度會(huì)變得很麻煩。我們有一個(gè)特定的元素用于此目的:<div> 元素。一個(gè) <div> 元素就是一個(gè)通用容器,用于對(duì)內(nèi)容進(jìn)行分組,以便輕松設(shè)置樣式。

          讓我們用 <div> 元素包裝整個(gè)情書,并為其賦予寬度:550px 。

          <div style="width:550px;">

          <p>

          After all the battles we faught together, after all the difficult times we saw together, after all the good and bad moments we've been through, I think it's time I let you know how I feel about you.

          </p>

          <p>

          You complete my darkness with your light. I love:

          </p>

          <ul>

          <li>the way you see good in the worse</li>

          <li>the way you handle emotionally difficult situations</li>

          <li>the way you look at Justice</li>

          </ul>

          <p>

          I have learned a lot from you. You have occupied a special place in my heart over the time.

          </p>

          </div>

          棒極了,我們的代碼現(xiàn)在看起來(lái)簡(jiǎn)潔多了。

          HTML 中的標(biāo)題

          到目前為止,蝙蝠俠對(duì)結(jié)果很高興,他希望在情書上標(biāo)題。他想寫一個(gè)標(biāo)題: “Bat Letter”。當(dāng)然,你已經(jīng)看到這個(gè)名字了,不是嗎?:D

          你可以使用 <h1>、<h2>、<h3>、<h4>、<h5> 和 <h6> 標(biāo)簽來(lái)添加標(biāo)題,<h1> 是最大的標(biāo)題和最主要的標(biāo)題,<h6> 是最小的標(biāo)題。



          讓我們?cè)诘诙沃笆褂?<h1> 做主標(biāo)題和一個(gè)副標(biāo)題:

          <div style="width:550px;">

          <h1>Bat Letter</h1>

          <p>

          After all the battles we faught together, after all the difficult times we saw together, after all the good and bad moments we've been through, I think it's time I let you know how I feel about you.

          </p>

          <h2>You are the light of my life</h2>

          <p>

          You complete my darkness with your light. I love:

          </p>

          <ul>

          <li>the way you see good in the worse</li>

          <li>the way you handle emotionally difficult situations</li>

          <li>the way you look at Justice</li>

          </ul>

          <p>

          I have learned a lot from you. You have occupied a special place in my heart over the time.

          </p>

          </div>

          保存,刷新。



          HTML 中的圖像

          我們的情書尚未完成,但在繼續(xù)之前,缺少一件大事:蝙蝠俠標(biāo)志。你見(jiàn)過(guò)是蝙蝠俠的東西但沒(méi)有蝙蝠俠的標(biāo)志嗎?

          并沒(méi)有。

          所以,讓我們?cè)谇闀刑砑右粋€(gè)蝙蝠俠標(biāo)志。

          在 HTML 中包含圖像就像在一個(gè) Word 文件中包含圖像一樣。在 MS Word 中,你到 “菜單 -> 插入 -> 圖像 -> 然后導(dǎo)航到圖像位置為止 -> 選擇圖像 -> 單擊插入”。

          在 HTML 中,我們使用 <img> 標(biāo)簽讓瀏覽器知道我們需要加載的圖像,而不是單擊菜單。我們?cè)?src 屬性中寫入文件的位置和名稱。如果圖像在項(xiàng)目根目錄中,我們可以簡(jiǎn)單地在 src 屬性中寫入圖像文件的名稱。

          在我們深入編碼之前,從 這里 下載蝙蝠俠標(biāo)志。你可能希望裁剪圖像中的額外空白區(qū)域。復(fù)制項(xiàng)目根目錄中的圖像并將其重命名為 “bat-logo.jpeg”。

          <div style="width:550px;">

          <h1>Bat Letter</h1>

          <img src="bat-logo.jpeg">

          <p>

          After all the battles we faught together, after all the difficult times we saw together, after all the good and bad moments we've been through, I think it's time I let you know how I feel about you.

          </p>

          <h2>You are the light of my life</h2>

          <p>

          You complete my darkness with your light. I love:

          </p>

          <ul>

          <li>the way you see good in the worse</li>

          <li>the way you handle emotionally difficult situations</li>

          <li>the way you look at Justice</li>

          </ul>

          <p>

          I have learned a lot from you. You have occupied a special place in my heart over the time.

          </p>

          </div>

          我們?cè)诘?3 行包含了 <img> 標(biāo)簽。這個(gè)標(biāo)簽也是一個(gè)自閉合的標(biāo)簽,所以我們不需要寫 </img>。在 src 屬性中,我們給出了圖像文件的名稱。這個(gè)名稱應(yīng)與圖像名稱完全相同,包括擴(kuò)展名(.jpeg)及其大小寫。

          保存并刷新,查看結(jié)果。



          該死的!剛剛發(fā)生了什么?

          當(dāng)使用 <img> 標(biāo)簽包含圖像時(shí),默認(rèn)情況下,圖像將以其原始分辨率顯示。在我們的例子中,圖像比 550px 寬得多。讓我們使用 style 屬性定義它的寬度:

          <div style="width:550px;">

          <h1>Bat Letter</h1>

          <img src="bat-logo.jpeg" style="width:100%">

          <p>

          After all the battles we faught together, after all the difficult times we saw together, after all the good and bad moments we've been through, I think it's time I let you know how I feel about you.

          </p>

          <h2>You are the light of my life</h2>

          <p>

          You complete my darkness with your light. I love:

          </p>

          <ul>

          <li>the way you see good in the worse</li>

          <li>the way you handle emotionally difficult situations</li>

          <li>the way you look at Justice</li>

          </ul>

          <p>

          I have learned a lot from you. You have occupied a special place in my heart over the time.

          </p>

          </div>

          你會(huì)注意到,這次我們定義寬度使用了 “%” 而不是 “px”。當(dāng)我們?cè)?“%” 中定義寬度時(shí),它將占據(jù)父元素寬度的百分比。因此,100% 的 550px 將為我們提供 550px。

          保存并刷新,查看結(jié)果。



          太棒了!這讓蝙蝠俠的臉露出了羞澀的微笑 :)。

          HTML 中的粗體和斜體

          現(xiàn)在蝙蝠俠想在最后幾段中承認(rèn)他的愛(ài)。他有以下文本供你用 HTML 編寫:

          “I have a confession to make

          It feels like my chest does have a heart. You make my heart beat. Your smile brings a smile to my face, your pain brings pain to my heart.

          I don’t show my emotions, but I think this man behind the mask is falling for you.”

          當(dāng)閱讀到這里時(shí),你會(huì)問(wèn)蝙蝠俠:“等等,這是給誰(shuí)的?”蝙蝠俠說(shuō):

          “這是給超人的。”



          你說(shuō):哦!我還以為是給神奇女俠的呢。

          蝙蝠俠說(shuō):不,這是給超人的,請(qǐng)?jiān)谧詈髮懮?“I love you Superman.”。

          好的,我們來(lái)寫:

          <div style="width:550px;">

          <h1>Bat Letter</h1>

          <img src="bat-logo.jpeg" style="width:100%">

          <p>

          After all the battles we faught together, after all the difficult times we saw together, after all the good and bad moments we've been through, I think it's time I let you know how I feel about you.

          </p>

          <h2>You are the light of my life</h2>

          <p>

          You complete my darkness with your light. I love:

          </p>

          <ul>

          <li>the way you see good in the worse</li>

          <li>the way you handle emotionally difficult situations</li>

          <li>the way you look at Justice</li>

          </ul>

          <p>

          I have learned a lot from you. You have occupied a special place in my heart over the time.

          </p>

          <h2>I have a confession to make</h2>

          <p>

          It feels like my chest does have a heart. You make my heart beat. Your smile brings smile on my face, your pain brings pain to my heart.

          </p>

          <p>

          I don't show my emotions, but I think this man behind the mask is falling for you.

          </p>

          <p>I love you Superman.</p>

          <p>

          Your not-so-secret-lover, <br>

          Batman

          </p>

          </div>

          這封信差不多完成了,蝙蝠俠另外想再做兩次改變。蝙蝠俠希望在最后段落的第一句中的 “does” 一詞是斜體,而 “I love you Superman” 這句話是粗體的。

          我們使用 <em> 和 <strong> 以斜體和粗體顯示文本。讓我們來(lái)更新這些更改:

          <div style="width:550px;">

          <h1>Bat Letter</h1>

          <img src="bat-logo.jpeg" style="width:100%">

          <p>

          After all the battles we faught together, after all the difficult times we saw together, after all the good and bad moments we've been through, I think it's time I let you know how I feel about you.

          </p>

          <h2>You are the light of my life</h2>

          <p>

          You complete my darkness with your light. I love:

          </p>

          <ul>

          <li>the way you see good in the worse</li>

          <li>the way you handle emotionally difficult situations</li>

          <li>the way you look at Justice</li>

          </ul>

          <p>

          I have learned a lot from you. You have occupied a special place in my heart over the time.

          </p>

          <h2>I have a confession to make</h2>

          <p>

          It feels like my chest <em>does</em> have a heart. You make my heart beat. Your smile brings smile on my face, your pain brings pain to my heart.

          </p>

          <p>

          I don't show my emotions, but I think this man behind the mask is falling for you.

          </p>

          <p><strong>I love you Superman.</strong></p>

          <p>

          Your not-so-secret-lover, <br>

          Batman

          </p>

          </div>



          HTML 中的樣式

          你可以通過(guò)三種方式設(shè)置樣式或定義 HTML 元素的外觀:

          • 內(nèi)聯(lián)樣式:我們使用元素的 style 屬性來(lái)編寫樣式。這是我們迄今為止使用的,但這不是一個(gè)好的實(shí)踐。
          • 嵌入式樣式:我們?cè)谟?<style> 和 </style> 包裹的 “style” 元素中編寫所有樣式。
          • 鏈接樣式表:我們?cè)诰哂?.css 擴(kuò)展名的單獨(dú)文件中編寫所有元素的樣式。此文件稱為樣式表。

          讓我們來(lái)看看如何定義 <div> 的內(nèi)聯(lián)樣式:

          <div style="width:550px;">

          我們可以在 <style> 和 </style> 里面寫同樣的樣式:

          div{

          width:550px;

          }

          在嵌入式樣式中,我們編寫的樣式是與元素分開(kāi)的。所以我們需要一種方法來(lái)關(guān)聯(lián)元素及其樣式。第一個(gè)單詞 “div” 就做了這樣的活。它讓瀏覽器知道花括號(hào) {...} 里面的所有樣式都屬于 “div” 元素。由于這種語(yǔ)法確定要應(yīng)用樣式的元素,因此它稱為一個(gè)選擇器。

          我們編寫樣式的方式保持不變:屬性(width)和值(550px)用冒號(hào)(:)分隔,以分號(hào)(;)結(jié)束。

          讓我們從 <div> 和 <img> 元素中刪除內(nèi)聯(lián)樣式,將其寫入 <style> 元素:

          <style>

          div{

          width:550px;

          }

          img{

          width:100%;

          }

          </style>

          <div>

          <h1>Bat Letter</h1>

          <img src="bat-logo.jpeg">

          <p>

          After all the battles we faught together, after all the difficult times we saw together, after all the good and bad moments we've been through, I think it's time I let you know how I feel about you.

          </p>

          <h2>You are the light of my life</h2>

          <p>

          You complete my darkness with your light. I love:

          </p>

          <ul>

          <li>the way you see good in the worse</li>

          <li>the way you handle emotionally difficult situations</li>

          <li>the way you look at Justice</li>

          </ul>

          <p>

          I have learned a lot from you. You have occupied a special place in my heart over the time.

          </p>

          <h2>I have a confession to make</h2>

          <p>

          It feels like my chest <em>does</em> have a heart. You make my heart beat. Your smile brings smile on my face, your pain brings pain to my heart.

          </p>

          <p>

          I don't show my emotions, but I think this man behind the mask is falling for you.

          </p>

          <p><strong>I love you Superman.</strong></p>

          <p>

          Your not-so-secret-lover, <br>

          Batman

          </p>

          </div>

          保存并刷新,結(jié)果應(yīng)保持不變。

          但是有一個(gè)大問(wèn)題,如果我們的 HTML 文件中有多個(gè) <div> 和 <img> 元素該怎么辦?這樣我們?cè)?<style> 元素中為 div 和 img 定義的樣式就會(huì)應(yīng)用于頁(yè)面上的每個(gè) div 和 img。

          如果你在以后的代碼中添加另一個(gè) div,那么該 div 也將變?yōu)?550px 寬。我們并不希望這樣。

          我們想要將我們的樣式應(yīng)用于現(xiàn)在正在使用的特定 div 和 img。為此,我們需要為 div 和 img 元素提供唯一的 id。以下是使用 id 屬性為元素賦予 id 的方法:

          <div id="letter-container">

          以下是如何在嵌入式樣式中將此 id 用作選擇器:

          #letter-container{

          ...

          }

          注意 # 符號(hào)。它表示它是一個(gè) id,{...} 中的樣式應(yīng)該只應(yīng)用于具有該特定 id 的元素。

          讓我們來(lái)應(yīng)用它:

          <style>

          #letter-container{

          width:550px;

          }

          #header-bat-logo{

          width:100%;

          }

          </style>

          <div id="letter-container">

          <h1>Bat Letter</h1>

          <img id="header-bat-logo" src="bat-logo.jpeg">

          <p>

          After all the battles we faught together, after all the difficult times we saw together, after all the good and bad moments we've been through, I think it's time I let you know how I feel about you.

          </p>

          <h2>You are the light of my life</h2>

          <p>

          You complete my darkness with your light. I love:

          </p>

          <ul>

          <li>the way you see good in the worse</li>

          <li>the way you handle emotionally difficult situations</li>

          <li>the way you look at Justice</li>

          </ul>

          <p>

          I have learned a lot from you. You have occupied a special place in my heart over the time.

          </p>

          <h2>I have a confession to make</h2>

          <p>

          It feels like my chest <em>does</em> have a heart. You make my heart beat. Your smile brings smile on my face, your pain brings pain to my heart.

          </p>

          <p>

          I don't show my emotions, but I think this man behind the mask is falling for you.

          </p>

          <p><strong>I love you Superman.</strong></p>

          <p>

          Your not-so-secret-lover, <br>

          Batman

          </p>

          </div>

          HTML 已經(jīng)準(zhǔn)備好了嵌入式樣式。

          但是,你可以看到,隨著我們包含越來(lái)越多的樣式,<style></style> 將變得很大。這可能很快會(huì)混亂我們的主 HTML 文件。

          因此,讓我們更進(jìn)一步,通過(guò)將 <style> 標(biāo)簽內(nèi)的內(nèi)容復(fù)制到一個(gè)新文件來(lái)使用鏈接樣式。

          在項(xiàng)目根目錄中創(chuàng)建一個(gè)新文件,將其另存為 “style.css”:

          #letter-container{

          width:550px;

          }

          #header-bat-logo{

          width:100%;

          }

          我們不需要在 CSS 文件中寫 <style> 和 </style>。

          我們需要使用 HTML 文件中的 <link> 標(biāo)簽來(lái)將新創(chuàng)建的 CSS 文件鏈接到 HTML 文件。以下是我們?nèi)绾巫龅竭@一點(diǎn):

          <link rel="stylesheet" type="text/css" href="style.css">

          我們使用 <link> 元素在 HTML 文檔中包含外部資源,它主要用于鏈接樣式表。我們使用的三個(gè)屬性是:

          • rel:關(guān)系。鏈接文件與文檔的關(guān)系。具有 .css 擴(kuò)展名的文件稱為樣式表,因此我們保留 rel=“stylesheet”。
          • type:鏈接文件的類型;對(duì)于一個(gè) CSS 文件來(lái)說(shuō)它是 “text/css”。
          • href:超文本參考。鏈接文件的位置。

          link 元素的結(jié)尾沒(méi)有 </link>。因此,<link> 也是一個(gè)自閉合的標(biāo)簽。

          <link rel="gf" type="cute" href="girl.next.door">

          如果只是得到一個(gè)女朋友,那么很容易:D

          可惜沒(méi)有那么簡(jiǎn)單,讓我們繼續(xù)前進(jìn)。

          這是我們 “l(fā)oveletter.html” 的內(nèi)容:

          <link rel="stylesheet" type="text/css" href="style.css">

          <div id="letter-container">

          <h1>Bat Letter</h1>

          <img id="header-bat-logo" src="bat-logo.jpeg">

          <p>

          After all the battles we faught together, after all the difficult times we saw together, after all the good and bad moments we've been through, I think it's time I let you know how I feel about you.

          </p>

          <h2>You are the light of my life</h2>

          <p>

          You complete my darkness with your light. I love:

          </p>

          <ul>

          <li>the way you see good in the worse</li>

          <li>the way you handle emotionally difficult situations</li>

          <li>the way you look at Justice</li>

          </ul>

          <p>

          I have learned a lot from you. You have occupied a special place in my heart over the time.

          </p>

          <h2>I have a confession to make</h2>

          <p>

          It feels like my chest <em>does</em> have a heart. You make my heart beat. Your smile brings smile on my face, your pain brings pain to my heart.

          </p>

          <p>

          I don't show my emotions, but I think this man behind the mask is falling for you.

          </p>

          <p><strong>I love you Superman.</strong></p>

          <p>

          Your not-so-secret-lover, <br>

          Batman

          </p>

          </div>

          “style.css” 內(nèi)容:

          #letter-container{

          width:550px;

          }

          #header-bat-logo{

          width:100%;

          }

          保存文件并刷新,瀏覽器中的輸出應(yīng)保持不變。

          一些手續(xù)

          我們的情書已經(jīng)準(zhǔn)備好給蝙蝠俠,但還有一些正式的片段。

          與其他任何編程語(yǔ)言一樣,HTML 自出生以來(lái)(1990 年)經(jīng)歷過(guò)許多版本,當(dāng)前版本是 HTML5。

          那么,瀏覽器如何知道你使用哪個(gè)版本的 HTML 來(lái)編寫頁(yè)面呢?要告訴瀏覽器你正在使用 HTML5,你需要在頁(yè)面頂部包含 <!DOCTYPE html>。對(duì)于舊版本的 HTML,這行不同,但你不需要了解它們,因?yàn)槲覀儾辉偈褂盟鼈兞恕?/p>

          此外,在之前的 HTML 版本中,我們?cè)?jīng)將整個(gè)文檔封裝在 <html></html> 標(biāo)簽內(nèi)。整個(gè)文件分為兩個(gè)主要部分:頭部在 <head></head> 里面,主體在 <body></body> 里面。這在 HTML5 中不是必須的,但由于兼容性原因,我們?nèi)匀贿@樣做。讓我們用 <Doctype>, <html>、 <head> 和 <body> 更新我們的代碼:

          <!DOCTYPE html>

          <html>

          <head>

          <link rel="stylesheet" type="text/css" href="style.css">

          </head>

          <body>

          <div id="letter-container">

          <h1>Bat Letter</h1>

          <img id="header-bat-logo" src="bat-logo.jpeg">

          <p>

          After all the battles we faught together, after all the difficult times we saw together, after all the good and bad moments we've been through, I think it's time I let you know how I feel about you.

          </p>

          <h2>You are the light of my life</h2>

          <p>

          You complete my darkness with your light. I love:

          </p>

          <ul>

          <li>the way you see good in the worse</li>

          <li>the way you handle emotionally difficult situations</li>

          <li>the way you look at Justice</li>

          </ul>

          <p>

          I have learned a lot from you. You have occupied a special place in my heart over the time.

          </p>

          <h2>I have a confession to make</h2>

          <p>

          It feels like my chest <em>does</em> have a heart. You make my heart beat. Your smile brings smile on my face, your pain brings pain to my heart.

          </p>

          <p>

          I don't show my emotions, but I think this man behind the mask is falling for you.

          </p>

          <p><strong>I love you Superman.</strong></p>

          <p>

          Your not-so-secret-lover, <br>

          Batman

          </p>

          </div>

          </body>

          </html>

          主要內(nèi)容在 <body> 里面,元信息在 <head> 里面。所以我們把 <div> 保存在 <body> 里面并加載 <head> 里面的樣式表。

          保存并刷新,你的 HTML 頁(yè)面應(yīng)顯示與之前相同的內(nèi)容。

          HTML 的標(biāo)題

          我發(fā)誓,這是最后一次改變。

          你可能已經(jīng)注意到選項(xiàng)卡的標(biāo)題正在顯示 HTML 文件的路徑:



          我們可以使用 <title> 標(biāo)簽來(lái)定義 HTML 文件的標(biāo)題。標(biāo)題標(biāo)簽也像鏈接標(biāo)簽一樣在 <head> 內(nèi)部。讓我們我們?cè)跇?biāo)題中加上 “Bat Letter”:

          <!DOCTYPE html>

          <html>

          <head>

          <title>Bat Letter</title>

          <link rel="stylesheet" type="text/css" href="style.css">

          </head>

          <body>

          <div id="letter-container">

          <h1>Bat Letter</h1>

          <img id="header-bat-logo" src="bat-logo.jpeg">

          <p>

          After all the battles we faught together, after all the difficult times we saw together, after all the good and bad moments we've been through, I think it's time I let you know how I feel about you.

          </p>

          <h2>You are the light of my life</h2>

          <p>

          You complete my darkness with your light. I love:

          </p>

          <ul>

          <li>the way you see good in the worse</li>

          <li>the way you handle emotionally difficult situations</li>

          <li>the way you look at Justice</li>

          </ul>

          <p>

          I have learned a lot from you. You have occupied a special place in my heart over the time.

          </p>

          <h2>I have a confession to make</h2>

          <p>

          It feels like my chest <em>does</em> have a heart. You make my heart beat. Your smile brings smile on my face, your pain brings pain to my heart.

          </p>

          <p>

          I don't show my emotions, but I think this man behind the mask is falling for you.

          </p>

          <p><strong>I love you Superman.</strong></p>

          <p>

          Your not-so-secret-lover, <br>

          Batman

          </p>

          </div>

          </body>

          </html>

          保存并刷新,你將看到在選項(xiàng)卡上顯示的是 “Bat Letter” 而不是文件路徑。

          蝙蝠俠的情書現(xiàn)在已經(jīng)完成。

          恭喜!你用 HTML 制作了蝙蝠俠的情書。



          我們學(xué)到了什么

          我們學(xué)習(xí)了以下新概念:

          • 一個(gè) HTML 文檔的結(jié)構(gòu)
          • 在 HTML 中如何寫元素(<p></p>)
          • 如何使用 style 屬性在元素內(nèi)編寫樣式(這稱為內(nèi)聯(lián)樣式,盡可能避免這種情況)
          • 如何在 <style>...</style> 中編寫元素的樣式(這稱為嵌入式樣式)
          • 在 HTML 中如何使用 <link> 在單獨(dú)的文件中編寫樣式并鏈接它(這稱為鏈接樣式表)
          • 什么是標(biāo)簽名稱,屬性,開(kāi)始標(biāo)簽和結(jié)束標(biāo)簽
          • 如何使用 id 屬性為一個(gè)元素賦予 id
          • CSS 中的標(biāo)簽選擇器和 id 選擇器

          我們學(xué)習(xí)了以下 HTML 標(biāo)簽:

          • <p>:用于段落
          • <br>:用于換行
          • <ul>、<li>:顯示列表
          • <div>:用于分組我們信件的元素
          • <h1>、<h2>:用于標(biāo)題和子標(biāo)題
          • <img>:用于插入圖像
          • <strong>、<em>:用于粗體和斜體文字樣式
          • <style>:用于嵌入式樣式
          • <link>:用于包含外部樣式表
          • <html>:用于包裹整個(gè) HTML 文檔
          • <!DOCTYPE html>:讓瀏覽器知道我們正在使用 HTML5
          • <head>:包裹元信息,如 <link> 和 <title>
          • <body>:用于實(shí)際顯示的 HTML 頁(yè)面的主體
          • <title>:用于 HTML 頁(yè)面的標(biāo)題

          我們學(xué)習(xí)了以下 CSS 屬性:

          • width:用于定義元素的寬度
          • CSS 單位:“px” 和 “%”

          朋友們,這就是今天的全部了,下一個(gè)教程中見(jiàn)。


          作者簡(jiǎn)介:開(kāi)發(fā)者 + 作者 | supersarkar.com | twitter.com/supersarkar


          via: https://medium.freecodecamp.org/for-your-first-html-code-lets-help-batman-write-a-love-letter-64c203b9360b

          作者: Kunal Sarkar 譯者: MjSeven 校對(duì): wxy

          本文由 LCTT 原創(chuàng)編譯, Linux中國(guó) 榮譽(yù)推出

          點(diǎn)擊“了解更多”可訪問(wèn)文內(nèi)鏈接


          主站蜘蛛池模板: 中文乱码人妻系列一区二区| 亚洲片国产一区一级在线观看| 亚洲精品精华液一区二区| 成人久久精品一区二区三区| 国产午夜精品一区二区三区 | 国产一区美女视频| 免费无码毛片一区二区APP| 一区二区高清在线| 日本精品一区二区三区视频| 亚洲AV成人一区二区三区在线看| 日韩精品无码视频一区二区蜜桃 | 国产成人精品久久一区二区三区| 国产精品亚洲不卡一区二区三区| 国产精品一区二区四区| 国产精品无码一区二区在线观| 在线观看亚洲一区二区| 人妻无码一区二区三区免费| 国产午夜精品免费一区二区三区 | 毛片一区二区三区无码| 亚洲无圣光一区二区| 91video国产一区| 精品人妻系列无码一区二区三区| 精品无码人妻一区二区三区| 在线播放国产一区二区三区 | 亚洲av无码一区二区乱子伦as| 精品日韩在线视频一区二区三区| 欧洲精品码一区二区三区免费看| 日韩免费视频一区| 亚洲国产综合无码一区二区二三区 | 成人区人妻精品一区二区不卡视频 | 精品亚洲AV无码一区二区| 韩国理伦片一区二区三区在线播放| 亚洲影视一区二区| 欧美日韩综合一区二区三区| 成人免费一区二区无码视频 | 国产无套精品一区二区| 国产成人精品一区二区秒拍| 末成年女AV片一区二区| 无码人妻aⅴ一区二区三区| 在线日韩麻豆一区| 三上悠亚日韩精品一区在线|