整合營銷服務商

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

          免費咨詢熱線:

          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 技術內幕和最佳實踐》。

          作者:巴蜀真人


          主站蜘蛛池模板: 国产吧一区在线视频| 国产精品高清一区二区三区| 久久se精品一区二区| 亚洲精品日韩一区二区小说| 国产成人精品无人区一区| 中文字幕AV一区二区三区| 一区二区在线免费观看| 精品亚洲一区二区三区在线播放| 精品国产一区二区三区香蕉事 | 无码一区二区三区视频| 男人的天堂亚洲一区二区三区| 99精品国产高清一区二区| 中文字幕一区日韩在线视频| 一区二区在线播放视频| 一区二区在线视频免费观看| 成人国产精品一区二区网站| 国产一国产一区秋霞在线观看| 国产精品无码一区二区三区不卡 | 无码国产亚洲日韩国精品视频一区二区三区 | 久久国产视频一区| 久久一区不卡中文字幕| 亚洲国产成人一区二区精品区| 国产在线一区二区| 制服丝袜一区在线| 无码乱码av天堂一区二区| 亚洲一区二区三区乱码在线欧洲| tom影院亚洲国产一区二区 | 国产怡春院无码一区二区| 日本无码一区二区三区白峰美| 亚洲日韩国产一区二区三区在线| 无码av中文一区二区三区桃花岛| 国产一区二区在线| 久久国产精品免费一区二区三区| 久久一区二区三区99| 无码囯产精品一区二区免费| 激情内射亚洲一区二区三区| 精品少妇人妻AV一区二区| 国产av一区二区精品久久凹凸| 久久久国产一区二区三区 | 国产日韩视频一区| 久久99国产一区二区三区|