[CSS]見出しや本文やボタンなど、要素の両側にすぅーと天地中央のラインを配置するテクニック
Post on:2016年8月4日
見出しや本文やボタンなど、一行でも複数行でも要素の両側にすぅーと天地中央のラインを配置するスタイルシートのテクニックを紹介します。
デモ
実際の動作は、下記ページで確認できます。
Horizontal lines around centered content
HTMLやCSSを編集することもできるので、いろいろ試してみてください。
実装
実装は、非常に簡単です。
HTML
天地中央のラインを配置する要素に「.has-lines」を与えます。
1 2 3 4 5 6 7 |
<h1 class="has-lines">見出し</h1> <h1 class="has-lines">見出し複数行</h1> <p class="has-lines">本文</p> <p class="has-lines">本文複数行</p> <p class="has-lines"> <button>ボタン</button> </p> |
CSS
CSSはベンダプレフィックスをいれた版なので、少し長いです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
.has-lines { display: -webkit-box; display: -webkit-flex; display: -ms-flexbox; display: flex; -webkit-box-align: center; -webkit-align-items: center; -ms-flex-align: center; align-items: center; text-align: center; -webkit-box-pack: center; -webkit-justify-content: center; -ms-flex-pack: center; justify-content: center; } .has-lines:before, .has-lines:after { content: ''; -webkit-box-flex: 1; -webkit-flex-grow: 1; -ms-flex-positive: 1; flex-grow: 1; height: 1px; background: #ccc; min-width: 20px; display: inline-block; vertical-align: middle; } .has-lines:before { margin-right: 20px; } .has-lines:after { margin-left: 20px; } |
対応ブラウザ
対応ブラウザはIE11+を含む、すべてのモダンブラウザで動作します。
IE9では疑似要素のmin-widthがうまく機能しません。
Modernizrの「.flexbox」を使って、IE9では非表示するのも一つの手です。
sponsors