data 属性を使って CSS を当てる
data 属性を使って CSS を当てる
既存のプロジェクトで、JavaScript を使って、
グラフと同時に関連するテキストを表示していました。
SEO 対策
問題なく動いていたのですが、
Google のクローラーが JavaScript によって、
生成された Webページ を正常にロードできていないかもしれない
ということを知りました。
そのままにしておくと SEO 的には良くないので、
JavaScript で生成していたテキストを
サーバーサイドレンダリングすることにしました。
実装
グラフ描画の実装では、data属性 を渡して
JavaScript で処理を行っていました。
そこで、テキスト部分だけを
JavaScript を使わずにグラフの描画時に利用していた
data属性 を用いることにしました。
具体的な実装は、以下のようになりました。
<!-- sample.vue -->
<template lang="pug">
.sample
.sample-text(data-size="12") 12pxのフォント
.sample-text(data-size="18") 18pxのフォント
.sample-text(data-size="36") 36pxのフォント
.sample-text(data-size="15") 15pxのフォント
.sample-text(data-size="8") 8pxのフォント
</template>
<style lang="scss" scoped>
.sample {
padding: 30px 0;
color: #ffffff;
text-align: center;
background: #2c3e50;
$font-sizes: 8, 12, 15, 18, 36;
@each $size in $font-sizes {
&-text[data-size="#{$size}"] {
font-size: #{$size}px;
margin-bottom: #{$size / 2}px;
}
}
}
</style>
上記のコンポーネントを呼ぶと、下のようになります。

他にもっと良い書き方があると思うので、 分かり次第修正します。
