Markdown 表格樣式調整與自適應優化
本文于
1583
天之前發表,文章内容可能已經過時。
Markdown 寫的表格最終會被解析成 HTML 格式,如果使用的編輯器支持自定義 CSS,就能方便的調整樣式。如果可以引入 JavaScript,樣式自適應也能較好地實現。
See the Pen Table style by MOxFIVE (@MOxFIVE) on CodePen.
樣式調整
基礎概念
<table>: 表格
<thead>: table header 表頭區
<th>: table headings 表頭單元格内容
<tbody>: table body 表格内容區
<tr>: table row 表行
<td>: table data 單元格内容
基本樣式
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| table { width: 100%; max-width: 65em; border: 1px solid #dedede; margin: 15px auto; border-collapse: collapse; empty-cells: show; }
table th, table td { height: 35px; border: 1px solid #dedede; padding: 0 10px; }
|
表頭樣式
1 2 3 4 5
| table th { font-weight: bold; text-align: center !important; background: rgba(158,188,226,0.2); }
|
隔行變色
- 使用選擇器選取復數行設置背景色。一般 Markdown 表格編譯後都有
<tbody>
包裹内容,那下面就相當於從表格第二行開始技術
1 2 3
| table tbody tr:nth-child(2n) { background: rgba(158,188,226,0.12); }
|
懸浮變色
1 2 3
| table tr:hover { background: #efefef; }
|
自適應優化
表格用 Markdown 書寫,編輯器解析,因而只能在已經生成好的程式碼上進行自適應優化。
表頭不換行
- 設置表頭單元格内容不換行,這樣可以通過表頭控制該列的最小寬度,避免瀏覽器視窗缩小時内容被壓縮得太緊
1 2 3
| table th { white-space: nowrap; }
|
首列不換行
- 表格第一列單元格内容不換行,多數情况下表格首列不應該被壓縮換行
1 2 3
| table td:nth-child(1) { white-space: nowrap; }
|
表格滾動條
- 添加 JavaScript 代碼,用一個
<div>
把表格包裹起来,父元素寬度不足時顯示横向滾動條,避免表格撑破布局
1 2 3 4 5 6 7
| [].slice.call(document.querySelectorAll('table')).forEach(function(el){ var wrapper = document.createElement('div'); wrapper.className = 'table-area'; el.parentNode.insertBefore(wrapper, el); el.parentNode.removeChild(el); wrapper.appendChild(el); })
|
1
| $("table").wrap("<div class='table-area'></div>");
|
1 2 3
| .table-area { overflow: auto; }
|