Hafa Adai!
先週末グアムに行ってきました。海はとても綺麗だったのですが、足元にあるガンガゼ?に気が付かず痛い思いをしました(涙
黒い長い刺のアイツには気をつけましょう...。
さてと今回は、なるべく画像を使わずにCSSだけを使って簡単に綺麗に仕上げる方法を、サンプル付きで紹介していきたいと思います。
...と、書いていたらなんかサンプルが増え過ぎちゃったので、今回、まずは「見出し」に使えそうなものをご紹介しましょう。
.ttlMarker { display:inline; padding:5px; background:#34495e; color:#fff; font-size:2.0rem; line-height:1.5; }
その名もズバリマーカーで強調したような見出しです。
ポイントはdisplay:inline;でしょうか。line-heightで重ならないように調整してみてください。
.ttlUnderLine { position:relative; color:#34495e; font-size:2.0rem; line-height:1; } .ttlUnderLine:before { content:""; position:absolute; left:0; bottom:2px; width:100%; border-bottom:1px solid #34495e; } .ttlUnderLine > span { position:relative; display:inline-block; background:#fff; z-index:100; }
文字の終わりから右端まで下線を引いたようなスタイルです。
:beforeで幅100%のラインを生成し、背景に白を敷いた文字ブロックの下に置きます。
背景色が複雑な場合は使えません。
.midashi01 { position:relative; padding:20px 25px 20px 35px; background:#ffb53c; color:#fff; font-size:2.2rem; text-shadow:0 0 1px rgba(000,000,000,0.3); } .midashi01:before { position:absolute; top:0; left:0; display:block; content:""; border-top: 10px solid #fff; border-left: 12px solid #fff; }
角を折り返したようなスタイルです。
:beforeで左上に要素を生成し、borderを使って左上を白100%(背景色)に、右下を白50%で塗りつぶしています。
折り返し左上を塗りつぶしているため、残念ながら背景が単色以外の場合使えません。
折り返し右下はボックスのカラーに白50%を載せているだけなので、ボックスカラーを変更しても変更する必要はありません。
.ttlDrop { position:relative; padding:25px 25px 25px 90px; color:#1d7ee2; font-size:2.4rem; } .ttlDrop .icon { position:absolute; top:0; left:0; width:80px; padding:34px 0; border-radius:200px; background:#1d7ee2; color:#fff; font-size:1.2rem; line-height:1; text-align:center; vertical-align:middle; z-index:100; } .ttlDrop .icon:before { position:absolute; bottom:-6px; right:0; display:block; content:""; width:40px; height:40px; border-radius:100px; background:#1d7ee2; z-index:-1; } .ttlDrop .icon:after { position:absolute; bottom:-8px; left:8px; display:block; content:""; width:10px; height:10px; border-radius:100px; background:#1d7ee2; z-index:-1; }
アイキャッチとして水のようなアイコンを置きました。:before/:afterを使い、中・小サイズの水玉を足しています。
.ttlDoubleLine { width:100%; padding:3px; -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; } .ttlDoubleLine > span { display:block; padding:15px; border:4px solid #fff; box-shadow:inset 0 0 0 3px #d35400, 0 0 0 3px #d35400; color:#d35400; font-size:2.0rem; text-align:center; -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; }
一つのdivにborderとbox-shadowを使って重ねて、二重線に見えるように表現しています。
二重線の間の白い部分はborderなので背景が単色以外だと使えませんね...。
.ttlTxtBG { position:relative; padding:20px; background:#ecf0f1; color:#2c3e50; font-size:2.6rem; text-align:center; z-index:100; overflow:hidden; } .ttlTxtBG:before { position:absolute; top:-15px; left:2px; content:"TITLE"; display:block; color:rgba(000,000,000,0.05); font-family: 'Ubuntu Condensed' sans-serif; font-size:10.0rem; font-weight:bold; letter-spacing: 0.1rem; line-height:1; -webkit-transform:rotate(-13deg); -moz-transform:rotate(-13deg); transform:rotate(-13deg); z-index:-1; }
背景にテキストをデザイン的に入れたスタイルです。
content要素で生成しているのでHTMLに影響がありませんし、動的に変更も可能です。
.ttlFrameA { width:100%; padding-right:8px; -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; } .ttlFrameA > span { display:block; padding:15px; box-shadow:inset 0 0,8px 8px 0 -2px #fff, 8px 8px 0 0 #2e8ece; background:#2e8ece; color:#fff; font-size:2.0rem; text-align:center; } .ttlFrameB { width:100%; padding-right:8px; -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; } .ttlFrameB > span { display:block; padding:15px; border:2px solid #2e8ece; box-shadow:inset 0 0,8px 8px 0 -2px #fff, 8px 8px 0 0 #2e8ece; color:#1d7ee2; font-size:2.0rem; text-align:center; }
囲み枠をずらしたようなスタイルです。box-shadowを2つ重ねて線のように見せています。
枠の分右へ8pxずらしているため、親のDIVで8px余白をとっています。
これも塗りつぶしなので白の部分は透過しません。
.ttlWarp { width:100%; padding:8px; -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; } .ttlWarp > span { display:block; padding:15px; border:2px solid #16a085; box-shadow:inset 0 0, 8px 8px 0 0 #16a085; background:#fff; color:#16a085; font-size:2.0rem; text-align:center; -webkit-transform: skew(-10deg,-3deg); -moz-transform: skew(-10deg,-3deg); transform: skew(-10deg,-3deg); }
transformのskewを使用しています。これは要素を傾斜させることが出来ます。
残念ながら、IEには対応しておりません。
.ttlTombo { position:relative; display:block; padding:15px; border:1px dotted #bdc3c7; color:#34495e; font-size:2.0rem; text-align:center; } .ttlTombo:before, .ttlTombo:after, .ttlTombo > span:before, .ttlTombo > span:after { content:""; position:absolute; width:7px; height:7px; background:url(/blog/ex_images/imgcorner7.png) 0 0 no-repeat; } .ttlTombo:before { top:-1px; left:-1px; -webkit-transform:rotate(0deg); -moz-transform:rotate(0deg); transform:rotate(0deg); } .ttlTombo:after { top:-1px; right:-1px; -webkit-transform:rotate(90deg); -moz-transform:rotate(90deg); transform:rotate(90deg); } .ttlTombo > span:before { bottom:-1px; left:-1px; -webkit-transform:rotate(-90deg); -moz-transform:rotate(-90deg); transform:rotate(-90deg); } .ttlTombo > span:after { bottom:-1px; right:-1px; -webkit-transform:rotate(180deg); -moz-transform:rotate(180deg); transform:rotate(180deg); }
これだけ画像を使用。
カギカッコのような画像を:befor/:afterで生成、transform:rotateでくるくる回して4隅に配置しています。
画像ブロックを4つ生成しているので、divとspanで囲っています。
.ttlGradation { border:1px solid #3498db; background: #3498db; color:#3498db; font-size:2.0rem; } .ttlGradation span { display:block; padding:15px 15px 15px 6%; background: #fff; background: -webkit-linear-gradient(left, rgba(255,255,255,0.0) 0%, rgba(255,255,255,0.0) 1%, rgba(255,255,255,0.2) 1%, rgba(255,255,255,0.2) 2%, rgba(255,255,255,0.4) 2%, rgba(255,255,255,0.4) 3%, rgba(255,255,255,0.6) 3%, rgba(255,255,255,0.6) 4%, rgba(255,255,255,0.8) 4%, rgba(255,255,255,0.8) 5%, rgba(255,255,255,1.0) 5%, rgba(255,255,255,1.0) 100%); background: linear-gradient(to right, rgba(255,255,255,0.0) 0%, rgba(255,255,255,0.0) 1%, rgba(255,255,255,0.2) 1%, rgba(255,255,255,0.2) 2%, rgba(255,255,255,0.4) 2%, rgba(255,255,255,0.4) 3%, rgba(255,255,255,0.6) 3%, rgba(255,255,255,0.6) 4%, rgba(255,255,255,0.8) 4%, rgba(255,255,255,0.8) 5%, rgba(255,255,255,1.0) 5%, rgba(255,255,255,1.0) 100%); }
見出しとして背景にグラデーションを敷いてみました。
spanの背景グラデーションに白の透明度を1%ずつずらして指定。親divの背景色に1%幅ずつかぶせます。
もちろんdivの背景色を変更すればグラデーションも変化します。
おなじことをbox-shadowでもできますね。insetで。
次回はまた別のサンプルを紹介したいと思います。
Adios!