背景画像をbackground-size
プロパティーで縦横サイズを制限して敷き詰めるというのは昔id:hitode909がやってた。それをCSS Transitionsで元のサイズに戻したらどうなるかなーとやってみたらそこそこ面白かった。きっかけは96x96.netを見たことで、こっちはborder-image
プロパティーを組み合わせていて、width
プロパティーをtransitionしている。
Demo: background-size
Transition
CSSは至って普通。background-position
プロパティーでセンタリングすると中央からブワッとなる。どちらかというと縦に並べた方がカッコイイ気がする。
.test {
width: 640px; /* 背景画像の横幅 */
height: 360px; /* 背景画像の縦幅 */
background-image: url("http://example.com/img/bg.png");
background-size: 100% 0.001%;
background-repeat: repeat-y;
background-position: center;
transition-duration: 1s;
}
.test:hover {
background-size: 100% 100%;
transition-duration: 1s;
}
CSS Transitionsのサポートがマチマチなこと以外にもいろいろダメな所が多い。
px
単位から%
単位へのTransitionsができないbackground-size: 100% 0.001%
とかちょっと苦しい指定をすると、小数の丸め方がブラウザーにより違うため敷き詰めることができるものとそうでないものに分かれるtransition-property
プロパティーでbackground-size
プロパティーがサポートされていないのでアニメーションできない小数の丸め(や%
単位のpx
への変換における丸め)はそろそろ統一して欲しい。%
ベースのグリッド・レイアウトの採用が進まない理由のひとつにこれがあるんじゃないかと思う。