読者です 読者をやめる 読者になる 読者になる

写真をテープで貼ったように見せるギャラリー

CSS / Less


写真をテープで貼ったように見せます。手作り風のデザインと組み合わせて。

HTML のマークアップはシンプルに。

<ul class="image-container">
<li><img src="p1.jpg" alt=""></li>
<li><img src="p2.jpg" alt=""></li>
<li><img src="p3.jpg" alt=""></li>
<li><img src="p4.jpg" alt=""></li>
<li><img src="p5.jpg" alt=""></li>
<li><img src="p6.jpg" alt=""></li>
</ul>

こんなテープの画像を用意します。
http://harapeco.grrr.jp/examples/css-tape/tape.png http://harapeco.grrr.jp/examples/css-tape/tape2.png
:before, :after 疑似要素に content プロパティを使って画像を配置します。

.image-container li {
	position: relative;
}

.image-container li:before, .image-container li:after {
	content: url(tape.png);

	/* tape.png の大きさ */
	width: 60px;
	height: 20px;

	/* 位置を調整する */
	display: block;
	position: absolute;
	left: -20px;
	top: 0px;
	z-index: 100;

	/* 傾ける */
	transform: rotate(-35deg);
	-webkit-transform: rotate(-35deg);
	-moz-transform: rotate(-35deg);
}

.image-container li:after {
	/* 位置を調整する */
	left: auto;
	top: auto;
	right: -20px;
	bottom: 0px;

	/* 角度に変化をつける */
	transform: rotate(-40deg);
	-webkit-transform: rotate(-40deg);
	-moz-transform: rotate(-40deg);
}

疑似要素を li ではなく img に指定することも考えられますが、Internet Explorer 8 でテープの画像が写真の下に隠れてしまいます。そのため li 要素に指定しています。
transform プロパティによる img 要素の回転はブラウザによって淵が汚くなることがあります。Safari (Mac/Windows) と Firefox (Windows) がきれい、Firefox (Mac) はそこそこ、Chrome (Windows) はジャギーが出ます。
デモで使用した CSS およびテープの画像はご自由にご利用ください。