CQ备忘录

一间存放故事的仓库

GitHub LinkedIn
25 July 2020

Tech:Markdown表格自适应布局

by ChenQi

周末在家继续修复个人博客网站的小问题。

Markdown 表格语法的最终转译产物是 HTML <table> 标签。当内容元素众多时,表格宽高随之变化,为了避免破坏页面整体的美观,需要使用水平或垂直滚动布局。

Table

<div style="overflow-x:auto;">
  <table>
    ...
  </table>
</div>

Jekyll

Jekyll Markdown 解释器:

每种解释器对 Markdown 标准的处理存在差异,同时均额外扩充一些自己的特性。

Kramdown

使用 <div> 标签包裹 Markdown 表格内容,并且必须在上下间隔两个空行。

<div class="scrollable-table-wrapper" markdown="block">

| Header 1 | header 2 |
|----------|----------|
| Data 1-1 | Data 1-2 |
| Data 2-1 | Data 2-2 |

{:.table-scrollable}
</div>

SCSS

实现相关 CSS 定义。
感谢 Daniel Weibel 和他的 weibeld.net 个人网站。

// https://github.com/weibeld/weibeld-notes/blob/master/_sass/_layout.scss

// Shadows
$shadow-large: 3px 3px 3px rgba(0, 0, 0, 0.2);
$shadow-small: 2px 2px 2px rgba(0, 0, 0, 0.2);

// Table with alternating row colours, and no scrolling support. If wider than
// the content, the table takes 100% width, and the content inside <td> wraps.
.table-normal {
  margin: 0 auto;
  border-collapse: collapse;
  box-shadow: $shadow-large;
  td, th {
    padding: 0.2rem 0.75rem;
    &:first-child { padding-left: 0.5rem; }
    &:last-child { padding-right: 0.5rem; }
  }
  th {
    padding-top: 0.3rem;
    padding-bottom: 0.3rem;
  }
}

.table-telegram-cli {
  table-layout: fixed;
  td:nth-child(1) {
    width: 50%;
  }
  td:nth-child(2) {
    width: 50%;
  }
}

// Table with horizontal scrolling support. Table is horizontally centered if
// less wide than content, and taked 100% width and has scrollbars otherwise.
// Caveats: no shadow can be applied, no line will break inside a <td>
.scrollable-table-wrapper {
  overflow-x: auto;
}
.table-scrollable {
  @extend .table-normal;
  white-space: nowrap;
  box-shadow: none;
}

Example

2020.06.23 《投资:2020H1 OTA 大盘回顾》,其中的表格布局优化。

公司 当前市值(亿美元) 最低价格 最低日期 最高价格 最高日期 06.23价格 最大价差 最低至今价差
HK.3690.美团点评 1335.32 70.100 2020-03-19 176.800 2020-06-23 176.800 152.21% 152.21%
US.BKNG.Booking 668.61 1107.285 2020-03-23 2094.000 2020-01-10 1633.520 -47.12% 47.52%
US.TCOM.携程网 155.92 20.100 2020-03-18 38.950 2020-01-17 26.290 -48.40% 30.80%
US.EXPE.Expedia 117.18 40.760 2020-03-18 124.400 2020-02-14 83.120 -67.23% 103.93%
US.HTHT.华住 107.42 25.010 2020-03-19 41.169 2020-01-02 36.600 -39.25% 46.34%
HK.00780.同程艺龙 38.51 8.740 2020-03-19 14.980 2020-06-08 13.960 71.40% 59.73%
US.MMYT.MakeMyTrip 17.53 10.000 2020-03-19 30.130 2020-02-12 17.020 -66.81% 70.20%

Reference

tags: