Cssを使用して、コンテンツdivのすべての画像に白い境界線を追加したいと思います。ヘッダーとフッターのdiv領域の画像は影響を受けません。どうすればこれを達成できますか?下の画像例をご覧ください。 Webページにはさまざまなサイズの画像があります。
画像を参照:
追加の要素や疑似要素を持たずにこれを行うことができます。
http://cssdeck.com/labs/t6nd0h9p
img {
outline: 1px solid white;
outline-offset: -4px;
}
IE9&10はoutline-offsetプロパティをサポートしていませんが、それ以外の場合はサポートが良好です: http://caniuse.com/#search=outline
画像の寸法を知る必要のない代替ソリューション:
http://cssdeck.com/labs/aajakwnl
<div class="ie-container"><img src="http://placekitten.com/200/200" /></div>
div.ie-container {
display: inline-block;
position: relative;
}
div.ie-container:before {
display: block;
content: '';
position: absolute;
top: 4px;
right: 4px;
bottom: 4px;
left: 4px;
border: 1px solid white;
}
img {
vertical-align: middle; /* optional */
}
これを試すことができます:
HTML:
<div class="image">
<div class="innerdiv">
</div>
</div>
Css:
.image
{
width: 325px;
height: 239px;
background:url(http://www.modernvice.com/files/images/backgrounds/_Zoom/black-pony.jpg) 0 0 no-repeat;
padding: 10px;
}
.innerdiv
{
border: 1px solid white;
height:100%;
width: 100%;
}
これがあなたの言っていることを願っています:)
Div IDまたはクラスが何であれ、単純に追加できます
#yourDivIDExample {
...
}
#yourDivIDExample img{
border:1px solid #ffffff;
}
これにより、div自体の画像の周囲に境界線が作成されます。クラスまたはグローバルルールでも同じように機能します。
img {
border:1px solid #ffffff;
}
これをbox-shadow: inset
とそれで解決しました IE11以上で動作します 。画像の周囲の角に境界線が必要でしたが、この例では_10px
境界線が挿入されています。 :before
または:after
要素を持つ親div
が必要ですが、非常にうまく処理します。
.image {
width: 100%;
height: auto;
}
.image__wrapper {
position: relative;
}
.image__wrapper:before {
content: '';
position: absolute;
top: 10px;
bottom: 10px;
left: 10px;
right: 10px;
box-shadow: inset 0 0 0 3px red;
}
このようなことができます[〜#〜] demo [〜#〜]
HTMl
<div class="imgborder">
<div class="in-imgborder">
</div>
</div>
CSS
.imgborder {
width: 300px;
height: 300px;
position: relative;
background: url(http://placekitten.com/300/300) no-repeat;
}
.in-imgborder {
width: 290px;
height: 290px;
position: absolute;
top: 4px;
left: 4px;
border: 1px solid red;
}