5行CSS樣式碼,讓你的表格更加漂亮,先放最終效果:
最終樣式
<table class="style-table">
<thead>
<tr>
<th>序號</th>
<th>物品名稱</th>
<th>金額</th>
<th>備注</th>
</tr>
</thead>
<tbody>
<tr>
<td>1</td>
<td>洗衣粉</td>
<td>15.00</td>
<td>自己用</td>
</tr>
<tr class="active-row">
<td>2</td>
<td>潔爾陰</td>
<td>25.00</td>
<td>老婆用</td>
</tr>
<tr >
<td>3</td>
<td>搓衣板</td>
<td>5.00</td>
<td>自己用</td>
</tr>
</tbody>
</table>
我們都知道普通的HTML自帶的功能相對有限,很多復雜的交互式場景,如果手動去寫功能的話會非常的復雜,而且可擴展性差,就拿HTML表格來說,對于初學者或者對于復雜的拖拽式交互編程不熟悉的話會很浪費時間,因此今天就介紹一個第三方的插件——Table-draagger,來輕松實現類似的功能。Table-draagger是用于構建可重排序的拖放表的極簡主義純Javascript庫!
https://github.com/sindu12jun/table-dragger
Table-draagger因為其以下幾個特征而讓拖拽和排序的實現變得如此簡單:
可以在npm上獲得它:
npm install table-dragger --save
或者引用壓縮的js文件
<script src="../node_modules/table-dragger/dist/table-dragger.min.js"></script>
或者嘗試開發中的不穩定版本
npm install table-dragger@next --save
請看以下代碼:
import tableDragger from 'table-dragger' tableDragger(el, options?)
<table id="table"> <thead> <tr> <th class='handle'>header1</th> <th class='handle'>header2</th> </tr> </thead> <tbody> <tr> <td>conten1</td> <td>conten2</td> </tr> </tbody> </table>
var el = document.getElementById('table'); var dragger = tableDragger(el, { mode: 'row', dragHandler: '.handle', onlyBody: true, }); dragger.on('drop',function(from, to){ console(from); console(to); });
你可以在不設置任何參數的情況下使用默認的拖拽和排序方式,當然以下是你可以配置的選項:
1、將mode設置為column,用戶拖動和排序表的列
2、將mode設置為row,用戶拖動并排序表的行
3、設置mode為free,用戶根據點擊后鼠標移動的方向拖動行或列。注意,必須在自由模式下指定dragHandler。
dragHandler是表中的拖動句柄選擇器默認情況下,在列模式下,dragHandler是表的第一行;在行模式下,則是第一列。
在行模式下將onlyBody設置為true時,用戶只能在tbody中提升行。
下面是返回對象的API
tableDragger(document.querySelector('#event-table'), { mode: 'free', dragHandler: '.handle', onlyBody: true }) .on('drag', () => { console.log('drag'); }) .on('drop', (from, to, el, mode) => { console.log(`drop ${el.nodeName} from ${from} ${mode} to ${to} ${mode}`); }) .on('shadowMove', (from, to, el, mode) => { console.log(`move ${el.nodeName} from ${from} ${mode} to ${to} ${mode}`); }) .on('out', (el, mode) => { console.log(`move out or drop ${el.nodeName} in mode ${mode}`); });
Table-draagger為我們節省了很多手動封裝表格排序和拖拽功能的時間,當然目前很多第三方框架已經實現了類似的功能,這更適用于原生的html表格,你還可以通過一些手段記憶用戶拖拽,這只是其中一種思路,Enjoy it!~
篇文章介紹了div標簽的作用,我們這篇文章主要來看下過氣表格標簽table的語法與使用。
在div沒有出現之前,table曾是做網頁的中堅力量。記得在開始學網頁的時候,div是神馬,我不造呀!做網頁還用div嗎,就只用table就可以了,各種表格嵌套加嵌套,一個網頁就拼湊出來了。但table寫的布局頁面做維護就比較令人頭痛欲裂了。因為table是一層一層嵌套,標簽量冗余過多。所以修改起來就是動一發而牽全身。維護起來格外麻煩,往往是拆東墻補西墻。所以它后來就慢慢被div所替代。但是在數據列表上還是用table形式來寫比較的合理,所以現在table多用于網站后臺的表格數據處理中。
簡單的表格由table元素以及一個或多個tr(行標簽)、th(表頭單元格標簽)、td(普通單元格標簽)等標簽所組成,當然復雜的表格還包括caption(表格標題)、col(定義列)、colgroup(對表格中的列進行組合)、thead(組合表頭的內容)tbody(組合表格的主題內容)、tfoot(組合表格的腳注內容)等這里我們先簡單了解下即可。
定義表格:<table></table>
創建表行:<tr></tr>
創建列(單元格):<th></th>(表頭)、<td></td>(表格單元)
注意:默認情況下,每行中的列數是統一的。
比如我們想創建一個姓名、年齡、分數和日期的數據表格,并設置border為1,我們可以使用table來制作。具體的表格代碼如下圖所示:
在網頁中呈現的效果就如下圖所示:
這時候有的人就會說了,為什么這個表格看起來這么奇怪,邊框都是有空隙的呢?我們只需要給表格添加一些特殊的樣式,即可制作一個比較漂亮好看的表格了。添加的樣式代碼:
在網頁中呈現的效果就如下圖所示:
現在我們的表格是不是看著比較的清新了,上面的css代碼中為表格添加了背景、邊框以及去掉了粗的邊線。具體的css代碼我們會在以后的課程中為大家介紹,大家在這里只需要知道并了解table標簽的作用以及使用就可以了。沒事可以多用table寫一寫表格,熟能生巧。
附贈一句經典語錄:每天早上,你有兩個簡單的選擇:是睡回籠覺,還是起身追逐 夢想 。喜歡我的文章的小伙伴記得關注一下哦,每天將為你更新最新知識。
*請認真填寫需求信息,我們會在24小時內與您取得聯系。