前端——HTML


作者:凌逆戰

地址:https://www.cnblogs.com/LXP-Never/p/11229886.html


   HTML稱為超文本標記語言,不屬於編程語言的范疇,HTML使用標記標簽描述網頁。HTML運行在瀏覽器上,由瀏覽器來解析。網頁運行在瀏覽器上,是數據展示的載體。網頁由瀏覽器服務器協議組成。

  • 服務器:向服務器發送用戶請求指令並接收和解析數據展示給用戶。
  • 服務器:存儲數據,處理並響應請求。
  • 協議規范數據在傳輸過程中的打包方式

網頁有兩大優勢即時響應無需安裝和更新

  • 即時響應更新服務端頁面即完成更新,客戶端重新加載即兌現內容。
  • 無需安裝和更新無需安裝任何應用軟件,只需要一個瀏覽器執行即可。

開發前的准備

  • 運行環境:瀏覽器,默認選擇chrome瀏覽器,作為網頁文件的運行環境。
  • 調試工具:瀏覽器自帶的調試工具,使用快捷鍵"F12"或右鍵"檢查"打開。
  • 開發工具:不限,選用個人習慣的即可。(Sublime、VSCode、pycharm、EditPlus、Webstrom等)

語法介紹

  HTML又稱為超文本標記語言,超文本標記語言能夠讓瀏覽器識別和解析的語言,通過標簽的形式構建頁面結構和填充內容。HTML書寫的網頁文件使用.html.htm作為文件后綴。

代碼基本結構

  每個網頁基本的代碼結構,都是由以下代碼結構組成的。通過下面的代碼可知,每個網頁都是由HTML標簽代碼 + JS代碼 + CSS樣式代碼 組成的。HTML代碼不區分大小寫,建議都小寫。CSS、JS、HTML的注釋語法都不同,其實注釋語法不需要特別記憶,只需要ctrl+/ 快捷鍵就能自動注釋(pycharm默認編輯器,點setting>Languages&Frameworks>python Template Languages>HTML>Template Languages>none)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        /*網頁CSS樣式代碼*/
    </style>
</head>
<body>
<!--    HTML標簽結構-->

    <script>
        // 網頁事件,JS代碼
    </script>
</body>
</html>

代碼解析:

<!DOCTYPE html>:這句話告訴瀏覽器,使用HTML5標准來解析這個網頁

<html>:HTML文檔開始的標志和文檔結束標記

<head>:網頁的頭部,可在head中設置網頁標題,還可以引入外部的資源文件

<title>:包含文檔的標題

<body>:網頁的身體,包含可見的頁面內容

<!--注釋-->:注釋

<script>:網頁的事件,包含Java Script代碼

<style>:網頁的樣式,包含css代碼

HTML標簽

HTML標簽也會成為標記或元素,用於網頁中標記內容,是由< >包圍的關鍵詞成對出現的,標簽名不區分大小寫,推薦小寫表示。標簽對中第一個標簽是開始標簽,第二個標簽是結束標簽。

<標簽>內容</標簽>

標簽分為行內標簽(inline)塊標簽(block)

  • 行內元素:每個行內元素獨占一行,高和外邊距不可改變;寬度就是他的文字和圖片寬度;內聯元素只能容納文本或者其他的內聯元素。常用的行內元素有:<span>、<a>、<br>、<input>、<img>
  • 塊元素:塊元素總是在新的一行上開始,且多個塊元素能同時在一行;高度、行高以及內外邊距都可以設置;寬度缺省是他的容器的100%,除非設定一個寬度。塊元素可以容納其他塊元素和內聯元素,p元素除外,段落標簽只能嵌套行內元素,不能嵌套塊元素。常用的塊元素有:<div>、<h1>~<h6>、<form>、<hn>、<ul>、<table>

HTML標簽分為雙標簽單標簽

  • 雙標簽:成對出現,包含開始標簽和結束標簽 <html></html>
  • 單標簽:只有開始標簽,沒有結束標簽,可以手動添加“/”表示閉合,也可以不加“/”。<br>或者<br/>都可以

標簽的屬性:標簽屬性書寫在開始標簽中,使用空格與標簽名隔開,用於設置當前標簽的顯示內容或者修飾顯示效果。由屬性名和屬性值組成,屬性值使用雙引號表示。

同一個標簽中可以添加若干組標簽屬性,使用空格間隔。

<img src="imgs/img01.jpg" width="200px" height="200px">

標簽嵌套:在雙標簽中書寫其他標簽,稱為標簽嵌套;

標簽元素的嵌套關系嵌套結構中,外層元素稱為父元素,內層元素稱為子元素;多層嵌套結構中,所有外層元素統稱為祖先元素,內層元素統稱為后代元素;平級結構互為兄弟元素

常用標簽

<!doctype html>文檔類型聲明,便於瀏覽器正確解析標簽及渲染樣式

<!doctype html> 

<html> </html>:HTML文檔開始的標志和文檔結束標記

<html> </html>

<head>頭部元素

頭部設置,可在head中設置網頁標題,引入外部的資源文件

 <head>元素中可以插入 <title>、<script>、<style>、<meta>、<link>、 <noscript>、<base>

<base> </base>:設置網頁的默認URL,因此該網頁的其他 src 可以使用相對路徑。案例

<head>
  <base href="http://www.runoob.com/images/" target="_blank">
</head>

<link> </link>:定義了一個文檔和外部資源之間的關系。通常用來鏈接樣式

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

<style> </style>:可以定義文檔樣式文件引用地址;也可以直接在<style>中添加樣式

<head>
  <style type="text/css">
    body {background-color:yellow}
    p {color:blue}
  </style>
</head>

<meta>元素:定義基本的元數據,以供瀏覽器解析。

<meta>標簽有以下作用:

為搜索引擎定義關鍵詞:

<meta name="keywords" content="HTML, CSS, XML, XHTML, JavaScript">

為網頁定義描述內容

<meta name="description" content="免費 Web & 編程 教程">

定義網頁作者

<meta name="author" content="Runoob">

每30秒刷新當前頁面

<meta http-equiv="refresh" content="30">

設置網頁字符編碼,如果中文出現亂碼,可以設置編碼格式為utf-8,或者gbk。

<meta charset="utf-8">

<script> </script>:定義JavaScript腳本文件,或者寫JS代碼

通過 JavaScript 輸出 "Hello world":

<head>
    <script>
        document.write("Hello World!")
    </script>
</head>    

<title> </title>:設置網頁標題,顯示在網頁選項卡上方

<title>網頁標題</title>

<body>主體元素

</body>網頁主體部分,顯示網頁主要內容

<body>
   網頁主體內容
</body>

接下來連在一起窺探一下網頁的基本結構框架。

<!-- HTML文檔開始的標志 -->
<html> 
   <!-- 頭部設置,可在head中設置網頁標題,引入外部的資源文件 -->
   <head>
       <!-- 設置網頁標題,顯示在網頁選項卡上方 -->
       <title>網頁標題</title>
       <!-- 設置網頁字符編碼 -->
       <meta charset="utf-8"> 
   </head>
   <!-- 網頁主體部分,顯示網頁主要內容 -->
   <body> 
       網頁主體內容
   </body>
</html><!-- 文檔結束-->

文本標簽

標題標簽

自帶加粗效果,從h1~h6字體大小逐級遞減

 <h1>一級標題</h1>
 <h2>二級標題</h2>
 <h3>三級標題</h3>
 <h4>四級標題</h4>
 <h5>五級標題</h5>
 <h6>六級標題</h6>

段落標簽<p></p>

<p>段落文本</p>

屬性:

  • title="文字":鼠標移上去顯示的文字
  • style="text-align:center":文本居中

文本格式化標簽

<b><strong>加粗文本

<i><em>:定義斜體文本

<u><del>刪除線

<ins>下划線

<big> & <small>放大字體 & 縮小字體

<sub><sup>下標(塊元素) &  上標(塊元素)

<pre>:定義預格式文本,被包裹的文本 是什么格式就以什么格式輸出

<address>:定義地址

<bdo>:定義文字方向,rtl:從右向左,ltr:從左向右

<span>:行分區,用於對特殊文本進行特殊處理

<br>:換行,單標簽

<hr>:水平線,單標簽

  某些情況下,瀏覽器會將一些特殊字符按照 HTML 的方式解析,影響顯示結果。此時需要將這類字符轉換為其他的形式書寫。

使用 &lt; 在頁面中呈現 "<"
使用 &gt; 在頁面中呈現 ">"
使用 &nbsp; 在頁面中呈現一個空格
使用 &copy; 在頁面中呈現版權符號"©"
使用 &yen; 在頁面中呈現人民幣符號"¥"

區域塊

塊級元素在瀏覽器顯示時,通常會以新行來開始。

塊級容器 <div> </div>

<div>元素沒有特定的含義,由於它是塊級元素,瀏覽器會在其前后拆行,<div>元素常用於文檔布局結構划分,結合CSS實現網頁布局

快捷鍵: div#top

<div id="main">頁面主體區域</div>
<div id="bottom">頁面底部區域</div>

行內容器 <span> </span>

<span>元素沒有特定的含義,由於它是內聯元素,因此可以在同一行顯示。

媒體標簽

圖片標簽 <img>

<img src="" alt="">:用於在網頁中插入一張圖片

<img href="#top" src="" width="" height="" title="鼠標停留時顯示" alt="圖片加載失敗">

屬性:

  1. href:錨, 可以快速定位到錨所對應的位置.
  2. src:用於給出圖片的URL,必填。
  3. alt:用於設置圖片加載失敗后的提示文本
  4. width/height:用於設置圖片尺寸,取像素值,默認按照圖片的原始尺寸顯示。
  5. title:用於設置圖片標題,鼠標懸停在圖片上時顯示

<map name=""></map>:定義圖像地圖,name值要等於<img>的usemap屬性值。

<area></area>:定義圖像地圖中可點擊的區域

屬性

  • coords:規定區域的坐標
  • href:規定區域的目標 URL
  • shape:規定區域的形狀。default(默認)、rect(矩形)、circle(圓圈)、poly(連接線)

如果規定的區域是矩形:(左上角頂點坐標為(x1,y1),右下角頂點坐標為(x2,y2))

<area shape="rect" coords="x1,y1,x2,y2" href=url>

如果規定的區域是園:(圓心坐標為(X1,y1),半徑為r)

<area shape="circle" coords="x1,y1,r" href=url>

合在一起使用

<img src="planets.gif" width="145" height="126" alt="Planets" usemap="#planetmap">

<map name="planetmap">
  <area shape="rect" coords="0,0,82,126" alt="Sun" href="sun.htm">
  <area shape="circle" coords="90,58,3" alt="Mercury" href="mercur.htm">
  <area shape="circle" coords="124,58,8" alt="Venus" href="venus.htm">
</map>

音頻標簽<audio> 

<audio controls>
    <source src="horse.mp3" type="audio/mpeg">
</audio>

<audio> 元素支持的3種文件格式:MP3、Wav、Ogg。

屬性:

  • autoplay:音頻就緒后立馬播放
  • controls:顯示音頻控件(播放/暫停 按鈕)
  • src:規定音頻文件的URL
  • loop:循環播放
  • muted:靜音播放

視頻 <video> 

  <video> 元素提供了 播放、暫停和音量控件來控制視頻。<video>分別支持MP4、WebM、Ogg格式的音頻。<video> 元素支持多個 <source> 元素,<source> 元素可以鏈接不同的視頻文件。瀏覽器將使用第一個可識別的格式:

<video width="320" height="240" controls>
    <!--瀏覽器將使用第一個可識別的格式-->
    <source src="movie.mp4" type="video/mp4">
    <source src="movie.ogg" type="video/ogg">
    <!--提供給不支持 video 元素的瀏覽器顯示的-->
    您的瀏覽器不支持 HTML5 video 標簽。
</video>

圖形標簽 <canvas> </canvas>

  <canvas>標簽用來定義圖形容器,必須通過腳本(JavaScript)來繪制圖形。

繪制畫布

<canvas id="myCanvas" width="200" height="100" style="border:1px solid #000000;">
</
canvas>

Canvas 坐標

  繪制正方形fillRect(x1,y1,x2,y2),使用JavaScript來繪制圖像

<canvas id="myCanvas" width="200" height="100" style="border:1px solid #c3c3c3;">
</canvas>

<script>
    var c = document.getElementById("myCanvas"); //找到 <canvas> 元素對象
    var ctx = c.getContext("2d");   //創建 context 對象
    ctx.fillStyle = "#FF0000";  // ctx對象填充紅色樣式
    ctx.fillRect(0, 0, 150, 75);    //ctx對象填充正方形(x1,y1,x2,y2)
</script>

注意:getContext("2d") 對象是內建的 HTML5 對象,擁有多種繪制路徑、矩形、圓形、字符以及添加圖像的方法。

Canvas 路徑

  • moveTo(x,y) 定義線條開始坐標
  • lineTo(x,y) 定義線條結束坐標
<canvas id="myCanvas" width="200" height="100" style="border:1px solid #c3c3c3;">
</canvas>

<script>
    var c = document.getElementById("myCanvas");//找到 <canvas> 元素對象
    var ctx = c.getContext("2d");//創建 context("2d") 對象
    ctx.moveTo(0, 0);       //定義線條開始坐標
    ctx.lineTo(200, 100);   //定義線條結束坐標
    ctx.stroke();    //使用stroke()方法來繪制線條 </script>

 

Canvas 圓形

arc(x,y,r,start,stop)

var c=document.getElementById("myCanvas");
var ctx=c.getContext("2d");
ctx.beginPath();
ctx.arc(95,50,40,0,2*Math.PI);
ctx.stroke();

 

Canvas 文本

  • font - 定義字體
  • fillText(text,x,y) - 在 canvas 上繪制實心的文本
  • strokeText(text,x,y) - 在 canvas 上繪制空心的文本
var c=document.getElementById("myCanvas");
var ctx=c.getContext("2d");
ctx.font="30px Arial";
ctx.strokeText("Hello World",10,50);

Canvas - 漸變

漸變可以填充在矩形, 圓形, 線條, 文本等,各種形狀可以自己定義不同的顏色

  • createLinearGradient(x, y, x1, y1) - 創建線條漸變
  • createRadialGradient(x, y, r, x1, y1, r1) - 創建一個徑向/圓漸變
  • addColorStop()方法指定停止顏色,必須使用兩種或兩種以上停止顏色,參數使用坐標來描述,可以是0至1.
<script>
    var c = document.getElementById("myCanvas");
    var ctx = c.getContext("2d");

    // 創建漸變
    var grd = ctx.createLinearGradient(0, 0, 200, 0);
    grd.addColorStop(0, "red");
    grd.addColorStop(1, "white");

    // 填充漸變
    ctx.fillStyle = grd;
    ctx.fillRect(10, 10, 150, 80);
</script>

Canvas - 圖像

drawImage(image, x, y)

var c=document.getElementById("myCanvas");
var ctx=c.getContext("2d");
var img=document.getElementById("scream");
ctx.drawImage(img,10,10);

超鏈接標簽

  用戶可以點擊超鏈接實現跳轉至其他頁面,默認情況下,鏈接將以以下形式出現在瀏覽器中:

  • 一個未訪問過的鏈接顯示為藍色字體並帶有下划線
  • 訪問過的鏈接顯示為紫色並帶有下划線
  • 點擊鏈接時,鏈接顯示為紅色並帶有下划線
<a href="http://www.taobao.com" target="_self">淘寶</a>
<a href="http://www.baidu.com" target="_blank">百度</a>

屬性:

  1. href:錨,用於設置目標文件的URL,也可以指向某個id號屬性的元素,必填。
  2. target:用於設置目標文件的打開方式,默認在當前窗口打開。
    • target="_self":當前窗口打開
    • target="_blank":新建窗口打開
    • target="_top":回到網站首頁
    • target="_parent":回到上一界面

列表標簽

無序列表 ul>li

默認用實心圓點標識列表項

快捷鍵: ul>li*3

<ul>
    <li>列表項 1</li> 
    <li>列表項 2</li>
    <li>列表項 3</li>
</ul>

有序列表 ou>li

默認使使用阿拉伯數字標識每條數據,可以使用start屬性設置起始的值,默認為1

快捷鍵: ol>li*3
<ol>
    <li>列表項</li>
    <li>列表項</li>
    <li>列表項</li>
</ol>

列表嵌套,在已有列表中嵌套添加另一個列表

<ol>
    <li>
        西游記
        <ul>
            <li>孫悟空</li>
            <li>豬八戒</li>
            <li>沙和尚</li>
        </ul>
    </li>
</ol>

表格標簽<table>

表格由行和單元格組成,常用於直接的數據展示或輔助排版,基本結構如下:

<table></table>:創建表格

屬性:

  • border:規定單元格邊框

<caption>表名</caption>:表名

<tr></tr>:行標簽,創建一行

<td></td>:列標簽,創建一列

3行5列表格快捷鍵    table>tr*3>td*5
<!-- 創建表格標簽,寬度200個像素,表框1,表格間距0 -->
<table width="200px" border="1" cellspacing="0">
  <caption>表名</caption>
<!-- 創建行標簽 --> <tr> <!-- 行中創建單元格以顯示數據 --> <td>姓名</td> <td>年齡</td> <td>班級</td> </tr> <tr> <td>張三</td> <td>20</td> <td>一(1)班</td> </tr> </table>

單元格合並

  用於調整表格結構,分為跨行合並 和 跨列合並合並之后需要刪除被合並的單元格,保證表格結構完整。

單元格屬性 作用 取值
colspan 合並單元格 無單位數值
rowspan 合並單元格 無單位數值
<table border="1">
    <tr>
        <th>姓名</th>
        <td>李小明</td>
    </tr>
    <tr>
        <th rowspan="2">電話</th>
        <td>010-1234567</td>
    </tr>
    <tr>
        <td>13912321213</td>
    </tr>
</table> 

<table border="1">
    <tr>
        <th>姓名</th>
        <th colspan="2">電話</th>  <!--跨越兩列-->
    </tr>
    <tr>
        <td>李小明</td>
        <td>010-1234567</td>
        <td>13912321213</td>
    </tr>
</table>

表單標簽 <form> </form>

  表單用於收集數據並提交給服務器,由表單元素和表單控件組成。表單元素允許用戶在表單中輸入內容,比如:文本域(textarea)、下拉列表、單選框(radio-buttons)、復選框(checkboxes)等等。

表單標簽 使用<form> </from>來設置

屬性:

  • action:設置數據的提交地址
  • method:設置數據的提交方式,默認為get方式,可以設置為post
  • onsubmit:設置表單數據提交時的觸發事件的執行函數(事件綁定中詳細介紹)
<form action="" method="" onsubmit="">
    <!--此處為表單控件-->
</form>

輸入元素 input

輸入類型是由類型屬性type定義。文本域的默認寬度是 20 個字符。

屬性

  • type:設置控件類型,如果值為"password"則表示密碼不可見,如果為“text”則為普通文本
    • text:普通文本
    • password:密碼,不可見
    • radio:單選按鈕
    • checkbox:復選按鈕
    • submit / reset:提交和重置
    • button:按鈕
    • color:選擇顏色
    • data:選擇日期
  • name:設置控件名稱,最終與值一並發送給服務器
  • value:設置控件的值
  • placeholder:設置輸入框中的提示文本
  • maxlength:設置輸入框中可輸入的最大字符數
  • checked:設置單選按鈕或復選按鈕的默認選中
  • selected:設置下拉菜單的默認選中
  • readonly:只讀,就是不讓輸入

普通文本 type="text"

<label for="name">姓名:</label>
<input type="text" id="name" readonly placeholder="請輸入用戶名" name="name">

密碼 type="password"

        <div>
            <label for="pass">密碼:</label>
            <input type="password" 
                   id="pass" 
                   placeholder="請輸入密碼"
                   name="pass">
        </div> 

單選按鈕 type="radio"

<input type="radio"  name="sex" value="1"  checked readonly /><input type="radio" readonly name="sex" value="2" />

復選按鈕 type="checkbox"

<input type="checkbox" name="like" />編程
<input type="checkbox" name="like2" checked />游戲
<input type="checkbox" name="like3" />閱讀

提交和重置 type="submit \ reset"

<input type="submit" value="注冊" />
<input type="reset" disabled value="重置" />

按鈕 type="button"

<input type="button" value="Hello world!">

輸入多行文本內容

<textarea name="demo" id="demo" cols="30" rows="10">
    默認文本
</textarea>

下拉列表

下拉列表select,id要對應label的值

<option>中如果定義了selected屬性,則會默認先選中它。

<select name="xl" id="xl">
    <option value="1">大學</option>
    <option value="2">中學</option>
    <option value="3" selected>小學</option>
</select>

最后融會貫通的運用一下表單元素

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>
    <form action="#">
        <div>
            <label for="name">姓名:</label>
            <!-- 占位符 -->
            <input type="text"
                   id="name"
                   readonly
                   placeholder="請輸入用戶名"
                   name="name">
        </div>
        <div>
            <label for="pass">密碼:</label>
            <input type="password"
                   id="pass"
                   placeholder="請輸入密碼"
                   name="pass">
        </div>
        <div>
            <label for="xl">學歷:</label>
            <!-- 下拉列表框元素 使用 option 設置列表項 value 是列表的值-->
            <select name="xl" id="xl">
                <option value="1">大學</option>
                <option value="2">中學</option>
                <option value="3">小學</option>
            </select>
        </div>
        <div>
            <label for="sex">性別:</label>
             <!-- 單選按鈕元素 相互排斥時,將 name 屬性值設置為同一個-->
             <input type="radio"
                    name="sex"
                    value="1"
                    checked
                    readonly
                    /><input type="radio" readonly name="sex" value="2" /></div>
        <div>
            <label for="like">愛好:</label>
            <input type="checkbox" name="like" />編程
            <input type="checkbox" name="like2" checked />游戲
            <input type="checkbox" name="like3" />閱讀
        </div>
        <div>
            <label for="demo">簡介:</label>
            <!-- 輸入多行多列文本內容 -->
            <textarea name="demo"
                      id="demo"
                      cols="30"
                      rows="10">
            </textarea>
        </div>
        <div>
            <input type="submit" value="注冊" />
            <input type="reset" disabled value="重置" />
        </div>
    </form>
</body>
</html>
View Code

HTML屬性

  HTML可以設置屬性,一般在開始標簽中添加標簽屬性信息,屬性總是以名稱/值對的形式出現,比如:name="value"

由於HTML每個標簽都包含很多屬性,菜鳥教程總結了常用標元素的屬性 HTML 標簽參考手冊

在此列出用的最多的幾個屬性:

 屬性  描述
class 為html元素定義一個或多個類名(classname)(類名從樣式文件引入)
id 定義元素的唯一id
style 規定元素的行內樣式(style)
title 描述了元素的額外信息(作為工具條使用)

HTML全局屬性

語義元素

  語義元素能夠清楚的描述其意義給瀏覽器和開發者。

  許多現有網站都包含以下HTML代碼: <div id="nav">,<div class="header">,或者 <div id="footer">,來指明導航鏈接,頭部,以及尾部。

  HTML5 提供了新的語義元素來明確一個Web頁面的不同部分:

  • <header>
  • <nav>
  • <section>
  • <article>
  • <aside>
  • <figcaption>
  • <figure>
  • <footer>

<header>元素:描述了文檔的頭部區域,在頁面中可以使用多個<header>元素。

<nav>元素:定義頁面導航鏈接

<article>元素:定義獨立的內容,

<section>元素:定義文檔中的節,比如章節、頁眉、頁腳或文檔的其他部分。

<aside>元素:定義頁面主區域之外的內容(比如側邊欄)

<footer>元素:描述了文檔的底部區域

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM