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
編程有沒(méi)有必要學(xué) HTML 呢?這是編程初學(xué)者中非常普遍的問(wèn)題,而且在網(wǎng)上意見分歧很大。關(guān)于初學(xué)者在學(xué)習(xí) HTML 前的一些常見問(wèn)題,編程獅W3Cschool整理了以下資料希望對(duì)你有所幫助:
那些說(shuō)不需要 HTML 知識(shí)的人要么不了解 Web 設(shè)計(jì),要么別有用心。雖然現(xiàn)在哪怕不會(huì) HTML 也有其他方法可以解決 web 設(shè)計(jì)相關(guān)問(wèn)題,但絕大多數(shù)資深前端開發(fā)者還是會(huì)建議你最好還是要學(xué)習(xí)它的。
通常了解基本知識(shí)只需要20到40分鐘。花幾個(gè)小時(shí)學(xué)習(xí) w3cschool官網(wǎng) 的《HTML 教程 》和《HTML 微課 》,你就可以制作一個(gè)簡(jiǎn)單而完整的網(wǎng)頁(yè)。如果你愿意每周花幾個(gè)小時(shí),學(xué)習(xí)幾個(gè)月的 《前端開發(fā)體系課程 _ 》,那么您將對(duì)網(wǎng)站的工作方式有一個(gè)很好的了解。這種時(shí)間上的投資將獲得很大的回報(bào)比。試想下,如果你本周花在學(xué)習(xí)上一小時(shí),未來(lái)的工作上每個(gè)月都將永遠(yuǎn)節(jié)省一個(gè)小時(shí)。盡管投資回收期在開始時(shí)比較緩慢,但你最終可以只需要花費(fèi)一小部分時(shí)間用來(lái)完成工作,你覺(jué)得值得嗎?
這是勸退很多人的一個(gè)原因,但實(shí)際上這個(gè)問(wèn)題是不存在的。因?yàn)榇蠖鄶?shù)情況下我們不需要編寫 HTML 代碼,只需了解它即可。
市面上有很多可視化的工具如 WYSIWYG 、Dreamweaver及現(xiàn)在越來(lái)越多的”低代碼“云開發(fā)工具等,它可以幫助你更高效地工作。如前所述,你并不是要手動(dòng)輸入 HTML 代碼,而是要了解 HTML 的工作原理。
例如:射釘槍能比錘子更快地幫助您建造房屋,但是如果你不知道如何搭建框架以及將釘子釘在何處,造出來(lái)的房屋很可能會(huì)倒塌。我們需要了解如何手動(dòng)構(gòu)造 HTML,然后使用所見即所得工具更快地工作。
PS:所見即所得的編輯器永遠(yuǎn)不會(huì)是完美的,總有時(shí)候是需要我們手動(dòng)來(lái)調(diào)整 HTML。。
放心,雖然我們時(shí)常把它稱為語(yǔ)言,但其實(shí) HTML 并不是一種編程語(yǔ)言(從技術(shù)上講,HTML 被稱為“mark up”語(yǔ)言,也就是標(biāo)記語(yǔ)言,英文全稱是“HyperText Markup Language”。)。從難度上講,它就像是小孩子們的“密碼”游戲。真正難點(diǎn)在于要學(xué)習(xí)的東西太多了,但是請(qǐng)記住,你不必全部都學(xué)會(huì)!只要按照自己的步調(diào)學(xué)習(xí)盡可能多的知識(shí)即可。
不要將費(fèi)時(shí)與困難混淆。HTML 很耗時(shí),但是并不難。另外,你不需要學(xué)會(huì)全部知識(shí)點(diǎn),即使只花費(fèi)幾個(gè)小時(shí)來(lái)學(xué)習(xí)基本結(jié)構(gòu)也將極大地幫助你。
不會(huì)。其他編程語(yǔ)言一直在發(fā)展中,并且很可能最終會(huì)取代 HTML,但是 HTML 將在很長(zhǎng)一段時(shí)間內(nèi)繼續(xù)作為幾乎所有網(wǎng)站的基礎(chǔ)。在任何情況下,HTML 都會(huì)為您提供堅(jiān)實(shí)的基礎(chǔ),然后再采用 XML 等新語(yǔ)言。
如果您的目的是創(chuàng)建網(wǎng)頁(yè),那么很抱歉告訴你,無(wú)論你喜不喜歡,你只能選擇 HTML,因?yàn)樗菢?gòu)成網(wǎng)絡(luò)構(gòu)成的基礎(chǔ)。如果你真的想以其他格式(例如PDF)來(lái)傳送,請(qǐng)注意,它并不是一個(gè)網(wǎng)頁(yè),所以它不能實(shí)現(xiàn)我們?cè)诰W(wǎng)頁(yè)中的一些常見功能。
以上就是編程獅W3Cschool為你整理的關(guān)于《為什么要學(xué)習(xí)HTML?HTML會(huì)過(guò)時(shí)嗎?》的全部?jī)?nèi)容,現(xiàn)在你要開始學(xué)習(xí) HTML 了嗎?
文將通過(guò)簡(jiǎn)單的術(shù)語(yǔ)和真實(shí)世界的例子解釋 JavaScript 中 this 及其用途,并告訴你寫出好的代碼為何如此重要。
我看到許多文章在介紹 JavaScript 的 this 時(shí)都會(huì)假設(shè)你學(xué)過(guò)某種面向?qū)ο蟮木幊陶Z(yǔ)言,比如 Java、C++ 或 Python 等。但這篇文章面向的讀者是那些不知道 this 是什么的人。我盡量不用任何術(shù)語(yǔ)來(lái)解釋 this 是什么,以及 this 的用法。
也許你一直不敢解開 this 的秘密,因?yàn)樗雌饋?lái)挺奇怪也挺嚇人的。或許你只在 StackOverflow 說(shuō)你需要用它的時(shí)候(比如在 React 里實(shí)現(xiàn)某個(gè)功能)才會(huì)使用。
在深入介紹 this 之前,我們首先需要理解函數(shù)式編程和面向?qū)ο缶幊讨g的區(qū)別。
你可能不知道,JavaScript 同時(shí)擁有面向?qū)ο蠛秃瘮?shù)式的結(jié)構(gòu),所以你可以自己選擇用哪種風(fēng)格,或者兩者都用。
我在很早以前使用 JavaScript 時(shí)就喜歡函數(shù)式編程,而且會(huì)像躲避瘟疫一樣避開面向?qū)ο缶幊蹋驗(yàn)槲也焕斫饷嫦驅(qū)ο笾械年P(guān)鍵字,比如 this。我不知道為什么要用 this。似乎沒(méi)有它我也可以做好所有的工作。
而且我是對(duì)的。
在某種意義上 。也許你可以只專注于一種結(jié)構(gòu)并且完全忽略另一種,但這樣你只能是一個(gè) JavaScript 開發(fā)者。為了解釋函數(shù)式和面向?qū)ο笾g的區(qū)別,下面我們通過(guò)一個(gè)數(shù)組來(lái)舉例說(shuō)明,數(shù)組的內(nèi)容是 Facebook 的好友列表。
假設(shè)你要做一個(gè) Web 應(yīng)用,當(dāng)用戶使用 Facebook 登錄你的 Web 應(yīng)用時(shí),需要顯示他們的 Facebook 的好友信息。你需要訪問(wèn) Facebook 并獲得用戶的好友數(shù)據(jù)。這些數(shù)據(jù)可能是 firstName、lastName、username、numFriends、friendData、birthday 和 lastTenPosts 等信息。
const data = [ { firstName: 'Bob', lastName: 'Ross', username: 'bob.ross', numFriends: 125, birthday: '2/23/1985', lastTenPosts: ['What a nice day', 'I love Kanye West', ...], }, ... ]
假設(shè)上述數(shù)據(jù)是你通過(guò) Facebook API 獲得的。現(xiàn)在需要將其轉(zhuǎn)換成方便你的項(xiàng)目使用的格式。我們假設(shè)你想顯示的好友信息如下:
函數(shù)式的方式就是將整個(gè)數(shù)組或者數(shù)組中的某個(gè)元素傳遞給某個(gè)函數(shù),然后返回你需要的信息:
const fullNames = getFullNames(data) // ['Ross, Bob', 'Smith, Joanna', ...]
首先我們有 Facebook API 返回的原始數(shù)據(jù)。為了將其轉(zhuǎn)換成需要的格式,首先要將數(shù)據(jù)傳遞給一個(gè)函數(shù),函數(shù)的輸出是(或者包含)經(jīng)過(guò)修改的數(shù)據(jù),這些數(shù)據(jù)可以在應(yīng)用中向用戶展示。
我們可以用類似的方法獲得隨機(jī)三篇文章,并且計(jì)算距離好友生日的天數(shù)。
函數(shù)式的方式是:將原始數(shù)據(jù)傳遞給一個(gè)函數(shù)或者多個(gè)函數(shù),獲得對(duì)你的項(xiàng)目有用的數(shù)據(jù)格式。
對(duì)于編程初學(xué)者和 JavaScript 初學(xué)者,面向?qū)ο蟮母拍羁赡苡悬c(diǎn)難以理解。其思想是,我們要將每個(gè)好友變成一個(gè)對(duì)象,這個(gè)對(duì)象能夠生成你一切開發(fā)者需要的東西。
你可以創(chuàng)建一個(gè)對(duì)象,這個(gè)對(duì)象對(duì)應(yīng)于某個(gè)好友,它有 fullName 屬性,還有兩個(gè)函數(shù) getThreeRandomPosts 和 getDaysUntilBirthday。
function initializeFriend(data) { return { fullName: `${data.firstName} ${data.lastName}`, getThreeRandomPosts: function() { // get three random posts from data.lastTenPosts }, getDaysUntilBirthday: function() { // use data.birthday to get the num days until birthday } }; } const objectFriends = data.map(initializeFriend) objectFriends[0].getThreeRandomPosts() // Gets three of Bob Ross's posts
面向?qū)ο蟮姆绞骄褪菫閿?shù)據(jù)創(chuàng)建對(duì)象,每個(gè)對(duì)象都有自己的狀態(tài),并且包含必要的信息,能夠生成需要的數(shù)據(jù)。
你也許從來(lái)沒(méi)想過(guò)要寫上面的 initializeFriend 代碼,而且你也許認(rèn)為,這種代碼可能會(huì)很有用。但你也注意到,這并不是真正的面向?qū)ο蟆?/p>
其原因就是,上面例子中的 getThreeRandomPosts 或 getdaysUntilBirtyday 能夠正常工作的原因其實(shí)是閉包。因?yàn)槭褂昧碎]包,它們?cè)?initializeFriend 返回之后依然能訪問(wèn) data。關(guān)于閉包的更多信息可以看看這篇文章:作用域和閉包(https://github.com/getify/You-Dont-Know-JS/blob/master/scope%20%26%20closures/ch5.md)。
還有一個(gè)方法該怎么處理?我們假設(shè)這個(gè)方法叫做 greeting。注意方法(與 JavaScript 的對(duì)象有關(guān)的方法)其實(shí)只是一個(gè)屬性,只不過(guò)屬性值是函數(shù)而已。我們想在 greeting 中實(shí)現(xiàn)以下功能:
function initializeFriend(data) { return { fullName: `${data.firstName} ${data.lastName}`, getThreeRandomPosts: function() { // get three random posts from data.lastTenPosts }, getDaysUntilBirthday: function() { // use data.birthday to get the num days until birthday }, greeting: function() { return `Hello, this is ${fullName}'s data!` } }; }
這樣能正常工作嗎?
不能!
我們新建的對(duì)象能夠訪問(wèn) initializeFriend 中的一切變量,但不能訪問(wèn)這個(gè)對(duì)象本身的屬性或方法。當(dāng)然你會(huì)問(wèn),
難道不能在 greeting 中直接用 data.firstName 和 data.lastName 嗎?
當(dāng)然可以。但要是想在 greeting 中加入距離好友生日的天數(shù)怎么辦?我們最好還是有辦法在 greeting 中調(diào)用 getDaysUntilBirthday。
這時(shí)輪到 this 出場(chǎng)了!
this 在不同的環(huán)境中可以指代不同的東西。默認(rèn)的全局環(huán)境中 this 指代的是全局對(duì)象(在瀏覽器中 this 是 window 對(duì)象),這沒(méi)什么太大的用途。而在 this 的規(guī)則中具有實(shí)用性的是這一條:
如果在對(duì)象的方法中使用 this,而該方法在該對(duì)象的上下文中調(diào)用,那么 this 指代該對(duì)象本身。
你會(huì)說(shuō)“在該對(duì)象的上下文中調(diào)用”……是啥意思?
別著急,我們一會(huì)兒就說(shuō)。
所以,如果我們想從 greeting 中調(diào)用 getDaysUntilBirtyday 我們只需要寫 this.getDaysUntilBirthday,因?yàn)榇藭r(shí)的 this 就是對(duì)象本身。
附注:不要在全局作用域的普通函數(shù)或另一個(gè)函數(shù)的作用域中使用 this!this 是個(gè)面向?qū)ο蟮臇|西,它只在對(duì)象的上下文(或類的上下文)中有意義。
我們利用 this 來(lái)重寫 initializeFriend:
function initializeFriend(data) { return { lastTenPosts: data.lastTenPosts, birthday: data.birthday, fullName: `${data.firstName} ${data.lastName}`, getThreeRandomPosts: function() { // get three random posts from this.lastTenPosts }, getDaysUntilBirthday: function() { // use this.birthday to get the num days until birthday }, greeting: function() { const numDays = this.getDaysUntilBirthday() return `Hello, this is ${this.fullName}'s data! It is ${numDays} until ${this.fullName}'s birthday!` } }; }
現(xiàn)在,在 initializeFriend 執(zhí)行結(jié)束后,該對(duì)象需要的一切都位于對(duì)象本身的作用域之內(nèi)了。我們的方法不需要再依賴于閉包,它們只會(huì)用到對(duì)象本身包含的信息。
好吧,這是 this 的用法之一,但你說(shuō)過(guò) this 在不同的上下文中有不同的含義。那是什么意思?為什么不一定會(huì)指向?qū)ο笞约海?/p>
有時(shí)候,你需要將 this 指向某個(gè)特定的東西。一種情況就是事件處理函數(shù)。比如我們希望在用戶點(diǎn)擊好友時(shí)打開好友的 Facebook 首頁(yè)。我們會(huì)給對(duì)象添加下面的 onClick 方法:
function initializeFriend(data) { return { lastTenPosts: data.lastTenPosts, birthday: data.birthday, username: data.username, fullName: `${data.firstName} ${data.lastName}`, getThreeRandomPosts: function() { // get three random posts from this.lastTenPosts }, getDaysUntilBirthday: function() { // use this.birthday to get the num days until birthday }, greeting: function() { const numDays = this.getDaysUntilBirthday() return `Hello, this is ${this.fullName}'s data! It is ${numDays} until ${this.fullName}'s birthday!` }, onFriendClick: function() { window.open(`https://facebook.com/${this.username}`) } }; }
注意我們?cè)趯?duì)象中添加了 username 屬性,這樣 onFriendClick 就能訪問(wèn)它,從而在新窗口中打開該好友的 Facebook 首頁(yè)。現(xiàn)在只需要編寫 HTML:
<button id="Bob_Ross"> <!-- A bunch of info associated with Bob Ross --> </button>
還有 JavaScript:
const bobRossObj = initializeFriend(data[0]) const bobRossDOMEl = document.getElementById('Bob_Ross') bobRossDOMEl.addEventListener("onclick", bobRossObj.onFriendClick)
在上述代碼中,我們給 Bob Ross 創(chuàng)建了一個(gè)對(duì)象。然后我們拿到了 Bob Ross 對(duì)應(yīng)的 DOM 元素。然后執(zhí)行 onFriendClick 方法來(lái)打開 Bob 的 Facebook 主頁(yè)。似乎沒(méi)問(wèn)題,對(duì)吧?
有問(wèn)題!
哪里出錯(cuò)了?
注意我們調(diào)用 onclick 處理程序的代碼是 bobRossObj.onFriendClick。看到問(wèn)題了嗎?要是寫成這樣的話能看出來(lái)嗎?
bobRossDOMEl.addEventListener("onclick", function() { window.open(`https://facebook.com/${this.username}`) })
現(xiàn)在看到問(wèn)題了嗎?如果把事件處理程序?qū)懗?bobRossObj.onFriendClick,實(shí)際上是把 bobRossObj.onFriendClick 上保存的函數(shù)拿出來(lái),然后作為參數(shù)傳遞。它不再“依附”在 bobRossObj 上,也就是說(shuō),this 不再指向 bobRossObj。它實(shí)際指向全局對(duì)象,也就是說(shuō) this.username 不存在。似乎我們沒(méi)什么辦法了。
輪到綁定上場(chǎng)了!
我們需要明確地將 this 綁定到 bobRossObj 上。我們可以通過(guò) bind 實(shí)現(xiàn):
const bobRossObj = initializeFriend(data[0]) const bobRossDOMEl = document.getElementById('Bob_Ross') bobRossObj.onFriendClick = bobRossObj.onFriendClick.bind(bobRossObj) bobRossDOMEl.addEventListener("onclick", bobRossObj.onFriendClick)
之前,this 是按照默認(rèn)的規(guī)則設(shè)置的。但使用 bind 之后,我們明確地將 bobRossObj.onFriendClick 中的 this 的值設(shè)置為 bobRossObj 對(duì)象本身。
到此為止,我們看到了為什么要使用 this,以及為什么要明確地綁定 this。最后我們來(lái)介紹一下,this 實(shí)際上是箭頭函數(shù)。
你也許注意到了箭頭函數(shù)最近很流行。人們喜歡箭頭函數(shù),因?yàn)楹芎?jiǎn)潔、很優(yōu)雅。而且你還知道箭頭函數(shù)和普通函數(shù)有點(diǎn)區(qū)別,盡管不太清楚具體區(qū)別是什么。
簡(jiǎn)而言之,兩者的區(qū)別在于:
在定義箭頭函數(shù)時(shí),不管 this 指向誰(shuí),箭頭函數(shù)內(nèi)部的 this 永遠(yuǎn)指向同一個(gè)東西。
嗯……這貌似沒(méi)什么用……似乎跟普通函數(shù)的行為一樣啊?
我們通過(guò) initializeFriend 舉例說(shuō)明。假設(shè)我們想添加一個(gè)名為 greeting 的函數(shù):
function initializeFriend(data) { return { lastTenPosts: data.lastTenPosts, birthday: data.birthday, username: data.username, fullName: `${data.firstName} ${data.lastName}`, getThreeRandomPosts: function() { // get three random posts from this.lastTenPosts }, getDaysUntilBirthday: function() { // use this.birthday to get the num days until birthday }, greeting: function() { function getLastPost() { return this.lastTenPosts[0] } const lastPost = getLastPost() return `Hello, this is ${this.fullName}'s data! ${this.fullName}'s last post was ${lastPost}.` }, onFriendClick: function() { window.open(`https://facebook.com/${this.username}`) } }; }
這樣能運(yùn)行嗎?如果不能,怎樣修改才能運(yùn)行?
答案是不能。因?yàn)?getLastPost 沒(méi)有在對(duì)象的上下文中調(diào)用,因此getLastPost 中的 this 按照默認(rèn)規(guī)則指向了全局對(duì)象。
你說(shuō)沒(méi)有“在對(duì)象的上下文中調(diào)用”……難道它不是從 initializeFriend 返回的內(nèi)部調(diào)用的嗎?如果這還不叫“在對(duì)象的上下文中調(diào)用”,那我就不知道什么才算了。
我知道“在對(duì)象的上下文中調(diào)用”這個(gè)術(shù)語(yǔ)很模糊。也許,判斷函數(shù)是否“在對(duì)象的上下文中調(diào)用”的好方法就是檢查一遍函數(shù)的調(diào)用過(guò)程,看看是否有個(gè)對(duì)象“依附”到了函數(shù)上。
我們來(lái)檢查下執(zhí)行 bobRossObj.onFriendClick() 時(shí)的情況。“給我對(duì)象 bobRossObj,找到其中的 onFriendClick 然后調(diào)用該屬性對(duì)應(yīng)的函數(shù)”。
我們同樣檢查下執(zhí)行 getLastPost() 時(shí)的情況。“給我名為 getLastPost 的函數(shù)然后執(zhí)行。”看到了嗎?我們根本沒(méi)有提到對(duì)象。
好了,這里有個(gè)難題來(lái)測(cè)試你的理解程度。假設(shè)有個(gè)函數(shù)名為 functionCaller,它的功能就是調(diào)用一個(gè)函數(shù):
functionCaller(fn) { fn() }
如果調(diào)用 functionCaller(bobRossObj.onFriendClick) 會(huì)怎樣?你會(huì)認(rèn)為 onFriendClick 是“在對(duì)象的上下文中調(diào)用”的嗎?this.username有定義嗎?
我們來(lái)檢查一遍:“給我 bobRosObj 對(duì)象然后查找其屬性 onFriendClick。取出其中的值(這個(gè)值碰巧是個(gè)函數(shù)),然后將它傳遞給 functionCaller,取名為 fn。然后,執(zhí)行名為 fn 的函數(shù)。”注意該函數(shù)在調(diào)用之前已經(jīng)從 bobRossObj 對(duì)象上“脫離”了,因此并不是“在對(duì)象的上下文中調(diào)用”的,所以 this.username 沒(méi)有定義。
這時(shí)可以用箭頭函數(shù)解決這個(gè)問(wèn)題:
function initializeFriend(data) { return { lastTenPosts: data.lastTenPosts, birthday: data.birthday, username: data.username, fullName: `${data.firstName} ${data.lastName}`, getThreeRandomPosts: function() { // get three random posts from this.lastTenPosts }, getDaysUntilBirthday: function() { // use this.birthday to get the num days until birthday }, greeting: function() { const getLastPost = () => { return this.lastTenPosts[0] } const lastPost = getLastPost() return `Hello, this is ${this.fullName}'s data! ${this.fullName}'s last post was ${lastPost}.` }, onFriendClick: function() { window.open(`https://facebook.com/${this.username}`) } }; }
上述代碼的規(guī)則是:
在定義箭頭函數(shù)時(shí),不管 this 指向誰(shuí),箭頭函數(shù)內(nèi)部的 this 永遠(yuǎn)指向同一個(gè)東西。
箭頭函數(shù)是在 greeting 中定義的。我們知道,在 greeting 內(nèi)部的 this 指向?qū)ο蟊旧怼R虼耍^函數(shù)內(nèi)部的 this 也指向?qū)ο蟊旧恚@正是我們需要的結(jié)果。
this 有時(shí)很不好理解,但它對(duì)于開發(fā) JavaScript 應(yīng)用非常有用。本文當(dāng)然沒(méi)能介紹 this 的所有方面。一些沒(méi)有涉及到的話題包括:
我建議你首先問(wèn)問(wèn)自己在這些情況下的 this,然后在瀏覽器中執(zhí)行代碼來(lái)檢驗(yàn)?zāi)愕慕Y(jié)果。
想學(xué)習(xí)更多關(guān) 于this 的內(nèi)容,可參考《你不知道的 JS:this 和對(duì)象原型》:
如果你想測(cè)試自己的知識(shí),可參考《你不知道的JS練習(xí):this和對(duì)象原型》:
原文:https://medium.freecodecamp.org/a-deep-dive-into-this-in-javascript-why-its-critical-to-writing-good-code-7dca7eb489e7
作者:Austin Tackaberry,Human API 的軟件工程師
譯者:彎月,責(zé)編:屠敏
TML使用哪個(gè)編輯器好嗎?
一開始學(xué)前端基礎(chǔ)HTML我們就需要準(zhǔn)備一下,我們需要HTML編輯器來(lái)編寫制作我們的HTML頁(yè)面,寫這個(gè)網(wǎng)頁(yè)HTML的工具,一般常用的工具分兩種:notepad++和Adobe Dreamweaver
阿景就給你介紹第一個(gè)notepad++編輯器,也是最好用最方便的一個(gè)編輯器:
分享之前我還是要推薦下我自己的前端學(xué)習(xí)群:661473108,不管你是小白還是大牛,小編都?xì)g迎,不管前端有什么不懂的,或者不知道怎么學(xué)習(xí)的都可以來(lái),歡迎初學(xué)和進(jìn)階中的小伙伴。
操作步驟:
1、到百度下載一個(gè)notepad++編輯器軟件,然后在電腦上安裝,安裝完成運(yùn)行notepad++編輯器軟件
2、打開notepad++,notepad++編輯器會(huì)自動(dòng)新建一個(gè)文檔,如圖:
圖片
3、文件另存為的格式是選html的格式,如圖:
圖片
圖片
4、新建成功一個(gè)HTML文件,如圖:(文檔取名例如“阿景前端”)
圖片
上圖及步驟已經(jīng)做好了一個(gè)HTML文件,那我們來(lái)測(cè)試一下我們的第一個(gè)頁(yè)面,那么我們就需要填寫代碼內(nèi)容,代碼內(nèi)容如下:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>阿景前端教程</title>
</head>
<body>
<h1>我的第一個(gè)標(biāo)題</h1>
<p>我的第一個(gè)段落。</p>
</body>
</html>
圖片展示:
圖片
圖片
到了這一步,我們的編輯器選擇下載好了,頁(yè)面也制作成功了,那么本章節(jié)就到這里了!
本文轉(zhuǎn)載于:http://web.gzseoaj.com/html/2.html
*請(qǐng)認(rèn)真填寫需求信息,我們會(huì)在24小時(shí)內(nèi)與您取得聯(lián)系。