WEB・アプリ開発

MiddlemanのKramdownで生成した横長のtableを横スクロールさせる方法

MiddlemanのMarkdownパーサーにKramdownを使っていて便利なのがテーブル。
でも、横長になりすぎた時や、スマホで見た時、横にはみ出してしまうんですよね。

スマホだとテーブルが右にはみ出してしまう

これはスマホで見たときの画像。右がはみ出していますよね。

右がはみ出してる画像

テーブルをdivタグで囲う

これを横スクロールされるようにするためには、table要素をとあるclassがついたdivで囲ってあげる必要があります。(1行めと13行目がdivタグ)

parse_block_htmlオプションを設定

ただ、Kramdownはデフォルトだとブロック要素で囲われたmarkdown記法をエスケープしてしまい、ただの文字列になってしまします。

なので、きちんとブロック要素内もHTMLに変換してくれるようオプションを設定する必要があります。 config.rbに以下を追記してください。

スポンサーリンク

クラスにCSSを適用

先ほどdivにつけていた scrollクラスに以下のようなCSSを適用させてください。


すると下の画像ように横スクロールバーが表示されスクロールできるようになります。

横スクロールされている画像

config.rbをいじりたくない場合

config.rbにオプションを設定すると、全ての記事で適用されてしまいます。部分的にオプションを適用させたい場合は、以下のように直接Markdown内にオプションを書くことができます。(1行目)

参考