Web ページの要素に光沢を追加したい。ページに追加の html を追加する必要がない方がいいと思います。画像を要素の後ろではなく前に表示したい。これを行う最善の方法は何ですか?
4 に答える
「前景画像」を (追加の HTML コードなしで) 実現するには、疑似要素 ( ::before
/ :before
)と CSSpointer-events
を使用できます。最後のプロパティは、ユーザーがレイヤーを実際に「存在しないかのように」クリックできるようにするために必要です。
以下に例を示します (アルファ チャネルが 50% の色を使用して、実際の要素に実際に焦点を合わせることができることを確認できます)。http://jsfiddle.net/JxNdT/
#cont {
width: 200px;
height: 200px;
border: 1px solid #aaa; /*To show the boundaries of the element*/
}
#cont:before {
position: absolute;
content: '';
background: rgba(0,0,0, 0.5); /*partially transparent image*/
width: 200px;
height: 200px;
pointer-events: none;
}
<div id="cont">
Test<br>
<input type="text" placeholder="edit">
</div>
PS. ::before
疑似要素を選択したのは、それが自然に正しい配置につながるからです。を選択すると、実要素 ( ) と疑似要素 ( )::after
に追加する必要があります。position:relative;
#cont
top:0;left:0;
::after
PPS。固定サイズのない要素で前景効果を得るには、追加の要素が必要です。このラッパー要素にはposition:relative;display:inline-block;
スタイルが必要です。疑似要素の and を に設定するwidth
と、疑似要素はラッパー要素の幅と高さに引き伸ばされます。デモ: http://jsfiddle.net/JxNdT/1/ .height
100%
このcssを使用できます
#yourImage
{
z-index: 1;
}
ノート
画像を配置する要素のz-index
インデックスより大きい値を設定します。z-index
何も指定していない場合z-index
は1
、作業を行います。
z-index
に設定することもできます-1
。その場合、画像は常にbackground
!
白透明の前景が必要な場合
これは、たとえば要素が非表示/無効であることを伝えるために、要素に白透明の前景を追加することを検討している、私のような将来の訪問者向けです。opacity
以下の 1 を下げるだけで、多くの場合、目標を達成できます。
.is-hidden {
opacity: 0.5;
}
visible
<span class="is-hidden">hidden</span>
visible