画像を使わず、CSSのみで装飾を済ませるのが多い今のコーディング事情で、ボックスに2重線を引く方法といえば、borderとoutlineをあてたり、box-shadowを当てたり、疑似要素を使ったり、色々な方法があります。
思いついた2重線の書き方のまとめ。
ボックスの外側にborder。内側にoutlineってイメージです。
.w-border01{ border: solid 1px #fff; outline: solid 1px #c414ba; background-color: #c414ba; padding: 5px 20px; }
影をぼかしなしで2重であてる。境界線を複数あてれなかったCS時期のPhotoshopのレイヤースタイルを思い出します。
.w-border02{ box-shadow: 0 0 0 1px #fff, 0 0 0 2px #c414ba; background-color: #c414ba; padding: 5px 20px; }
beforeに関しては可変さえるためにはcalcでずらした分のwidthを引いてあげないと、線がズレます。
.w-border03{ position: relative; z-index: 0; border: 1px solid #fff; background-color: #c414ba; padding: 5px 20px; } .w-border03:before{ content: ""; display: block; position: absolute; top: -2px; left: -2px; width: calc(100% + 2px); min-height: 100%; border: 1px solid #c414ba; padding-bottom: 2px; z-index: 1; }
入れ子の構造にしても良い場合はこれでもアリかも。ただし大元には「display: inline-block;」にしておかないと、上下の線は消えます。
リストのテキストアイコンを並べる時とかに有効です。
.w-border04{ box-sizing: border-box; display: inline-block; background-color: #c414ba; } .w-border04 em{ margin: 1px; border: 1px solid #fff; display: block; text-align: center; padding: 5px 20px; font-style: normal; }
【参考サイト】