整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          HTML表格標簽的使用方法與示例

          挑戰30天在頭條寫日記#

          HTML是一種用于創建網頁結構和內容的標記語言,其中包含了許多標簽,可以用于排版、布局和展示內容。本文將詳細介紹HTML中的<tr>和<td>標簽的使用方法,并通過示例展示如何創建表格。


          1. <tr>標簽的作用: <tr>標簽代表HTML表格中的一行(行數據),它可以包含一個或多個<td>元素作為單元格。


          2. <td>標簽的作用: <td>標簽用于定義表格中的一個單元格(列數據),可以包含文本、圖像、鏈接等內容。

          3. 如何使用<tr>和<td>: 在使用<tr>和<td>標簽時,首先需要創建一個<table>元素作為表格的容器,然后在其中嵌套<tr>和<td>標簽,如下所示:

          htmlCopy code<table>
            <tr>
              <td>單元格1</td>
              <td>單元格2</td>
            </tr>
            <tr>
              <td>單元格3</td>
              <td>單元格4</td>
            </tr>
          </table>
          

          4. 表格樣式: 可以使用CSS來為表格添加樣式,如設置邊框、背景顏色等。以下是一個簡單的示例:

          htmlCopy code<style>
            table {
              border-collapse: collapse;
              width: 100%;
            }
            td {
              border: 1px solid black;
              padding: 8px;
              text-align: center;
            }
          </style>
          


          5. 示例應用: 以下示例演示了如何使用<tr>和<td>標簽創建一個包含姓名、年齡和城市的簡單表格:

          htmlCopy code<!DOCTYPE html>
          <html>
          <head>
            <style>
              table {
                border-collapse: collapse;
                width: 100%;
              }
              td {
                border: 1px solid black;
                padding: 8px;
                text-align: center;
              }
            </style>
          </head>
          <body>
          
          <table>
            <tr>
              <td>姓名</td>
              <td>年齡</td>
              <td>城市</td>
            </tr>
            <tr>
              <td>張三</td>
              <td>25</td>
              <td>北京</td>
            </tr>
            <tr>
              <td>李四</td>
              <td>30</td>
              <td>上海</td>
            </tr>
            <tr>
              <td>王五</td>
              <td>28</td>
              <td>廣州</td>
            </tr>
          </table>
          
          </body>
          </html>
          

          6. 書籍參考:

          • "HTML and CSS: Design and Build Websites" by Jon Duckett
          • "Learning Web Design: A Beginner's Guide to HTML, CSS, JavaScript, and Web Graphics" by Jennifer Niederst Robbins


          7. 總結: 通過本文的介紹,我們了解了HTML中<tr>和<td>標簽的基本用法,以及如何創建簡單的表格和添加樣式。使用這些標簽,我們可以輕松地創建具有結構和內容的網頁表格,提升頁面的可讀性和可視性。

          TML 表格實例:

          First NameLast NamePoints
          JillSmith50
          EveJackson94
          JohnDoe80
          AdamJohnson67

          在線實例

          表格

          這個例子演示如何在 HTML 文檔中創建表格。

          HTML 表格

          表格由 <table> 標簽來定義。每個表格均有若干行(由 <tr> 標簽定義),每行被分割為若干單元格(由 <td> 標簽定義)。字母 td 指表格數據(table data),即數據單元格的內容。數據單元格可以包含文本、圖片、列表、段落、表單、水平線、表格等等。

          表格實例

          <table border="1">

          <tr>

          <td>row 1, cell 1</td>

          <td>row 1, cell 2</td>

          </tr>

          <tr>

          <td>row 2, cell 1</td>

          <td>row 2, cell 2</td>

          </tr>

          </table>

          在瀏覽器顯示如下::

          row 1, cell 1row 1, cell 2
          row 2, cell 1row 2, cell 2

          HTML 表格和邊框屬性

          如果不定義邊框屬性,表格將不顯示邊框。有時這很有用,但是大多數時候,我們希望顯示邊框。

          使用邊框屬性來顯示一個帶有邊框的表格:

          <table border="1">

          <tr>

          <td>Row 1, cell 1</td>

          <td>Row 1, cell 2</td>

          </tr>

          </table>

          HTML 表格表頭

          表格的表頭使用 <th> 標簽進行定義。

          大多數瀏覽器會把表頭顯示為粗體居中的文本:

          <table border="1">

          <tr>

          <th>Header 1</th>

          <th>Header 2</th>

          </tr>

          <tr>

          <td>row 1, cell 1</td>

          <td>row 1, cell 2</td>

          </tr>

          <tr>

          <td>row 2, cell 1</td>

          <td>row 2, cell 2</td>

          </tr>

          </table>

          在瀏覽器顯示如下:

          Header 1Header 2
          row 1, cell 1row 1, cell 2
          row 2, cell 1row 2, cell 2

          更多實例

          沒有邊框的表格

          本例演示一個沒有邊框的表格。

          表格中的表頭(Heading)

          本例演示如何顯示表格表頭。

          帶有標題的表格

          本例演示一個帶標題 (caption) 的表格

          跨行或跨列的表格單元格

          本例演示如何定義跨行或跨列的表格單元格。

          表格內的標簽

          本例演示如何顯示在不同的元素內顯示元素。

          單元格邊距(Cell padding)

          本例演示如何使用 Cell padding 來創建單元格內容與其邊框之間的空白。

          單元格間距(Cell spacing)

          本例演示如何使用 Cell spacing 增加單元格之間的距離。

          HTML 表格標簽

          標簽描述
          <table>定義表格
          <th>定義表格的表頭
          <tr>定義表格的行
          <td>定義表格單元
          <caption>定義表格標題
          <colgroup>定義表格列的組
          <col>定義用于表格列的屬性
          <thead>定義表格的頁眉
          <tbody>定義表格的主體
          <tfoot>定義表格的頁腳

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

          周六在深圳分享了《Flink SQL 1.9.0 技術內幕和最佳實踐》,會后許多小伙伴對最后演示環節的 Demo 代碼非常感興趣,迫不及待地想嘗試下,所以寫了這篇文章分享下這份代碼。希望對于 Flink SQL 的初學者能有所幫助。

          這份代碼主要由兩部分組成:1) 能用來提交 SQL 文件的 SqlSubmit 實現。2) 用于演示的 SQL 示例、Kafka 啟動停止腳本、 一份測試數據集、Kafka 數據源生成器。

          通過本實戰,你將學到:

          1. 如何使用 Blink Planner
          2. 一個簡單的 SqlSubmit 是如何實現的
          3. 如何用 DDL 創建一個 Kafka 源表和 MySQL 結果表
          4. 運行一個從 Kafka 讀取數據,計算 PVUV,并寫入 MySQL 的作業
          5. 設置調優參數,觀察對作業的影響

          SqlSubmit 的實現

          筆者一開始是想用 SQL Client 來貫穿整個演示環節,但可惜 1.9 版本 SQL CLI 還不支持處理 CREATE TABLE 語句。所以筆者就只好自己寫了個簡單的提交腳本。后來想想,也挺好的,可以讓聽眾同時了解如何通過 SQL 的方式,和編程的方式使用 Flink SQL。

          SqlSubmit 的主要任務是執行和提交一個 SQL 文件,實現非常簡單,就是通過正則表達式匹配每個語句塊。如果是 CREATE TABLE 或 INSERT INTO 開頭,則會調用 tEnv.sqlUpdate(...)。如果是 SET 開頭,則會將配置設置到 TableConfig 上。其核心代碼主要如下所示:

          使用 DDL 連接 Kafka 源表

          在 flink-sql-submit 項目中,我們準備了一份測試數據集(來自阿里云天池公開數據集,特別鳴謝),位于 src/main/resources/user_behavior.log。數據以 JSON 格式編碼,大概長這個樣子:

          {"user_id": "543462", "item_id":"1715", "category_id": "1464116", "behavior": "pv", "ts": "2017-11-26T01:00:00Z"}
          {"user_id": "662867", "item_id":"2244074", "category_id": "1575622", "behavior": "pv", "ts": "2017-11-26T01:00:00Z"}
          

          為了模擬真實的 Kafka 數據源,筆者還特地寫了一個 source-generator.sh 腳本(感興趣的可以看下源碼),會自動讀取 user_behavior.log 的數據并以默認每毫秒1條的速率灌到 Kafka 的 user_behavior topic 中。

          有了數據源后,我們就可以用 DDL 去創建并連接這個 Kafka 中的 topic(詳見 src/main/resources/q1.sql)。

          注:可能有用戶會覺得其中的 connector.properties.0.key 等參數比較奇怪,社區計劃將在下一個版本中改進并簡化 connector 的參數配置。

          使用 DDL 連接 MySQL 結果表

          連接 MySQL 可以使用 Flink 提供的 JDBC connector。例如

          PV UV 計算

          假設我們的需求是計算每小時全網的用戶訪問量,和獨立用戶數。很多用戶可能會想到使用滾動窗口來計算。但這里我們介紹另一種方式。即 Group Aggregation 的方式。

          INSERT INTO pvuv_sink
          SELECT
           DATE_FORMAT(ts, 'yyyy-MM-dd HH:00') dt,
           COUNT(*) AS pv,
           COUNT(DISTINCT user_id) AS uv
          FROM user_log
          GROUP BY DATE_FORMAT(ts, 'yyyy-MM-dd HH:00')
          

          它使用 DATE_FORMAT 這個內置函數,將日志時間歸一化成“年月日小時”的字符串格式,并根據這個字符串進行分組,即根據每小時分組,然后通過 COUNT(*) 計算用戶訪問量(PV),通過 COUNT(DISTINCT user_id) 計算獨立用戶數(UV)。這種方式的執行模式是每收到一條數據,便會進行基于之前計算的值做增量計算(如+1),然后將最新結果輸出。所以實時性很高,但輸出量也大。

          我們將這個查詢的結果,通過 INSERT INTO 語句,寫到了之前定義的 pvuv_sink MySQL 表中。

          注:在深圳 Meetup 中,我們有對這種查詢的性能調優做了深度的介紹。

          實戰演示

          環境準備

          本實戰演示環節需要安裝一些必須的服務,包括:

          • Flink 本地集群:用來運行 Flink SQL 任務。
          • Kafka 本地集群:用來作為數據源。
          • MySQL 數據庫:用來作為結果表。
          • Flink 本地集群安裝

          1.下載 Flink 1.9.0 安裝包并解壓:https://www.apache.org/dist/flink/flink-1.9.0/flink-1.9.0-bin-scala_2.11.tgz

          2.下載以下依賴 jar 包,并拷貝到 flink-1.9.0/lib/ 目錄下。因為我們運行時需要依賴各個 connector 實現。

          • flink-sql-connector-kafka_2.11-1.9.0.jar
          • http://central.maven.org/maven2/org/apache/flink/flink-sql-connector-kafka_2.11/1.9.0/flink-sql-connector-kafka_2.11-1.9.0.jar
          • flink-json-1.9.0-sql-jar.jar
          • http://central.maven.org/maven2/org/apache/flink/flink-json/1.9.0/flink-json-1.9.0-sql-jar.jar
          • flink-jdbc_2.11-1.9.0.jar
          • http://central.maven.org/maven2/org/apache/flink/flink-jdbc_2.11/1.9.0/flink-jdbc_2.11-1.9.0.jar
          • mysql-connector-java-5.1.48.jar
          • https://dev.mysql.com/downloads/connector/j/5.1.html

          3.將 flink-1.9.0/conf/flink-conf.yaml 中的 taskmanager.numberOfTaskSlots 修改成 10,因為我們的演示任務可能會消耗多于1個的 slot。

          4.在 flink-1.9.0 目錄下執行 ./bin/start-cluster.sh,啟動集群。

          運行成功的話,可以在 http://localhost:8081 訪問到 Flink Web UI。

          另外,還需要將 Flink 的安裝路徑填到 flink-sql-submit 項目的 env.sh 中,用于后面提交 SQL 任務,如我的路徑是

          FLINK_DIR=/Users/wuchong/dev/install/flink-1.9.0
          

          Kafka 本地集群安裝

          下載 Kafka 2.2.0 安裝包并解壓:https://www.apache.org/dist/kafka/2.2.0/kafka_2.11-2.2.0.tgz

          將安裝路徑填到 flink-sql-submit 項目的 env.sh 中,如我的路徑是

          KAFKA_DIR=/Users/wuchong/dev/install/kafka_2.11-2.2.0
          

          在 flink-sql-submit 目錄下運行 ./start-kafka.sh 啟動 Kafka 集群。

          在命令行執行 jps,如果看到 Kafka 進程和 QuorumPeerMain 進程即表明啟動成功。

          MySQL 安裝

          可以在官方頁面下載 MySQL 并安裝:

          https://dev.mysql.com/downloads/mysql/

          如果有 Docker 環境的話,也可以直接通過 Docker 安裝

          https://hub.docker.com/_/mysql

          $ docker pull mysql
          $ docker run --name mysqldb -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql
          

          然后在 MySQL 中創建一個 flink-test 的數據庫,并按照上文的 schema 創建 pvuv_sink 表。

          提交 SQL 任務

          1.在 flink-sql-submit 目錄下運行 ./source-generator.sh,會自動創建 user_behavior topic,并實時往里灌入數據。

          2.在 flink-sql-submit 目錄下運行 ./run.sh q1, 提交成功后,可以在 Web UI 中看到拓撲。

          在 MySQL 客戶端,我們也可以實時地看到每個小時的 pv uv 值在不斷地變化

          結尾

          本文帶大家搭建基礎集群環境,并使用 SqlSubmit 提交純 SQL 任務來學習了解如何連接外部系統。flink-sql-submit/src/main/resources/q1.sql 中還有一些注釋掉的調優參數,感興趣的同學可以將參數打開,觀察對作業的影響。關于這些調優參數的原理,可以看下我在 深圳 Meetup 上的分享《Flink SQL 1.9.0 技術內幕和最佳實踐》。

          作者:巴蜀真人


          主站蜘蛛池模板: 一区二区三区在线观看免费| 亚洲精品一区二区三区四区乱码| 亚洲AV美女一区二区三区| 亚洲国产成人一区二区精品区 | 国精产品一区二区三区糖心| 97人妻无码一区二区精品免费 | 久久久久久人妻一区二区三区 | 在线观看国产一区亚洲bd| 久久精品视频一区二区三区| 高清无码一区二区在线观看吞精| 亚洲福利一区二区| 精品日产一区二区三区手机| 无码毛片一区二区三区视频免费播放 | 日韩内射美女人妻一区二区三区 | 日韩成人一区ftp在线播放| 国产一区二区三区不卡AV| 亚洲无线码在线一区观看| 亚洲福利视频一区二区| 久久中文字幕无码一区二区| 中文字幕一区二区三区在线不卡| 91精品国产一区二区三区左线| 精品一区二区三区免费观看 | 精品免费国产一区二区| 性色av一区二区三区夜夜嗨 | 亚洲色精品aⅴ一区区三区 | 国产精品亚洲一区二区三区在线观看 | 精品国产一区二区三区香蕉事 | 精品国产一区二区三区香蕉事| 色婷婷AV一区二区三区浪潮| 亚洲av成人一区二区三区观看在线| 国产成人免费一区二区三区| 一区二区三区视频在线观看| 国产一区二区精品在线观看| 中文字幕一区二区三区精彩视频 | 国产福利电影一区二区三区,日韩伦理电影在线福| 在线视频一区二区三区三区不卡| 国产精品综合AV一区二区国产馆| 久久精品中文字幕一区| 国产成人精品一区二区三在线观看| 无码少妇一区二区三区浪潮AV| 乱中年女人伦av一区二区|