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

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

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

          如何快速度學(xué)會(huì),HTML 轉(zhuǎn) Markdown 的辦法

          在好的技術(shù)文章非常多,每天各種技術(shù)群里,各種技術(shù)社區(qū),有很多質(zhì)量非常好的技術(shù)文章,比如 CSDN,掘金、微信公眾號(hào)等, 于是我們就收藏了,收藏等于學(xué)會(huì)。

          可是問題來了,我們收藏到哪呢?CSDN 有了彈窗廣告,掘金之前好的文章居然被刪除了,其實(shí)最好的方式是將文章保存為 markdown,保存到自己的知識(shí)庫(kù)中,或者可以上傳自己的 github。

          如何將文章將保存為 markdown ?

          下面推薦 2 個(gè)工具非常好用可以將直接將 HTML 轉(zhuǎn)為 markdown,大家可以收藏使用

          • https://devtool.tech/html-md
          • https://www.helloworld.net/html2md

          devtool.tech

          其實(shí) devtool.tech 里面的每個(gè)工具都挺好用的。

          HTML 轉(zhuǎn) markdown 是如何實(shí)現(xiàn)?

          其實(shí)有個(gè)包 turndown 可以直接將 html 轉(zhuǎn)為 markdown,并且可以在瀏覽器和 nodejs 中執(zhí)行

          安裝

          npm

          npm install turndown
          

          瀏覽器

          <script src="https://unpkg.com/turndown/dist/turndown.js"></script>
          

          使用

          var TurndownService = require('turndown')
          
          var turndownService = new TurndownService()
          var markdown = turndownService.turndown('<h1>Hello world!</h1>')
          

          直接將 html 字符串傳入就可以了,返回 markdown 字符串

          turndown 還支持配置規(guī)則, 比如

          保留標(biāo)簽

          turndownService.keep(['del', 'ins'])
          turndownService.turndown('<p>Hello <del>world</del><ins>World</ins></p>')
          // 'Hello <del>world</del><ins>World</ins>'
          

          移除標(biāo)簽

          turndownService.remove('del')
          turndownService.turndown('<p>Hello <del>world</del><ins>World</ins></p>')
          // 'Hello World'
          

          插件

          turndown 還支持插件的使用,官方就提供了 turndown-plugin-gfm,意思是 GitHub Flavored Markdown 功能特點(diǎn)有:

          • strikethrough 支持 <strike>, <s>, 和 <del> 標(biāo)簽,也就是刪除線
          • tables 支持表格
          • taskListItems 支持任務(wù)列表,也就是 checkbox 任務(wù)

          使用代碼

          var TurndownService = require('turndown')
          var turndownPluginGfm = require('turndown-plugin-gfm')
          
          var gfm = turndownPluginGfm.gfm
          var turndownService = new TurndownService()
          turndownService.use(gfm)
          var markdown = turndownService.turndown('<strike>Hello world!</strike>')
          

          一般都要加上這個(gè)插件

          開發(fā)一個(gè)類似的工具

          其實(shí)使用 turndown 已經(jīng)完成類似的功能,為了美觀,我們可以給代碼加上代碼編輯器 codemirror 。

          新的 codemirror6 完全重寫,采用了插件化的形式,代碼量更小,我用的技術(shù)棧是 react, 社區(qū)封裝了一個(gè)好用的庫(kù) rodemirror。

          使用代碼示例

          import { useMemo, useState } from "react";
          import CodeMirror from "rodemirror";
          import { basicSetup } from "@codemirror/basic-setup";
          import { oneDark } from "@codemirror/theme-one-dark";
          import { javascript } from "@codemirror/lang-javascript";
          import { markdown as langMarkdown } from "@codemirror/lang-markdown";
          
          const Editor = () => {
            const extensions = useMemo(() => [basicSetup, oneDark, javascript(),langMarkdown()], []);
          
            const defaultValue = "console.log('Hello world!')";
            // remove if you do not need the value
            const [value, setValue] = useState(defaultValue);
          
            return (
              <CodeMirror
                value={defaultValue}
                onUpdate={(v) => {
                  if (v.docChanged) {
                    setValue(v.state.doc.toString());
                  }
                }}
                extensions={extensions}
              />
            );
          };
          
          export default Editor;
          

          lang-javascript 下的包是讓 CodeMirror 支持語法高亮。接下來就是配合 react 常規(guī)寫法。效果如下


          小結(jié)

          一個(gè)簡(jiǎn)易版的 html 轉(zhuǎn) markdown 編輯器就實(shí)現(xiàn)了,大家可以手動(dòng)嘗試實(shí)現(xiàn)一下。本文未涉及這些工具的內(nèi)部實(shí)現(xiàn)原理,后續(xù)若遇到問題需要深入研究。

          小技巧

          常規(guī)的做法,是使用 chreome 控制臺(tái)選中 article 標(biāo)簽就可以直接復(fù)制 html 了,但有時(shí)候如果 html 不規(guī)范,可能轉(zhuǎn)換失敗。

          有時(shí)候有些文章,文章并不是在一個(gè)標(biāo)簽中,比如 medium.com 中的文章就不在一個(gè)標(biāo)簽中,這個(gè)時(shí)候,拷貝 HTML 就麻煩了。還有個(gè)問題,

          Word 中的文檔要轉(zhuǎn)成 markdown 怎么半呢 ?

          其實(shí)我們可以通過直接選中文本然后支持粘貼到 typora 中,然后就直接轉(zhuǎn)成 markdown 了。

          所以說了這么多,這個(gè)工具我沒開發(fā)。

          以上就是本文全部?jī)?nèi)容,希望這篇文章對(duì)大家有所幫助,也可以參考我往期的文章或者在評(píng)論區(qū)交流你的想法和心得,歡迎一起探索前端。

          Input Date 對(duì)象

          Input Date 對(duì)象是 HTML5 新增的。

          Input Date 對(duì)象表示使用了 type="date" 屬性的 HTML <input> 元素 。

          注意:Internet Explorer 或 Firefox 不支持用 type="date" 屬性的 <input> 元素。

          訪問 Input Date 對(duì)象

          你可以用個(gè)使用 getElementById() 函數(shù)來訪問使用 type="date" 屬性的 <input> 元素 :

          var x = document.getElementById("myDate");嘗試一下

          提示: 你同樣可以通過表單的元素集合來訪問 Input Date 對(duì)象。

          創(chuàng)建 Input Date 對(duì)象

          你可以使用 document.createElement() 方法來創(chuàng)建使用 type="date" 屬性的 <input> 元素:

          var x = document.createElement("INPUT");

          x.setAttribute("type", "date");嘗試一下

          Input Date 對(duì)象屬性

          Property描述
          autocomplete設(shè)置或返回日期字段的 autocomplete 屬性值
          autofocus設(shè)置或返回日期字段在頁面加載后是否自動(dòng)獲取焦點(diǎn)
          defaultValue設(shè)置或返回日期字段默認(rèn)的值
          disabled設(shè)置或返回日期字段是否可用
          form返回使用日期字段的表單引用
          list返回包含了日期字段的 datalist 引用
          max設(shè)置或返回日期字段的 max 屬性值
          min設(shè)置或返回日期字段的 min 屬性值
          name設(shè)置或返回日期字段的 name 屬性值
          readOnly設(shè)置或返回日期字段是否只讀
          required設(shè)置或返回日期字段在表單中是否為必填字段
          step設(shè)置或返回日期字段的 step 屬性值
          type返回日期字段的表單類型
          value設(shè)置或返回日期字段的 value 屬性值

          標(biāo)準(zhǔn)屬性和事件

          Input Date 對(duì)象同樣支持標(biāo)準(zhǔn) 屬性 和 事件。

          如您還有不明白的可以在下面與我留言或是與我探討QQ群308855039,我們一起飛!

          、Html概述

          Html是Hyper Text Mark-up Language 的首字母簡(jiǎn)寫,意思是超文本標(biāo)記語言,超文本指的是超鏈接,標(biāo)記指的是標(biāo)簽,是一種用來制作網(wǎng)頁的語言,這種語言由一個(gè)個(gè)的標(biāo)簽組成,用這種語言制作的文件保存的是一個(gè)文本文件,文件的擴(kuò)展名為html或者h(yuǎn)tm,一個(gè)html文件就是一個(gè)網(wǎng)頁,html文件用編輯器打開顯示的是文本,可以用文本的方式編輯它,如果用瀏覽器打開,瀏覽器會(huì)按照標(biāo)簽描述內(nèi)容文件渲染成網(wǎng)頁,顯示的網(wǎng)頁可以從一個(gè)網(wǎng)頁鏈接跳轉(zhuǎn)到另一個(gè)網(wǎng)頁。
          

          二、Html標(biāo)簽語法

          Html中標(biāo)簽分為 :成對(duì)標(biāo)簽和自閉合標(biāo)簽【空標(biāo)簽】

          1、成對(duì)標(biāo)簽

          成對(duì)出現(xiàn),有開始標(biāo)簽必須有結(jié)束標(biāo)簽,內(nèi)容包裹在兩個(gè)標(biāo)簽中,而且開始標(biāo)簽名和結(jié)束標(biāo)簽名一致,并且結(jié)束標(biāo)簽必須以斜杠/開頭

          語法:

          <font>內(nèi)容</font>
          

          2、自閉合標(biāo)簽

          只有一個(gè)標(biāo)簽,用斜杠結(jié)束,斜杠也可以省略

          語法:

          <br/>
          

          注意事項(xiàng):

          • 成對(duì)標(biāo)簽中,結(jié)束標(biāo)簽必須以斜杠開頭
          • 成對(duì)標(biāo)簽與成對(duì)標(biāo)簽可以嵌套不能交叉
          • 標(biāo)簽名不區(qū)分大小寫,但是我們都必須小寫

          三、Html基本架構(gòu)

          <!DOCTYPE html>
          <html lang="en">
          <head>
              <title></title>
          </head>
          <body>
              
          </body>
          </html>
          

          1、!DOCTYPE

          !DOCTYPE html是文檔聲明,定義文檔類型為html,并且告訴不同的瀏覽器用標(biāo)準(zhǔn)方式進(jìn)行解析html語言,如果不寫的話,會(huì)產(chǎn)生怪異模式,所謂怪異模式,就是瀏覽器會(huì)用自己的方式進(jìn)行解析,不同的瀏覽器有各自的解析方式,從而會(huì)出現(xiàn)無效果、不兼容等問題。

          注意,html中有兩種聲明類型,一種叫做xhtml,即html,另一種叫做html5,html5是xhtml的升級(jí)版,所以我們建議使用html5的聲明方式

          xhtml聲明方式:

          <htmlxmlns="http://www.w3.org/1999/xhtml">

          html5聲明方式:

          <!DOCTYPE html>

          2、html

          html是html文檔的整體,也就是表示一個(gè)網(wǎng)頁。

          html中的lang="en"是定義該文件語言是英文

          3、head

          head是html的第一層子元素【子標(biāo)簽】,負(fù)責(zé)對(duì)網(wǎng)頁進(jìn)行一些設(shè)置以及定義標(biāo)題,設(shè)置包括定義網(wǎng)頁的編碼格式,外鏈css樣式文件和JavaScript文件等。設(shè)置的內(nèi)容不會(huì)顯示在網(wǎng)頁上,標(biāo)題的內(nèi)容會(huì)顯示在標(biāo)題欄中。即title標(biāo)簽。

          4、meta

          meta是html語言head標(biāo)簽中的一個(gè)輔助性標(biāo)簽,該標(biāo)簽不包含任何內(nèi)容,但是該標(biāo)簽的屬性定義了與文檔相關(guān)聯(lián)的名稱,比如:編碼

          <meta charset="utf-8"></meta>
          

          5、body

          body也是html的第一層子元素,我們頁面中顯示的所有內(nèi)容全部都是編寫在該標(biāo)簽體中。

          四、Html文檔規(guī)范

          html制定了文檔的編寫規(guī)范,必須遵守。

          所有的標(biāo)簽必須小寫

          所有的屬性必須用雙引號(hào)括起來

          五、Html注釋

          html文檔代碼中可以插入注釋,注釋是對(duì)代碼的說明和解釋,注釋的內(nèi)容不會(huì)顯示在頁面上。

          注釋的語法:

          <!-- 注釋的內(nèi)容 -->

          六、html基本屬性

          注:屬性是標(biāo)簽的輔助作用。

          屬性 描述 bgcolor 設(shè)置網(wǎng)頁的背景顏色 background 設(shè)置網(wǎng)頁的背景圖片

          1.bgcolor

          設(shè)置網(wǎng)頁的背景顏色

          <!DOCTYPE html>
          <html lang="en">
          <head>
              <title>html的屬性</title>
          </head>
          <body bacolor="pink">
              
          </body>
          </html>
          

          2.路徑

          我們?cè)陂_發(fā)網(wǎng)頁時(shí),需要經(jīng)常的插入圖片、視頻、文件等一些操作,但是我們需要指定文件所在的位置,這個(gè)位置就是所謂的路徑

          路徑分為:

          1. 相對(duì)路徑 指目標(biāo)相對(duì)于當(dāng)前文件的路徑,網(wǎng)頁結(jié)構(gòu)設(shè)計(jì)中多采用這種方式來表示目標(biāo)的路徑。相對(duì)路徑有多種表示方法,其表示的意義不盡相同。表示方法如下: ./ :代表文件所在的目錄(可以省略不寫)../ :代表文件所在的父級(jí)目錄../../ :代表文件所在的父級(jí)目錄的父級(jí)目錄/ :代表文件所在的根目錄【/ : 可以理解為目標(biāo)文件的絕對(duì)路徑】
          2. 絕對(duì)路徑 指目標(biāo)文件的完整路徑,從盤符開始。

          3.background

          設(shè)置網(wǎng)頁的背景圖片

          <!DOCTYPE html>
          <html lang="en">
          <head>
              <title>html的屬性</title>
          </head>
          <body background="../images/10.jpg">
              
          </body>
          </html>
          

          注意事項(xiàng):

          bgcolor和background不能同時(shí)使用

          background不能指定絕對(duì)路徑

          七、Html標(biāo)簽

          1.網(wǎng)頁的組成

          網(wǎng)頁的組成:文字、圖片、視頻、超鏈接、列表、表格、表單等組成。

          2、文本段落標(biāo)簽

          標(biāo)簽 描述 hn 設(shè)置文字標(biāo)題【n:取值范圍 1~6】 center 居中對(duì)齊 hr 水平線 屬性(width:寬度 color:顏色 size:粗細(xì)) br 換行 p 段落

          3、文本控制標(biāo)簽

          標(biāo)簽 描述 font 設(shè)置字體,需要借助屬性設(shè)置

          屬性 描述 color 設(shè)置字體顏色 size 設(shè)置字體大小,不需要帶單位,取值范圍:1~7【瀏覽器默認(rèn)值:3】 face 設(shè)置字體風(fēng)格

          <font size="2" color="red" face="黑體"></font>
          

          4、文本格式化標(biāo)簽

          標(biāo)簽 描述 b 定義粗體文本 em 定義著重文字 i 定義斜體文字 small 定義小號(hào)字 strong 定義加重語氣 sub 定義下標(biāo)字 sup 定義上標(biāo)字 ins 定義插入字 del 定義刪除字

          <!DOCTYPE html>
          <html lang="en">
          <head>
              <meta charset="UTF-8">
              <title>Html文本格式化標(biāo)簽</title>
          </head>
          <body>
          
              <b>粗體文本</b>
              <i>傾斜文本</i>
              <em>著重文本</em>
              <small>小號(hào)字</small>
              <strong>加重語氣</strong>
              <sub>上標(biāo)</sub>
              <sup>下標(biāo)</sup>
              <ins>插入字</ins>
              <del>刪除字</del>
              
          </body>
          </html>
          

          5、圖片標(biāo)簽

          在Html中,圖像由

          標(biāo)簽定義。

          是空標(biāo)簽,意思是說,它只包含屬性。

          要在頁面上顯示圖像,你需要使用源屬性(src)。src指"source"。源屬性的值是圖像的URL地址。

          標(biāo)簽 描述 img 圖片標(biāo)簽

          屬性 描述 src 指定圖片的地址 width 設(shè)置圖片的寬度 height 設(shè)置圖片的高度 alt 設(shè)置圖片的預(yù)備文本

          注意事項(xiàng):不建議設(shè)置圖片大小,容易失真

          6、audio

          在Html中,聲音由標(biāo)簽定義。

          標(biāo)簽 描述 audio 聲音標(biāo)簽

          屬性 描述 src 指定聲音地址

          <audio src="nice.mp3">對(duì)不起,您的瀏覽器不支持</audio>
          

          7、video

          在Html中,視頻由video標(biāo)簽定義

          標(biāo)簽 描述 video 視頻標(biāo)簽

          屬性 描述 src 指定視頻地址

          <video src="美女.mp4">對(duì)不起,您的瀏覽器不支持</video>
          

          8、超鏈接

          a標(biāo)簽定義超鏈接,用于從一個(gè)頁面鏈接到另一個(gè)頁面。

          a標(biāo)簽最重要的屬性是href,它指定鏈接的目標(biāo)。

          在所有瀏覽器中,鏈接的默認(rèn)外觀如下:

          未被訪問的鏈接帶有下劃線而且是藍(lán)色的

          已被訪問的鏈接帶有下劃線而且是紫色的

          活動(dòng)鏈接帶有下劃線而且是紅色的

          語法:

          <a href="鏈接目標(biāo)">點(diǎn)擊內(nèi)容</a>
          

          屬性 描述 href 指定鏈接目標(biāo) name 指定錨的名稱 download 指定下載鏈接 target 指定跳轉(zhuǎn)方式 屬性值 描述 _blank 新窗口打開【常用】 _parent 在父窗口中打開鏈接【了解】 _self 默認(rèn),在當(dāng)前窗口打開【了解】 _top 在當(dāng)前窗體打開鏈接,并替換當(dāng)前的整個(gè)窗體【了解】 framename 到 iframe 在講【常用】

          超鏈接分類:

          • 內(nèi)部鏈接 鏈接目標(biāo):本地頁面 <a href="demo.html">點(diǎn)擊內(nèi)容</a>
          • 外部鏈接 鏈接目標(biāo):外部頁面 <a href="http://www.baidu.com">點(diǎn)擊內(nèi)容</a>
          • 多媒體鏈接 鏈接目標(biāo):圖片、視頻等 <a href="images/美女.jpg">點(diǎn)擊內(nèi)容</a>
          • 電子郵件鏈接 鏈接目標(biāo):電子郵件【系統(tǒng)自帶的電子郵件】 <a href="mailto:12345@qq.com">點(diǎn)擊內(nèi)容</a>
          • 錨鏈接 鏈接目標(biāo):錨點(diǎn) 1.建立錨點(diǎn)
            <
            a name="錨點(diǎn)名"></a>

            2.跳轉(zhuǎn)
            <a href="#錨點(diǎn)名">點(diǎn)擊內(nèi)容</a>

          9、列表

          列表的使用與word等軟件的列表概念相似,只不過是應(yīng)用在網(wǎng)頁展示中。

          1.有序列表

          有序列表是指有數(shù)字編號(hào)或字母的列表項(xiàng),可以使用css定義更多樣式。

          <!-- 有序列表 -->
              <ol type="a">
                  <li>新聞一</li>
                  <li>新聞二</li>
                  <li>新聞三</li>
              </ol>
          

          屬性 描述 type 設(shè)置符號(hào)類型 值:1 a A I i 默認(rèn)數(shù)字 start 從第幾個(gè)開始【用于ol標(biāo)簽中】 value 從第幾個(gè)開始【用于li標(biāo)簽中】

          <!-- 有序列表 -->
              <ol type="a" start="4">
                  <li>新聞一</li>
                  <li type="1" value="1">新聞二</li>
                  <li>新聞三</li>
              </ol>
          

          2、無序列表

          無序列表是指沒有數(shù)字編號(hào)或字母的列表項(xiàng),可以使用css定義更多樣式。

          <!-- 無序列表 -->
          <ul>
              <li>童裝</li>
              <li>男裝</li>
              <li>女裝</li>
          </ul>
          

          屬性 描述 type 用于設(shè)置符號(hào)類型,默認(rèn):實(shí)心圓 值:空心圓、正方形 【用于ul、li】

          <!-- 無序列表 -->
          <ul type="square">
                  <li>童裝</li>
                  <li type="circle">男裝</li>
                  <li>女裝</li>
              </ul>
          

          3、描述列表

          描述列表指每個(gè)列表項(xiàng)有單獨(dú)的標(biāo)題。

          <!-- 描述列表 -->
              <dl>
                  <dt>開源產(chǎn)品</dt>
                  <dd>Java封裝庫(kù)</dd>
                  <dd>Web組件庫(kù)</dd>
                  
                  <dt>網(wǎng)站導(dǎo)航</dt>
                  <dd>mrliujava.com</dd>
                  <dd>mrliuweb.com</dd>
              </dl>
          

          10、表格

          表格在網(wǎng)頁開發(fā)中使用頻率非常高,尤其是數(shù)據(jù)展示的時(shí)候。

          10.1 基本使用

          標(biāo)簽 描述 table 代表表格標(biāo)簽 caption 表格標(biāo)題 thead 表頭部分 tbody 表格主體部分 tfoot 表格尾部

          屬性 描述 border 表格邊框 cellspacing 單元格與單元格間距 width 寬度 height 高度 bgcolor 設(shè)置背景顏色 background 設(shè)置背景圖片 align 對(duì)齊方式

          <!-- 表格 -->
              <table border="1" cellspacing="0" width="600px" height="200px">
                  <caption>員工薪資統(tǒng)計(jì)表</caption>
                  <thead>
                      <tr>
                          <th>序號(hào)</th>
                          <th>姓名</th>
                          <th>性別</th>
                          <th>職位</th>
                          <th>薪資</th>
                      </tr>
                  </thead>
          
                  <tbody>
                      <tr>
                          <td>1</td>
                          <td>狗蛋</td>
                          <td>男</td>
                          <td>JavaEe工程師</td>
                          <td>8780</td>
                      </tr>
          
                      <tr>
                          <td>2</td>
                          <td>黑妞</td>
                          <td>女</td>
                          <td>Web前端工程師</td>
                          <td>9750</td>
                      </tr>
          
                      <tr>
                          <td>3</td>
                          <td>傻蛋</td>
                          <td>妖</td>
                          <td>測(cè)試工程師</td>
                          <td>996</td>
                      </tr>
                  </tbody>
          
                  <tfoot>
                      <tr>
                          <td>當(dāng)前頁:1 頁</td>
                          <td>上一頁</td>
                          <td>下一頁</td>
                          <td>尾頁</td>
                          <td>共 3 頁</td>
                      </tr>
                  </tfoot>
              </table>
          

          10.2 單元格合并

          屬性 說明 rowspan 行合并 colspan 列合并

          下面是行合并:

          <!-- 表格 -->
              <table border="1" cellspacing="0" width="600px" height="200px">
                  <caption>員工薪資統(tǒng)計(jì)表</caption>
                  <thead>
                      <tr>
                          <th>序號(hào)</th>
                          <th>姓名</th>
                          <th>性別</th>
                          <th>職位</th>
                          <th>薪資</th>
                      </tr>
                  </thead>
          
                  <tbody>
                      <tr>
                          <td>1</td>
                          <td>狗蛋</td>
                          <td>男</td>
                          <td rowspan="2">JavaEe工程師</td>
                          <td>8780</td>
                      </tr>
          
                      <tr>
                          <td>2</td>
                          <td>黑妞</td>
                          <td>女</td>
                          <td>9750</td>
                      </tr>
          
                      <tr>
                          <td>3</td>
                          <td>傻蛋</td>
                          <td>妖</td>
                          <td>測(cè)試工程師</td>
                          <td>996</td>
                      </tr>
                  </tbody>
          
                  <tfoot>
                      <tr>
                          <td>當(dāng)前頁:1 頁</td>
                          <td>上一頁</td>
                          <td>下一頁</td>
                          <td>尾頁</td>
                          <td>共 3 頁</td>
                      </tr>
                  </tfoot>
              </table>
          

          下面是列合并:

          <!-- 表格 -->
              <table border="1" cellspacing="0" width="600px" height="200px">
                  <caption>員工薪資統(tǒng)計(jì)表</caption>
                  <thead>
                      <tr>
                          <th>序號(hào)</th>
                          <th>姓名</th>
                          <th>性別</th>
                          <th>職位</th>
                          <th>薪資</th>
                      </tr>
                  </thead>
          
                  <tbody>
                      <tr>
                          <td>1</td>
                          <td>狗蛋</td>
                          <td>男</td>
                          <td>JavaEe工程師</td>
                          <td>8780</td>
                      </tr>
          
                      <tr>
                          <td>2</td>
                          <td>黑妞</td>
                          <td>女</td>
                          <td>Web前端工程師</td>
                          <td>9750</td>
                      </tr>
          
                      <tr>
                          <td>3</td>
                          <td colspan="2">傻蛋</td>
                          <td>測(cè)試工程師</td>
                          <td>996</td>
                      </tr>
                  </tbody>
          
                  <tfoot>
                      <tr>
                          <td>當(dāng)前頁:1 頁</td>
                          <td>上一頁</td>
                          <td>下一頁</td>
                          <td>尾頁</td>
                          <td>共 3 頁</td>
                      </tr>
                  </tfoot>
              </table>
          

          11、表單

          表單是一個(gè)包含表單元素的區(qū)域。

          表單元素是允許用戶在表單中輸入內(nèi)容,比如:文本域(textarea)、下拉列表(select)、單選框(radio)、復(fù)選框(checkbox)等等。

          11.1 基本使用

          表單需要使用表單標(biāo)簽來設(shè)置:

          <!-- 表單 -->
          <form>
          input元素
          </form>

          11.2 GET&POST

          屬性 說明 action 后臺(tái)地址 method 提交方式GET或POST

          GET和POST區(qū)別:

          1.GET

          • 數(shù)據(jù)會(huì)顯示在地址欄中,數(shù)據(jù)不安全
          • 數(shù)據(jù)大小有限制
          • 數(shù)據(jù)通過請(qǐng)求頭傳遞

          2.POST

          • 數(shù)據(jù)不會(huì)顯示在地址欄中,數(shù)據(jù)安全
          • 數(shù)據(jù)對(duì)大小無限制
          • 數(shù)據(jù)通過實(shí)體內(nèi)容傳遞
          <form action="后端接口" method="POST">
                  <input type="text">
                  <input type="password">
          </form>
          

          11.3 LABEL

          使用label用于描述表單標(biāo)題,當(dāng)點(diǎn)擊標(biāo)題后文本框會(huì)獲得焦點(diǎn),需要保證使用的ID在頁面中是唯一的。

          <form action="后端接口" method="POST">
                  <label for="username">用戶名</label>
                  <input type="text" id="username">
          
                  <label for="password">密碼</label>
                  <input type="password" id="password">
          </form>
          

          也可以將文本框放在label標(biāo)簽內(nèi)部,這樣就不需要設(shè)置id與for屬性了。

          11.4 INPUT

          文本框用于輸入單行文本使用,下面是常用屬性與示例。

          屬性 說明 type 表單類型,默認(rèn)為text name 后端接收字段名 required 必須輸入 placeholder 提示文本內(nèi)容 value 默認(rèn)指 maxlength 允許最大輸入字符數(shù) size 表單長(zhǎng)度,一般用css來控制 disabled 禁用,不可提交后端 readonly 只讀,可提交后端 accept 設(shè)置選中類型 比如:.jpg capture 使用麥克風(fēng)\視頻或攝像頭哪種方式獲取手機(jī)上傳文件,支持的值有microphone , video , camera

          11.4.1 基本示例

          <form action="后端接口" method="POST">
                  <label for="username">用戶名</label>
                  <input type="text" name="username" id="username" placeholder="請(qǐng)輸入用戶名" maxlength="5" size="50" required>
          </form>
          

          11.4.2 調(diào)用攝像頭

          當(dāng)input類型為file時(shí)手機(jī)會(huì)讓用戶選擇圖片或者拍照,如果想直接調(diào)取攝像頭使用以下代碼.

          <form action="后端接口" method="POST">
                  <label for="file">上傳文件</label>
                  <input type="file" name="file" id="file" accept="*.jpg" capture="camera">
          </form>
          

          11.4.3 其他類型

          通過設(shè)置表單的type字段可以指定不同的輸入內(nèi)容.

          類型 說明 email 輸入內(nèi)容為郵箱 url 輸入內(nèi)容為URL地址 password 輸入內(nèi)容為密碼項(xiàng) tel 電話號(hào),移動(dòng)端會(huì)調(diào)出數(shù)字鍵盤 search 搜索框 hidden 隱藏表單 submit 提交表單 reset 重置表單 button 自定義按鈕

          11.4.4 HIDDEN

          隱藏表單用于提交后臺(tái)數(shù)據(jù),但在前臺(tái)內(nèi)容不顯示所以在其上做用樣式定義也沒有意義.

          <input type="hidden" name="id" value="1">
          

          11.4.5 SUBMIT

          創(chuàng)建提交按鈕可以將表單數(shù)據(jù)提交到后臺(tái),有多種方式可以提交數(shù)據(jù),比如:AJAX,或者Html的表單按鈕.

          a.使用input構(gòu)建提交按鈕,如果設(shè)置了name值,那么按鈕數(shù)據(jù)也會(huì)提交到后臺(tái),如果有多個(gè)表單項(xiàng)可以通過這些進(jìn)行判斷是哪個(gè)表單提交的.

          <input type="submit" name="submit" value="提交表單">
          

          b.使用button也可以提交,設(shè)置type屬性為submit或不設(shè)置都可以提交表單.

          <button type="submit">提交表單</button>
          

          11.4.6 禁用表單

          通過為表單設(shè)置disabled或readonly都可以禁止表單,單readonly表單的數(shù)據(jù)可以提交到后端

          <input type="text" value="數(shù)據(jù)" readonly>
          

          11.4.7 PATTERN

          表單可以通過設(shè)置pattern屬性指定正則驗(yàn)證.

          屬性 說明 pattern 正則表達(dá)式驗(yàn)證規(guī)則 oninvalid 輸入錯(cuò)誤時(shí)觸發(fā)的事件

          <form action="">
                  <label for="username">用戶名</label>
                  <input type="text" name="username" id="username" pattern="[a-z]{5,20}" oninvalid="validate('請(qǐng)輸入5~20位字母的用戶名')">
                  <button>提交表單</button>
              </form>
          
              <script>
                  function validate(message){
                      alert(message);
                  }
              </script>
          

          11.4.8 TEXTAREA

          文本域指可以輸入多行文本的表單,當(dāng)然更復(fù)雜的情況可以使用編輯器如ueditor , ckeditor等.

          屬性 說明 cols 列字符數(shù)(一般使用css控制更好) rows 行數(shù)(一般使用css控制更好)

          <textarea cols="30" rows="3">請(qǐng)踩踩我......</textarea>
          

          11.4.9 SELECT

          下拉列表項(xiàng)可用于多個(gè)值中的選擇.

          屬性 說明 multiple 支持多選 size 列表框高度 optgroup 選項(xiàng)組 selected 選中狀態(tài) option 選項(xiàng)值

          <form action="">
                  <select multiple size="10">
                      <option value="">選擇課程</option>
                      <optgroup label="后端">
                          <option value="">JAVA</option>
                          <option value="">PHP</option>
                          <option value="">LINUX</option>
                      </optgroup>
          
                      <optgroup label="前端">
                          <option value="">HTML</option>
                          <option value="">CSS</option>
                          <option value="">JAVASCRIPT</option>
                      </optgroup>
                  </select>
              </form>
          

          11.4.10 RADIO

          單選框指只能選擇一個(gè)選項(xiàng)的表單,如性別的選擇:男 , 女 , 保密 只能選擇一個(gè).

          屬性 說明 checked 選中狀態(tài)

          <form action="">
                  <input type="radio" name="" id="boy" checked>
                  <label for="boy">男</label>
          
                  <input type="radio" name="" id="girl">
                  <label for="girl">女</label>
              </form>
          

          11.4.11 CHECKBOX

          復(fù)選框指允許選擇多個(gè)值的表單

          屬性 說明 checked 選中狀態(tài)

          <form action="">
                  <input type="checkbox" name="JAVA" id="java">
                  <label for="java">JAVA</label>
          
                  <input type="checkbox" name="WEB" id="web">
                  <label for="web">WEB</label>
              </form>
          

          11.4.12 FILE

          文件上傳有很多方式,可以使用插件或者JS拖放上傳處理.Html本身也提供了默認(rèn)的上傳功能,只是上傳效果并不是很美觀.

          屬性 說明 multiple 支持多選 accept 允許上傳類型.png , .psd 或者 image/png , image/gif

          <form action="" enctype="multipart/form-data">
                  <input type="file">
                  <input type="submit" value="上傳">
              </form>
          

          11.4.13 日期時(shí)間

          屬性 說明 min 最小時(shí)間 max 最大時(shí)間 step 間隔: date缺省是1天 week缺省是1周 month缺省是1月

          a.日期選擇

          <h1>日期選擇</h1>
              <form action="">
                  <input type="date" step="5" min="2020-09-22" max="2025-01-15" name="datetime">
              </form>
          

          b.周選擇

          <h1>周選擇</h1>
              <input type="week" name="" id="">
          

          c.月份選擇

          <h1>月選擇</h1>
              <input type="month" name="" id="">
          

          d.日期與時(shí)間

          <h1>日期與時(shí)間</h1>
              <input type="datetime-local" name="" id="">
          

          11.4.14 DATALIST

          input表單的輸入值選項(xiàng)列表

          <form action="">
                  <label for="username">用戶名</label>
                  <input type="text" name="" id="usernmae" list="less">
                  <datalist id="less">
                      <option value="JAVA">后臺(tái)管理語言</option>
                      <option value="CSS">美化網(wǎng)站頁面</option>
                      <option value="MYSQL">掌握數(shù)據(jù)庫(kù)使用</option>
                  </datalist>
              </form>
          

          12、框架集

          frameset元素可定義一個(gè)框架集。它被用來組織多個(gè)窗口(框架),每個(gè)框架存有獨(dú)立的文檔,在其最簡(jiǎn)單的應(yīng)用中,frameset元素僅僅會(huì)規(guī)定在框架集中存在多少列或多少行,您必須使用cols或rows屬性。

          注意事項(xiàng):由于是分割原網(wǎng)頁,所以我們不能在body中進(jìn)行編寫,在head中進(jìn)行分割。

          標(biāo)簽 說明 frameset 框架集 frame 框架

          屬性 說明 cols 定義框架集中列的數(shù)目和尺寸 rows 定義框架集中行的數(shù)目和尺寸 frame border 去除框架邊框 scrolling 去除滾動(dòng)條

          12.1 垂直框架

          <!DOCTYPE html>
          <html lang="en">
          <head>
              <meta charset="UTF-8">
              <title>Html垂直框架</title>
          
              <frameset cols="50%,*" >
                  <frame src="http://www.baidu.com" frameborder="0" scrolling="no"></frame>
                  <frame src="http://www.taobao.com" frameborder="0"  scrolling="no"></frame>
              </frameset>
          </head>
          <body>
              
          </body>
          </html>
          

          12.2 水平框架

          <!DOCTYPE html>
          <html lang="en">
          	<head>
          		<meta charset="UTF-8">
          		<title>Html水平框架</title>
          		<frameset rows="50%,*" >
          				<frame src="http://www.baidu.com" frameborder="0" scrolling="no"></frame>
                  <frame src="http://www.taobao.com" frameborder="0" scrolling="no"></frame>
          		</frameset>
          	</head>
          <body>
          </body>
          </html>

          12.3 混合框架

          <!DOCTYPE html>
          <html lang="en">
          <head>
              <meta charset="UTF-8">
              <title>Html混合框架</title>
          
              <frameset rows="20%,*" >
                  <frame src="http://www.baidu.com" frameborder="0" scrolling="no"></frame>
                  <frameset cols="20%,*">
                      <frame src="http://www.taobao.com" frameborder="0" scrolling="no"></frame>
                      <frame src="https://www.huya.com/" frameborder="0" scrolling="no"></frame>
                  </frameset>
                  
              </frameset>
          </head>
          <body>
              
          </body>
          </html>
          

          12.4 導(dǎo)航框架

          <!DOCTYPE html>
          <html lang="en">
          <head>
              <meta charset="UTF-8">
              <title>Html美女</title>
          </head>
          <body>
              
              <img src="../images/10.jpg" alt="">
          
          </body>
          </html>
          
          <!DOCTYPE html>
          <html lang="en">
          <head>
              <meta charset="UTF-8">
              <title>Html野獸</title>
          </head>
          <body>
              
          
              <img src="../images/timg.gif" alt="">
          
          </body>
          </html>
          
          <!DOCTYPE html>
          <html lang="en">
          <head>
              <meta charset="UTF-8">
              <title>Html動(dòng)物</title>
          </head>
          <body>
              
              <img src="../images/4.jpg" alt="">
          
          </body>
          </html>
          
          <!DOCTYPE html>
          <html lang="en">
          <head>
              <meta charset="UTF-8">
              <title>Html鏈接</title>
          </head>
          <body>
          
              <a href="Html美女.html" target="view">美女圖片</a>
              <a href="Html野獸.html" target="view">野獸圖片</a>
              <a href="Html動(dòng)物.html" target="view">動(dòng)物圖片</a>
              
          </body>
          </html>
          
          <!DOCTYPE html>
          <html lang="en">
          <head>
              <meta charset="UTF-8">
              <title>Html垂直框架</title>
          
              <frameset rows="20%,*" >
                  <frame src="http://www.baidu.com" frameborder="0" scrolling="no"></frame>
                  <frameset cols="20%,*">
                      <frame src="Html鏈接.html" frameborder="0" scrolling="no"></frame>
                      <frame src="https://www.huya.com/" frameborder="0" scrolling="no" name="view"></frame>
                  </frameset>
                  
              </frameset>
          </head>
          <body>
              
          </body>
          </html>
          

          13、內(nèi)聯(lián)框架

          iframe元素會(huì)創(chuàng)建包含另外一個(gè)文檔的內(nèi)聯(lián)框架。

          屬性 說明 align 對(duì)齊方式,后期采用css的方式進(jìn)行設(shè)置 width 設(shè)置寬度 height 設(shè)置高度 src 設(shè)置iframe中顯示的文檔的URL name iframe的名稱 scrolling 是否顯示滾動(dòng)條 frameborder 設(shè)置iframe的邊框


          主站蜘蛛池模板: 中文乱码人妻系列一区二区| 国产乱码精品一区三上| 无码毛片视频一区二区本码| 亚洲一区精品视频在线| 亚洲日本一区二区一本一道| 国产精品无码一区二区在线观| 久久AAAA片一区二区| 国产伦精品一区二区三区精品 | 亚洲一区动漫卡通在线播放| 成人日韩熟女高清视频一区| 秋霞日韩一区二区三区在线观看 | 日韩美女视频一区| 91视频一区二区三区| 亚洲av无码一区二区三区不卡 | 无码一区二区三区亚洲人妻| 在线视频一区二区| 无码人妻精品一区二区三区东京热 | 日韩高清一区二区三区不卡| 精品国产一区二区三区不卡| 无码人妻久久久一区二区三区| 国产主播一区二区| 亚洲日韩精品无码一区二区三区| 国产A∨国片精品一区二区 | 亚洲一区二区三区四区视频| 日韩av无码一区二区三区| 无码少妇一区二区性色AV| 色欲精品国产一区二区三区AV| 亚洲AV美女一区二区三区| 无码人妻精品一区二区三区久久| 亚洲AV无一区二区三区久久| 蜜臀Av午夜一区二区三区| 精品人妻AV一区二区三区| 国产精品电影一区| 国产在线观看精品一区二区三区91 | 麻豆AV天堂一区二区香蕉| 在线视频精品一区| 一区二区三区午夜| 国产精品伦一区二区三级视频| 麻豆AV一区二区三区久久| 日韩精品人妻一区二区三区四区 | 国产精品无码AV一区二区三区|