tyoshikawa1106のブログ

- Force.com Developer Blog -

SFDC:Lightning Namespacerを利用してVisualforceでBootstrapを使えるようにできるか試してみました

Bootstrapはレスポンシブデザインなページを簡単に開発できる便利なCSSフレームワークです。ただ、Visualforceページの開発で使用するとSalesforceの標準スタイルと競合して正しく表示できない箇所がありました。


例えば、Salesforceの標準ヘッダーを非表示にして標準スタイルを無効にしたときはBootstrapのスタイルが正しく適用されています。

f:id:tyoshikawa1106:20150405234813p:plain

しかし、標準スタイルが有効になっているとBootstrapのスタイルが適用されなかったり、Salesforceの標準スタイルに影響を与えてしまう箇所があります。(例:ボタンのスタイルなど)

f:id:tyoshikawa1106:20150406001721p:plain


このような理由からVisualforceの開発ではBootstrapを気軽に利用することはできませんでした。(この問題を回避するために海外の開発者がVisualStrapという便利なパッケージを開発してくれたりもしています。)


ですが、先日公開されたLightning Namespacerを利用することでBootstrapのCSSに簡単に名前プレフィックスを追加することができるようになりました。BootstrapのCSSは6000行近くありますが、一瞬で追加することができます。(チラッと確認したところヘッダーコメントの部分にも追加されましたがこれは削除しても問題なさそうでした。)

f:id:tyoshikawa1106:20150406000249p:plain

f:id:tyoshikawa1106:20150406000237p:plain


これを利用することでSalesforceの標準スタイルに影響を与えること無く、Bootstrapのスタイルを適用させることが可能です。

f:id:tyoshikawa1106:20150406001106p:plain


こんな感じにdivタグを用意して追加したクラスを指定するとうまくいきました。

f:id:tyoshikawa1106:20150406001526p:plain


簡単に確認しただけなので全て正しく適用されるかはわかりませんが、今のところ問題なさそうな感じでした。Lightning NamespacerでカスタマイズできるのはBootstrapのCSSだけではないので他にもいろいろな場面で役立ちそうです。

関連記事

サンプルコード

今回検証に使用したサンプルコードです。静的リソースにBootstrapがアップされていればコピペで動作すると思います。