HTML / CSS / JS 編程入門 —— 制作可切換主題的簡單網(wǎng)頁

HTML、CSS 和 JavaScript 是前端編程密不可分的三大語言新娜,我們一般看到的網(wǎng)頁都由這三種語言組合編程而成赵辕。這三者之間究竟有什么樣的關(guān)系?他們又是通過什么樣的軟件編成的呢概龄?

HTML还惠、CSS 和 JavaScript 之間的關(guān)系

我們平時看到的網(wǎng)頁就像是一座已經(jīng)建好的房子,而這三個編程語言則分別負責房子的結(jié)構(gòu)(Structure)私杜、樣式(Styling)和功能(Functionality)蚕键。對一個完整的網(wǎng)頁而言,三者幾乎缺一不可衰粹。但在極端情況下锣光,只要有 HTML 就可以制作出最簡單的網(wǎng)頁,CSS 和 JavaScript 則會為網(wǎng)頁賦予更精美的樣式和更多樣的功能铝耻。

.HTML 文件:網(wǎng)頁的基本架構(gòu)誊爹,一般在這里調(diào)用 CSS 和 JS 文件
.CSS 文件:網(wǎng)頁樣式文件,調(diào)整網(wǎng)頁的整體顏色、位置频丘、字體办成、按鈕等設(shè)計
.JS 文件:賦予網(wǎng)頁的交互功能,例如:用戶點擊搂漠、輸入等操作會觸發(fā)哪些功能

網(wǎng)頁制作實戰(zhàn)

在學習編程的時候迂卢,最重要的就是直接動手嘗試,從實際挑戰(zhàn)中逐漸作出調(diào)整状答。這個網(wǎng)站制作教程將根據(jù)以下幾個步驟冷守,手把手帶你制作一個簡易的網(wǎng)站,讓你了解 HTML惊科、CSS 和 JS 之間的關(guān)系與基本操作:

1. 草擬網(wǎng)站內(nèi)容
2. 在Lightly中編寫代碼
3. 使用 HTML 建立網(wǎng)站基本框架
4. 使用 CSS 調(diào)整網(wǎng)站設(shè)計
5. 使用 JavaScript 添加網(wǎng)站功能

我們在此次教程中使用輕量且功能強大的Lightly集成開發(fā)工具(IDE)拍摇,學習過程中無需下載任何編程軟件,也無需熟記復雜的界面操作馆截,只需要通過網(wǎng)頁打開就可以在線上實時編寫代碼充活,通過一鍵運行完成網(wǎng)頁制作。

這個網(wǎng)頁制作教程會教大家制作一個可切換淺色和深色主題的簡單網(wǎng)頁蜡娶,網(wǎng)頁的效果大致如下:

點擊進入 Lightly混卵,查看完整代碼

在 Lightly 創(chuàng)建 HTML 文件

注冊并登錄Lightly賬戶后,點擊 “新建項目” 并創(chuàng)建 HTML 文件窖张。

打開項目后幕随,你會發(fā)現(xiàn) Lightly 已經(jīng)為我們分別建好了 Index.html、style.css 和 script.js 三個文件宿接。

使用 HTML 建立框架

仔細看 index.html 的代碼赘淮,Lightly 也為我們關(guān)聯(lián)好了 CSS 和 JS 文件,關(guān)聯(lián)這兩個文件的代碼分別如下:

<!--- 關(guān)聯(lián) CSS 文件的代碼 --->
<link type="text/css" rel="stylesheet" href="css/style.css"/>

<!--- 關(guān)聯(lián) JS 文件的代碼 --->
<script type="text/javascript" src="js/script.js"></script>

在正式開始網(wǎng)頁的編程之前睦霎,我們也可以先調(diào)整 <head> 標簽中的頁面信息梢卸,同時確保 CSS 和 JS 文件正確關(guān)聯(lián)。

<head>

? ? <meta charset="UTF-8">
? ? <title>Lightly 網(wǎng)頁制作</title> <!--- 這里可以修改頁面標題 --->
? ? <link type="text/css" rel="stylesheet" href="css/style.css"/>
? ? <script type="text/javascript" src="js/script.js"></script>

</head>

添加網(wǎng)頁內(nèi)容

<body> 標簽含有網(wǎng)頁的主要內(nèi)容副女,如果直接點擊右上角的小眼睛蛤高,目前只會彈出 “Hello World!”。我們可以修改 <body> </body> 里的內(nèi)容碑幅,讓網(wǎng)頁變得更豐富戴陡。

<body>

? ? <!--- 這里的內(nèi)容是評論,不會顯示在網(wǎng)頁中 --->
? ? <!--- h1 標題 --->
? ? <h1>網(wǎng)頁制作指南</h1>

? ? <!--- p = paragraph 段落 --->
? ? <p id="msg">任務(wù)清單</p>

? ? <!--- ul = unordered list 無序號列表 --->
? ? <!--- ol = ordered list 有序號列表 --->
? ? <!--- li 即列表中的內(nèi)容 --->
? ? <ul>
? ? ? <li class="list">添加可視化設(shè)計</li>
? ? ? <li class="list">添加淺色與深色主題</li>
? ? ? <li>添加切換主題功能沟涨!</li>
? ? </ul>

</body>

添加好內(nèi)容后猜欺,我們可以在此預覽網(wǎng)頁:

只修改了 HTML 部分的網(wǎng)頁只有黑白文字,沒有設(shè)計拷窜。

使用 CSS 設(shè)計網(wǎng)頁

完成網(wǎng)頁的基本結(jié)構(gòu)后,我們轉(zhuǎn)到 style.css 文件,開始為網(wǎng)頁設(shè)計編程篮昧。Lightly 的 style.css 文件默認為空白赋荆,我們可以嘗試添加以下參數(shù)代碼:

定義顏色名稱

/* CSS 的評論代碼與 HTML 不同 */
/* 使用根目錄定義顏色 */

:root {
? --green: #f0fff0;
? --white: #ffffff;
? --black: #000000;
}

* {
? color: var(--fontColor);
}

更改字體樣式

body {

? ? /* 設(shè)置背景顏色,調(diào)整文本為黑體懊昨、居中 */
? ? font-family: SimHei;
? ? text-align: center;
? ? background: var(--bg);
}

ul {

? ? /* 設(shè)置 ul 文本為宋體 */
? ? font-family: SimSun;
}

為列表設(shè)置邊框

/* 為 ul 添加邊框 */

.feature {

? ? text-align: left;
? ? font-size: 24px;
? ? margin: auto;
? ? width: 400px;
? ? height: 200px;
? ? outline: solid 1px;

? ? /* 將列表內(nèi)容居中 */
? ? display: flex;
? ? justify-content: center;
? ? align-items: center;
}

添加淺色主題

/* 添加淺色主題 */

.light-theme {

? color: var(--black);
? background: var(--green);

}

在刷新網(wǎng)頁之前窄潭,我們需要回到 .HTML 文件為 <body> 標簽添加淺色主題:

<body class="light-theme">

同時在 <ul> 的上下方添加 <div> 標簽,注意需要為 <div> 標簽添加 class:

? ? <div class="feature">
? ? ? ? <ul>
????? ? ? ? ? ?...
? ? ? ? </ul>
? ? </div>

完成后 CSS 文件配置后酵颁,回到 .HTML 文件重新加載網(wǎng)頁查看效果:

使用 JavaScript 實現(xiàn)主題切換

掌握基本的 CSS 設(shè)計后嫉你,我們可以嘗試進一步編寫 JavaScript 代碼,讓網(wǎng)頁實現(xiàn)深色和淺色主題切換的功能躏惋。

首先幽污,我們需要在 .html 文件中添加“切換主題”的按鈕:

? ? <!--- div = division 分區(qū) --->

? ? <div>
? ? ? ? <button class="btn" onclick="function()">切換深色</button>
? ? </div>

接著,把 <head> 中的 script.js 關(guān)聯(lián)代碼移動(剪切+粘貼)到 </body> 標簽結(jié)束前:

<script type="text/javascript" src="js/script.js"></script>
</body>

在添加切換功能前簿姨,我們需要添加并調(diào)整 CSS 的主題:

/* 添加淺色主題 */

.light-theme {

? --bg: var(--green);
? --fontColor: var(--black);
? --btnBg: var(--black);
? --btnFontColor: var(--white);
}

/* 添加深色主題 */

.dark-theme {

? --bg: var(--black);
? --fontColor: var(--green);
? --btnBg: var(--white);
? --btnFontColor: var(--black);
}

然后調(diào)整按鈕設(shè)計:

/* 調(diào)整按鈕設(shè)計 */

.btn {

? ? position: absolute;
? ? top: 20px;
? ? left: 250px;
? ? height: 50px;
? ? width: 50px;
? ? border-radius: 50%;
? ? border: none;
? ? color: var(--btnFontColor);
? ? background-color: var(--btnBg);
}

/* 添加點擊效果 */
.btn:focus { outline-style: none; }

最后距误,轉(zhuǎn)到 script.js 文件并添加按鈕功能:

// 為 switcher 添加定義
const switcher = document.querySelector('.btn');

// 使用監(jiān)聽功能監(jiān)聽按鈕動態(tài)
switcher.addEventListener('click', function() {
? ? document.body.classList.toggle('dark-theme')

? ? // 使用 if 功能實現(xiàn)主題切換
? ? var className = document.body.className;
? ? if(className == "light-theme") {
? ? ? ? this.textContent = "切換深色";
? ? }
? ? else {
? ? ? ? this.textContent = "切換淺色";
? ? }
? ? console.log('current class name: ' + className);
});

所有步驟完成后,重新預覽網(wǎng)頁效果”馕唬現(xiàn)在准潭,點擊按鈕即可切換主題顏色:

點擊進入 Lightly,查看完整代碼

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末域仇,一起剝皮案震驚了整個濱河市刑然,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌暇务,老刑警劉巖泼掠,帶你破解...
    沈念sama閱讀 217,907評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異般卑,居然都是意外死亡武鲁,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,987評論 3 395
  • 文/潘曉璐 我一進店門蝠检,熙熙樓的掌柜王于貴愁眉苦臉地迎上來沐鼠,“玉大人,你說我怎么就攤上這事叹谁∷撬螅” “怎么了?”我有些...
    開封第一講書人閱讀 164,298評論 0 354
  • 文/不壞的土叔 我叫張陵焰檩,是天一觀的道長憔涉。 經(jīng)常有香客問我,道長析苫,這世上最難降的妖魔是什么兜叨? 我笑而不...
    開封第一講書人閱讀 58,586評論 1 293
  • 正文 為了忘掉前任穿扳,我火速辦了婚禮,結(jié)果婚禮上国旷,老公的妹妹穿的比我還像新娘矛物。我一直安慰自己,他們只是感情好跪但,可當我...
    茶點故事閱讀 67,633評論 6 392
  • 文/花漫 我一把揭開白布履羞。 她就那樣靜靜地躺著,像睡著了一般屡久。 火紅的嫁衣襯著肌膚如雪忆首。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,488評論 1 302
  • 那天被环,我揣著相機與錄音糙及,去河邊找鬼。 笑死蛤售,一個胖子當著我的面吹牛丁鹉,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播悴能,決...
    沈念sama閱讀 40,275評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼揣钦,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了漠酿?” 一聲冷哼從身側(cè)響起冯凹,我...
    開封第一講書人閱讀 39,176評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎炒嘲,沒想到半個月后宇姚,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,619評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡夫凸,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,819評論 3 336
  • 正文 我和宋清朗相戀三年浑劳,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片夭拌。...
    茶點故事閱讀 39,932評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡魔熏,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出鸽扁,到底是詐尸還是另有隱情蒜绽,我是刑警寧澤,帶...
    沈念sama閱讀 35,655評論 5 346
  • 正文 年R本政府宣布桶现,位于F島的核電站躲雅,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏骡和。R本人自食惡果不足惜相赁,卻給世界環(huán)境...
    茶點故事閱讀 41,265評論 3 329
  • 文/蒙蒙 一相寇、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧噪生,春花似錦裆赵、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,871評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽页藻。三九已至桨嫁,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間份帐,已是汗流浹背璃吧。 一陣腳步聲響...
    開封第一講書人閱讀 32,994評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留废境,地道東北人畜挨。 一個月前我還...
    沈念sama閱讀 48,095評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像噩凹,于是被迫代替她去往敵國和親巴元。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,884評論 2 354

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