実際には、ラッパーといくつかの巧妙なCSSを使用するだけで、これらすべてを実現できます。
以下に例を示します。CSSの多くは見栄えを良くするためのものであることに注意してください。機能の実際の要点は、タグがsでIMG
ラップされており、タグには次のものが適用されているという事実です。SPAN
SPAN
span.selected:after {
content: '';
display: inline-block;
position: absolute;
bottom: 10px; left: 50%;
margin: 0 0 0 -25px;
height: 0; width: 0;
border: 20px solid transparent;
border-bottom-color: #fff;
z-index: 1;
}
このように特定のクラスの要素をスタイリングすること:after
で、矢印の白い部分を作成します。要素の追加のスタイルは:before
、白い矢印の周りに黒い境界線を作成することです。
http://jsfiddle.net/TroyAlford/wRrW6/で実際の例を見ることができます。
<span><img src="http://placekitten.com/400/400" /></span>
<span class="selected"><img src="http://placekitten.com/410/410" /></span>
<span><img src="http://placekitten.com/420/420" /></span>
<style type="text/css">
img {
border: 1px solid #333;
color: transparent;
display: inline-block;
padding: 5px; margin: 5px;
position: relative;
width: 200px; height: 200px;
}
span { display: inline-block; }
span:hover { cursor: pointer; }
span.selected { position: relative; }
span.selected > img { background: #268; }
span.selected:before, span.selected:after {
content: '';
display: inline-block;
position: absolute;
bottom: 10px; left: 50%;
margin: 0 0 0 -25px;
height: 0; width: 0;
border: 20px solid transparent;
border-bottom-color: #000;
z-index: 1;
}
span.selected:after {
bottom: 9px; left: 50%;
margin: 0 0 0 -25px;
height: 0; width: 0;
border: 20px solid transparent;
border-bottom-color: #fff;
}
</style>