一、簡介

1、發展史

(1)web1.0 時代   

產物:網頁製作

那時的網頁主要是靜態網頁,即沒有與用户交互,僅僅是提供信息瀏覽的網頁。如QQ日誌、博文等。

網頁製作三劍客:Dreamweaver+Fireworks+Flash

(2)web2.0 時代

產物:前端開發

有了靜態網頁和動態網頁。

動態網頁即指用户不僅可以瀏覽網頁,還可以與服務器進行交互。如新浪微博。

現在的網站開發無論是開發難度,還是開發方式上,都更接近傳統的網站後台開發,所以現在不再叫“網頁製作”,而是叫“web前端開發”。

2、web前端能做什麼

公司官網(在PC通過瀏覽器來訪問公司網站)

移動端網頁(在手機上瀏覽公司信息、小遊戲等)

移動端APP(例如:淘寶、去哪兒旅遊、攜程等)

微信小程序(隨用隨裝,不佔用手機空間)

3、前端開發的3個組成部分:

結構(HTML)、表現(CSS)、行為(JavaScript)

網頁現在的標準是W3C

4、HTML及其作用

(1)什麼是HTML?

Hyper Text Markup Language(超文本標記語言)

HTML是一門描述性語言。

是一種用於創建網頁的標記語言。

(2)作用

搭建網站框架。

5、CSS及其作用

(1)什麼是CSS?

層疊樣式表

(2)作用

給網站內容添加不同的表現形式,是網站樣式美觀。

6、JavaScript及其作用

JavaScript是一門腳本語言。

用於定義網站上的對象的行為。

二、HTML

1.HTML簡介

HTML是一個網頁的主體和基礎。

標記語言是一種將文本(Text)以及文本相關的其他信息結合起來,展現出關於文檔結構和數據處理細節的計算機文字編碼。

與文本相關的其他信息(包括例如文本的結構和表示信息等)與原來的文本結合在一起,但是使用標記(markup)進行標識。

 

<!DOCTYPE HTML>

<html>
    <head>
        <meta charset="utf-8"/>
        <title>第一個文檔</title>
    </head>
    <body>
        我們的文檔
    </body>
</html>

如上面代碼中的帶尖括號的html,head,meta等就叫做標籤,用來描述文本的作用。這些標籤互相嵌套構成了文本結構。

寫好的HTML文件最終都會運行在瀏覽器上,由瀏覽器來解析。

2.開發環境

常用開發工具:Hbuild、Sublime Text、Dreamweare、PyCharm等。

HTML文件的後綴名為: .htm.html

3.HTML標籤規範

(1)在HTML中規定標籤使用英文的的尖括號即`<`和`>`包起來,如`<html>`、`<p>`都是標籤。
(2)
HTML中的標籤通常都是成對出現的,分為開始標籤和結束標籤,結束標籤比開始標籤多了一個`/`,如`<p>標籤內容</p>`和`<div>標籤內容</div>`。開始標籤和結束標籤之間的就是標籤的內容。
(3)
標籤之間是可以嵌套的
(4)
HTML標籤不區分大小寫,`<h1>`和`<H1>`是一樣的,但是我們通常建議使用小寫
(5)不是所有標籤都支持互相嵌套。

4.HTML文檔結構

 

<!-- 聲明文檔類型,標記該文檔為html文件 -->
<!DOCTYPE HTML>

<!-- 頁面根節點 -->
<html>
    <head>
        <!-- 聲明頭部的元信息,對文檔規定編碼格式 -->
        <meta charset="utf-8"/>
        <title>文檔標題</title>
    </head>
    <body>
        文檔主體
    </body>
</html>

 

(1)<!DOCTYPE HTML>是文檔聲明,必須寫在HTML文檔的第一行,位於<html>標籤之前,表明該文檔是HTML5文檔。(2)<html></html><html></html>中。(3)<head></head><title><script><style><link><meta>等標籤。(4)在<body></body>標籤之間的內容是網頁的主要內容,如<h1><p><a><img>等網頁內容標籤,在<body>標籤中的內容最終會在瀏覽器中顯示出來。

HTML文檔包含了HTML標籤文本內容

5.HTML註釋

快捷鍵:ctrl+?

註釋格式:

<!--這裏是註釋的內容-->

注意:註釋不支持嵌套,註釋不能寫在HTML標籤中。

6.head 標籤

head標籤描述了文檔的各種屬性和信息,包括文檔標題、編碼方式及URL等信息,這些信息大部分是用來提供索引,辨認或其他方面的應用的。

<head lang='en'>
    <title>標題信息</title>
    <meta charset='utf-8'>
    <link>
    <style type='text/css'></style>
    <script type='text/javascript'></script>
</head>

以下標籤可以用在head標籤中:

1.1. title標籤

定義文檔的標題,顯示在瀏覽器標籤頁的標題欄。可以將其看作一個網頁的標題。

主要用來告訴用户和搜索引擎這個網頁的主要內容是什麼,搜索引擎可以通過網頁標題,迅速的判斷出當前網頁的主題。

格式:<title>標題</title>

創建一個帶有我們自定義標題內容的網頁:

<!DOCTYPE HTML>
<html>
    <head>
        <title>第一個文檔</title>
    </head>
    <body>
    </body>
</html>

將上面內容存儲為一個HTML文件,在瀏覽器中打開即可。

1.2. meta標籤

提供有關頁面的元信息、針對搜索引擎和更新頻度的描述和關鍵詞。

標籤位於文檔頭部,可以定義文檔的編碼類型等信息。

所提供的信息用户不可見。

meta標籤共有兩個屬性:http-equiv,name

1.2.1. http-equiv屬性

用來向瀏覽器傳達信息,幫助瀏覽器正確的顯示網頁內容,屬性值為content

(1)重定向   2秒後跳轉到對應網址:

<meta http-equiv="refresh" content="2;URL=http://www.baidu.com">

(2)指定文檔內容類型和編碼類型

<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />

(3)告訴瀏覽器以最高級模式渲染當前網頁

<meta http-equiv="x-ua-compatible" content="IE=edge">

1.2.2. name屬性
主要用於網頁的關鍵字和描述,是寫給搜索引擎看的,關鍵字之間用“,”隔開,與之對應的屬性值為content。content中的內容主要是便於搜索引擎查找信息和分類信息。為了SEO優化

<meta name="keywords" content="meta總結,html meta,meta屬性,meta跳轉">
<meta name="description" content="豆瓣">

1.3. link標籤
(1)定義網站圖標:

<link rel="icon" href="./fav.ico">

(2)引入外部樣式:

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

1.4. style標籤

定義內部樣式

<style type="text/css"></style>

1.5. script標籤

定義JavaScript代碼或引入JavaScript文件

<script type="text/javascript"></script>

 

<script src="myscript.js"></script>

7.body標籤

想要在網頁上展示的內容就要放在body中。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">

    <title>詩歌</title>
</head>
<body>
    <div class="詩歌">
        <h3>海燕</h3>
        <p>在茫茫的大海上,</p>
        <p>狂風捲集着烏雲。</p>
        <p>在烏雲和大海之間,,</p>
        <p><i>海燕</i>像黑色的閃電,</p>
        <p>在高傲地飛翔。</p><hr>
    </div>

</body>
</html>

7.1. 標題標籤 h1-h6

用於定義標題。塊級元素

<!DOCTYPE HTML>
<html>
    <head lang='en'>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title>標題標籤</title>
    </head>
    <body>
        <h1>一級標題</h1><h2>二級標題</h2>
        <h3>三級標題</h3>
        <h4>四級標題</h4>
        <h5>五級標題</h5>
        <h6>六級標題</h6>
    </body>
</html>

7.2. 文本樣式標籤

主要用來對HTML頁面中的文本進行修飾。

文本樣式標籤主要用來對HTML頁面中的文本進行修飾,比如加粗、斜體、線條樣式等...

1. `<b></b>`:加粗
2. `<i></i>`:斜體
3. `<u></u>`:下劃線
4. `<s></s>`:刪除線
5. `<sup></sup>`:上標 
6. `<sub></sub>`:下標


現在如果想在一段文字中特別強調某幾個字,這時候就可以用到`<em>`或`<strong>`標籤。

這兩個標籤都是表示強調,但是兩者在強調的語氣上有區別:`<em>`表示強調,`<strong>`表示更強烈的強調。
在瀏覽器中`<em>`默認會用斜體表示,`<strong>`會用粗體來表示。兩個標籤相比,我們通常會推薦大家使用`<strong>`表示強調

7.3. 段落標籤p

paragraph縮寫,用於定義段落

是一個塊級元素

<p>在茫茫的大海上,</p>
<p>狂風捲集着烏雲。</p>
<p>在烏雲和大海之間,</p>

7.4. 超鏈接標籤a
anchor縮寫。是一個鏈接點。

a為行內元素

作用:將當前位置的頁面、文本或圖片鏈接到其他頁面、文本或者圖片

(1)跳轉到其他頁面:

<a href="http://www.baidu.com" target="_blank" title="百度">百度</a>

target參數: _self ,默認值,在當前網站打開鏈接的資源地址; _blank 在新的網站打開鏈接的資源地址

title:鼠標懸停時顯示的標題

(2)下載文件:

<a href="a.zip">下載包</a>

(3)跳轉到郵箱:

<a href="mailto:zhaoxu@tedu.cn">聯繫我們</a>

(4)返回頁面頂部:

<a href="#">跳轉到頂部</a>

(5)跳轉到指定id:

<a href="#p1">跳轉到p1</a>

(6)觸發<a>默認動作時,執行一段JavaScript代碼:

<a href="javascript:alert(1)">內容</a>

(7)觸發<a>時無任何操作:

<a href="javascript:;">內容</a>

7.5. 列表標籤ul,ol

 ul:unordered lists,無序列表
ol:ordered lists,有序列表

列表標籤是塊級元素

通常跟li標籤一起用,每條li表示列表的內容

前端開發 雲服務平台項目_搜索引擎

前端開發 雲服務平台項目_前端開發 雲服務平台項目_02

<!-- 無序列表 type可以定義無序列表的樣式-->
    <ul type="circle">
        <li>我的賬户</li>
        <li>我的訂單</li>
        <li>我的優惠券</li>
        <li>我的收藏</li>
        <li>退出</li>
    </ul>
    <!-- 有序列表 type可以定義有序列表的樣式 -->
    <ol type="a">
        <li>我的賬户</li>
        <li>我的訂單</li>
        <li>我的優惠券</li>
        <li>我的收藏</li>
        <li>退出</li>
    </ol>

View Code

(1)ul標籤的屬性:

type:列表標識的類型,值如下:

  disc:實心圓(默認值)

  circle:空心圓

  square:實心矩形

  none:不顯示標識

(2)ol標籤的屬性:

type:列表標識的類型,值:

  1:數字

  a:小寫字母

  A:大寫字母

  i:小寫羅馬字符

  I:大寫羅馬字符

  起始編號 ,默認為1

7.6. 盒子標籤div

division縮寫,定義文檔的分區,可以將文檔分為獨立的、不同的部分

是一個塊級元素

前端開發 雲服務平台項目_搜索引擎

前端開發 雲服務平台項目_前端開發 雲服務平台項目_02

<body>
    <div class="詩歌">
        <h1>海燕</h1>
        <h2>海燕</h2>
        <h3>海燕</h3>
        <h4>海燕</h4>
        <h5>海燕</h5>
        <h6>海燕</h6>
        <p>在茫茫的大海上,</p>
        <p>狂風捲集着烏雲。</p>
        <p>在烏雲和大海之間,</p>
        <p><i>海燕</i>像黑色的閃電,</p>
        <p>在高傲地飛翔。</p><hr>
    </div>

    <div class="鏈接">
        <a href="http://www.baidu.com" target="_blank" title="百度">百度</a>
    </div>
</body>

View Code

每個<div></div>區域表示獨立的一塊,中間還可以嵌套<div></div>
7.7. 圖片標籤<img/>

用於向網頁中插入圖片

是一個行內塊元素

語法:<img src="圖片地址" alt="圖片加載失敗時顯示的內容" title = "提示信息" />

<!-- 圖片標籤<img/> -->
    <div class="圖片">
        <img src="./picture1.png" alt="圖片加載失敗" style="width: 300px;height: 240px">
    </div>

(1)src設置的圖片地址可以是本地的地址也可以是一個網絡地址。

(2)圖片的格式可以是png、jpg和gif。

(3)alt屬性的值會在圖片加載失敗時顯示在網頁上。

(4)還可以為圖片設置寬度(width)和高度(height),不設置就顯示圖片默認的寬度和高度

(5)與行內元素在一行內顯示

7.8. span標籤

span標籤可以單獨摘出某塊內容,結合css設置相應的樣式

是行內元素

<span>hello world</span>
<span>the student is learning</span>

7.9. 換行標籤<br>

用來將內容換行,其在HTML網頁上的效果相當於我們平時使用word編輯文檔時使用回車換行。

7.10. 分割線<hr>

用來在HTML頁面中創建水平分隔線,通常用來分隔內容.

7.11. 特殊符號

注意:瀏覽器在顯示的時候會移除源代碼中多餘的空格和空行,所有連續的空格或空行都會被算作一個空格。HTML代碼中的所有連續的空行(空格)也被顯示為一個空格。

常用特殊字符:

內容    代碼
空格     
>      >
<      <
&      &
¥      ¥
版權    ©
註冊    ®

特殊字符對照表:http://tool.chinaz.com/Tools/HtmlChar.aspx

7.12. 表格標籤table
<table>:定義表格

<thead>:表格頭

<tbody>:表格主體

<tr>:行

<th>:表格頭裏的單元格,默認加粗居中,常與<tr>結合使用定義表格頭

<td>:表格主體裏的單元格,即表格數據(table data),數據單元格可以包含文本、圖片、列表、段落、表單、水平線、表格等

<tfoot>表格底部

表格行和列合併:

rowspan 合併行(豎着合併)
colspan 合併列(橫着合併)

示例:

前端開發 雲服務平台項目_搜索引擎

前端開發 雲服務平台項目_前端開發 雲服務平台項目_02

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>表格</title>
</head>
<body>
    <table border="1" cellspacing="0">
        <!-- 表格頭 -->
        <thead>
            <tr>
                <!-- thead裏面使用th -->
                <th>時間</th>
                <th>星期一</th>
                <th>星期二</th>
                <th>星期三</th>
                <th>星期四</th>
                <th>星期五</th>
            </tr>
        </thead>

        <!-- 表格主體 -->
        <tbody>
            <tr>
                <!-- tbody裏面使用td -->
                <td rowspan="3">上午</td>
                <td>語文</td>
                <td>數學</td>
                <td>英語</td>
                <td>化學</td>
                <td>物理</td>
            </tr>
            <tr>
                <td>化學</td>
                <td>物理</td>
                <td>語文</td>
                <td>數學</td>
                <td>英語</td>
            </tr>
            <tr>
                <td>物理</td>
                <td>語文</td>
                <td>數學</td>
                <td>英語</td>
                <td>化學</td>
            </tr>
            <tr>
                <td rowspan="2">下午</td>
                <td>數學</td>
                <td>英語</td>
                <td>數學</td>
                <td>英語</td>
                <td>化學</td>
            </tr>
            <tr>
                <td>英語</td>
                <td>數學</td>
                <td>英語</td>
                <td>物理</td>
                <td>語文</td>
            </tr>
        </tbody>

        <!-- 表底部 -->
        <tfoot>
            <tr>
                <!-- tfoot裏面使用td -->
                <td colspan="6">課程表</td>
            </tr>
        </tfoot>
    </table>
</body>
</html>

View Code

7.13. 表單標籤form

表單是一個包含表單元素的區域
表單元素是允許用户在表單中輸入內容,比如:文本域(textarea)、輸入框(input)、單選框

作用:表單用於顯示、輸入信息,並將信息提交給服務器

語法:

<form>允許出現表單控件</form>

常見屬性:

前端開發 雲服務平台項目_前端開發 雲服務平台項目_07


表單控件分類:

前端開發 雲服務平台項目_HTML_08

示例:

前端開發 雲服務平台項目_搜索引擎

前端開發 雲服務平台項目_前端開發 雲服務平台項目_02

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>表單控件</title>
</head>
<body>
    <div class="form">
        <!-- form標籤是塊級元素,form表單是被提交的 -->
        <form action="http://www.baidu.com" method="get">
            <p>
                <!-- lable標籤是行內元素 -->
                <label for="user">用户名:</label>
                <!-- input標籤是行內塊元素 -->
                <input type="text" name="username" id="user" placeholder="請輸入用户名">
            </p>
            <p>
                <!-- lable標籤是行內元素 -->
                <label for="password">密碼: </label>
                <!-- input標籤是行內塊元素 -->
                <input type="text" name="password" id="password" placeholder="請輸入密碼">
            </p>

            <p>
                <!-- 單選框checked會被默認選中。如何使選項產生互斥效果:name值相同 -->
                用户性別:
                <input type="radio" name="sex" value="男" checked="">男
                <input type="radio" name="sex" value="女">女
            </p>

            <p>
                <!-- 複選框 -->
                用户愛好:
                <input type="checkbox" name="checkfav" value="吃">吃
                <input type="checkbox" name="checkfav" value="喝">喝
                <input type="checkbox" name="checkfav" value="玩">玩
                <input type="checkbox" name="checkfav" value="樂">樂
            </p>

            <p>
                <!-- 上傳文件  此時method必須設置為post,enctype必須為multipart/form-data -->
                <input type="file" name="textfile">
            </p>
            
            <p>
                <!-- 文本域 -->
                自我評價:
                <textarea cols="20" rows="5" name="txt" placeholder="請作自我評價"></textarea>
            </p>

            <p>
                <!-- 下拉列表 -->
                户籍地址:
                <select name="sel" size="3" multiple="">
                    <option value="深圳" selected="">深圳</option>
                    <option value="北京">北京</option>
                    <option value="上海">上海</option>
                    <option value="湖南">湖南</option>
                </select>
                
            </p>

            <p>
                <!-- 定義一個普通的按鈕 -->
                <input type="button" name="btn" value="普通按鈕" disabled="disabled">
                <!-- disabled:禁用按鈕 -->

                <!-- 提交form表單:submit -->
                <input type="submit" name="btn" value="提交">
            </p>

            <p>
                <!-- 重置按鈕 -->
                <input type="reset" name="">
            </p>
        </form>

        <!-- button標籤 -->
        <button type="button">按鈕</button>

        
    </div>
</body>
</html>

View Code

8.HTML標籤屬性

HTML標籤可以設置屬性,屬性一般以鍵值對的方式寫在開始標籤中。

<div id="i1">這是一個div標籤</div>
<p class='p1 p2 p3'>這是一個段落標籤</p>
<a href="http://www.luffycity.com">這是一個鏈接</a>
<input type='button' onclick='addclick()'></input>

id就div標籤的屬性

注意:

(1)HTML標籤除一些特定屬性外可以設置自定義屬性,一個標籤可以設置多個屬性用空格分隔,多個屬性不區分先後順序。

(2)屬性值要用引號包裹起來,通常使用雙引號也可以單引號。

(3)屬性和屬性值不區分大小寫,但是推薦使用小寫。

9.HTML標籤分類

HTML中標籤元素三種不同類型:塊狀元素,行內元素,行內塊狀元素。

9.1. 塊級元素:

<div> <p> <h1>~<h6> <ol> <ul> <table><form> <li>

特點:display:block;

1、每個塊級元素都從新的一行開始,並且其後的元素也另起一行。獨佔一行

2、元素的高度、寬度、行高以及頂和底邊距都可設置

3、元素寬度在不設置的情況下,是它本身父容器的100%(和父元素的寬度一致),除非設定一個寬度。

9.2. 行內元素:

<a> <span> <br> <i> <em> <strong> <label>

特點:display:inline;

1、和其他元素都在一行上

2、元素的高度、寬度及頂部和底部邊距不可設置

3、元素的寬度就是它包含的文字或圖片的寬度,不可改變。

9.3. 行內塊元素:

<img> <input>

特點:display:inline-block;

1、和其他元素都在一行上

2、元素的高度、寬度、行高以及頂和底邊距都可設置

10.HTML標籤嵌套

(1)塊元素可以包含內聯元素或某些塊元素,但內聯元素卻不能包含塊元素,它只能包含其它的內聯元素。

正確:<div><div></div><h1></h1><p><p></div>

正確:<a href=”#”><span></span></a>

錯誤:<span><div></div></span>

(2)塊級元素不能放在p標籤裏面,比如

錯誤:<p><ol><li></li></ol></p>

錯誤:<p><div></div></p>

(3)有幾個特殊的塊級元素只能包含內嵌元素,不能再包含塊級元素,這幾個特殊的標籤是:h1、h2、h3、h4、h5、h6、p

(4)li元素可以嵌入ul,ol,div等標籤