これまでにこれまで試みたことはありません。私は2つのアイコンを含む画像スプライトを作成しました。各アイコンの幅は26px、高さです。したがってスプライトは26x52pxです。CSS:css擬似クラスで画像スプライトを使用する:beforeと:after
私はdiv.somethingまたはdiv.anythingのいずれかにある要素を持っています。クラスに応じて、左または右にコーナーキャップを追加します。
したがって、私は相対座標を配置しています。:before
疑似クラスをimgに適用し、高さと幅を26pxにしてスプライトのアイコンが1つしかないようにしてください。また、 "オーバーフロー:スプライト上の2番目のアイコンを非表示にするために非表示にします。
.element {
position:relative;
}
.element:before{
content: url("../images/sprite.png");
position: absolute;
height:26px;
width:26px;
overflow:hidden;
}
.something .element:before {
top: -2px;
left: -2px;
}
anything .element:before {
top: -28px;
right: -2px;
}
これは、スプライトの最初のトップアイコンを使用する左隅に問題なく動作します。 しかし今、私はどのように "何か.element"のスプライトに2番目のアイコンしか表示できないのだろうかと思います。
実際には、「マスク」は-2px、-2pxに配置する必要がありますが、スプライトimg insideは-26pxから開始し、2番目のアイコンが表示されます。
これは私が今やっているようにCSSで可能ですか?
を理解するのに役立ちますあなたがこれまで持っているもののhttp://jsfiddle.net/のデモを表示することができますか?私が知る限り、 ':before 'は' img'要素では動作しません:http://jsfiddle.net/thirtydot/CWXS3/。だから、あなたの質問はむしろ混乱しています。 – thirtydot
私の質問を.elementではなくimgに編集しました。ちょうど理解しやすくしたかったのです。それはimgで動作しないことを知らなかった – matt
まあ、意味があります。あなたが与えた答えは正しいです。これを読んでください:http://tinyurl.com/so-hints。私はこの部分が好きです。「実際のコードのような「何か」であるが、明らかに実際のコードではないコードを私に与えないでください。 – thirtydot