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行目)

参考

そして、一つお願いしたいことがあります。

もしこの記事がお役に立てたのなら、下のボタンからSNSでシェアするか、あなたのブログでご紹介頂けないでしょうか?検索エンジンの仕組みで、同じ問題で今困っている方の目に届きやすくなります。もちろん、私としても記事を書くモチベーションになります。

記事への要望やダメ出しを書いて頂いても嬉しいです。定期的にエゴサーチしており、今後の記事で活かさせて頂きます。よろしくお願いいたします!