border-radius
角丸
.border-radius { border-radius: 4px; }
角ごとに個別に設定することも可能。
border-radius:左上 右上 右下 左下
.border-radius { border-radius: 4px 10px 6px 23px; }
border-raidusに50%を指定すると、円を描くことが出来る。
.border-radius { border-radius: 50%; }
box-shadow
ドロップシャドウ
.box-shadow { box-shadow: 2px 2px 10px rgba(0, 0, 0, 0.32); }
内側
.box-shadow2 { box-shadow: inset 2px 2px 10px rgba(0, 0, 0, 0.32); }
複数指定
.box-shadow3 { box-shadow: inset 2px 2px 10px rgba(0, 0, 0, 0.32), 2px 2px 10px #F00, 6px 6px 10px #00F; }
二重線引くテクニック
.boudle-line { border-bottom: 1px solid #0F0; box-shadow: 0 1px 0 #F00; }
text-shadow
てきすとしゃどうアリだと文字がはっきりする
.text-shadow { text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5); }
gradient
あの虹色がCSSで再現できる
.gradient { background: #ff0000; background: -moz-linear-gradient(top, #ff0000 0%, #ff00ff 15%, #0000ff 33%, #00ffff 48%, #00ff00 67%, #ffff00 84%, #ff0000 100%); background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#ff0000), color-stop(15%,#ff00ff), color-stop(33%,#0000ff), color-stop(48%,#00ffff), color-stop(67%,#00ff00), color-stop(84%,#ffff00), color-stop(100%,#ff0000)); background: -webkit-linear-gradient(top, #ff0000 0%,#ff00ff 15%,#0000ff 33%,#00ffff 48%,#00ff00 67%,#ffff00 84%,#ff0000 100%); background: -o-linear-gradient(top, #ff0000 0%,#ff00ff 15%,#0000ff 33%,#00ffff 48%,#00ff00 67%,#ffff00 84%,#ff0000 100%); background: -ms-linear-gradient(top, #ff0000 0%,#ff00ff 15%,#0000ff 33%,#00ffff 48%,#00ff00 67%,#ffff00 84%,#ff0000 100%); background: linear-gradient(to bottom, #ff0000 0%,#ff00ff 15%,#0000ff 33%,#00ffff 48%,#00ff00 67%,#ffff00 84%,#ff0000 100%); filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ff0000', endColorstr='#ff0000',GradientType=0 ); }
background-size
いい例
.background-size { background: url(../img/bg@2x.gif) no-repeat center center; /* bg@2x.gifの画像サイズ(640*160) */ -moz-background-size: 320px auto; -webkit-background-size: 320px auto; -o-background-size: 320px auto; -ms-background-size: 320px auto; background-size: 320px auto; }
autoを入力すると、どちらかで指定したサイズと同じ倍率に合わせて拡大・縮小してくれる。
悪い例
.background-size { -moz-background-size: 320px auto; -webkit-background-size: 320px auto; -o-background-size: 320px auto; -ms-background-size: 320px auto; background-size: 320px auto; background: url(../img/bg@2x.gif) no-repeat center center; }
Safari以外では、background-sizeの値がbackgroundで上書きされてしまう。
一番確実なのはbackgroundをまとめて記述しないこと。
.background-size { background-image: url(../img/bg@2x.gif); background-repeat: no-repeat; background-position: center center; -moz-background-size: 320px auto; -webkit-background-size: 320px auto; -o-background-size: 320px auto; -ms-background-size: 320px auto; background-size: 320px auto; }
ちなみに2倍のサイズで書き出してないと、こんなにも画像の見え方が違う
box-sizing
400px
box-sizing指定あり。
width:400px/padding:50px/border:1px/box-sizing:border-box
width:400px/padding:50px/border:1px/box-sizing:border-box
box-sizing指定なし。
width:400px/padding:50px/border:1px
width:400px/padding:50px/border:1px
box-sizing指定なし。
width:298px/padding:50px/border:1px
今までは計算めんどくさかった
width:298px/padding:50px/border:1px
今までは計算めんどくさかった
.background-size { -moz-box-sizing: border-box; -webkit-box-sizing: border-box; -o-box-sizing: border-box; -ms-box-sizing: border-box; box-sizing: border-box; }
flex-box
float:leftしなくても、自動で横並びになる。
nav.flex-box ul { display: -webkit-box; display: -moz-box; display: -o-box; display: -ms-box; display: box; }
display: box;を指定した子要素にbox-flexを指定すると自動で幅を埋めてくれる。
nav.flex-box ul li { -webkit-box-flex: 1; -moz-box-flex: 1; -o-box-flex: 1; -ms-box-flex: 1; box-flex: 1; }
同じフレックスボックス同士で、高さも自動で揃えてくれる。
今まで紹介したのを合わせると、画像を使わず簡単なナビゲーションは作れる。
appearance
- checkbox
.appearance { -moz-appearance: none; -webkit-appearance: none; -o-appearance: none; -ms-appearance: none; appearance: none; }