見出し画像

【CSS】多重線のBOXを描いてみます

たまにデザイナーさんが難しい装飾のBOXデザインを出してきたりしますよね。多重線だったり、2重線だけど極端に線の太さが違っていたり。

普通の枠線だったら、
 単線なら border: 2px solid #f00;
 二重線なら border: 3px double #f00;
というふうにすればCSSで簡単に描けるんですが、あまりにもデザインチックな多重線のBOXデザインを持ってこられたら、結構厳しいものがありました。

それを解決するには…

box-shadow(inset)

 ​を使用すれば、簡単に多重線を描くことが可能です!

とりあえず、サンプルを見てください。
https://revenue-test.biz/test_html/multiplet.html

サンプルを見ればわかるかと思いますが、

    box-shadow: #fff 0 0 0 1px inset,
               #999 0 0 0 2px inset,
               #fff 0 0 0 3px inset,
               #999 0 0 0 4px inset,
               #fff 0 0 0 5px inset,
               #999 0 0 0 6px inset,
               #fff 0 0 0 7px inset,
               #999 0 0 0 8px inset,
               #fff 0 0 0 11px inset,
               #48d 0 0 0 13px inset;

こんな感じでカンマ区切りで線を描くことによって、多重の線を描くことができます。

もちろん、inset を付けない影の部分を付与すれば、多重線の影付きBOXを描くことも可能です。

    box-shadow: #fff 0 0 0 1px inset,
               #999 0 0 0 2px inset,
               #fff 0 0 0 3px inset,
               #999 0 0 0 4px inset,
               #fff 0 0 0 5px inset,
               #999 0 0 0 6px inset,
               #fff 0 0 0 7px inset,
               #999 0 0 0 8px inset,
               #fff 0 0 0 11px inset,
               #48d 0 0 0 13px inset,
               rgba(0,0,0,0.7) 3px 3px 8px;

上記の最後の一行が影の部分になりますね。

※余談ですが、以前はこの多重線を描くと、Firefox と chrome で見え方が違っていたんですが、今は同じになりましたね。
ああ、同じエンジンになっちゃったんだなあ…とこんなところの見栄えで感じ入ってしまう出来事でした。

この記事が気に入ったらサポートをしてみませんか?