このコードでいくつかの画像をぼかしています
img {
filter: blur(5px);
-webkit-filter: blur(5px);
-moz-filter: blur(5px);
-o-filter: blur(5px);
-ms-filter: blur(5px);
}
ただし、画像のエッジもぼやけます。エッジを定義したまま、画像をぼかすことは可能ですか? はめ込みぼかしか何かのように?
このコードでいくつかの画像をぼかしています
img {
filter: blur(5px);
-webkit-filter: blur(5px);
-moz-filter: blur(5px);
-o-filter: blur(5px);
-ms-filter: blur(5px);
}
ただし、画像のエッジもぼやけます。エッジを定義したまま、画像をぼかすことは可能ですか? はめ込みぼかしか何かのように?
<div>
withに入れてto にoverflow: hidden;
設定できます。<img>
margin: -5px -10px -10px -5px;
img {
filter: blur(5px);
-webkit-filter: blur(5px);
-moz-filter: blur(5px);
-o-filter: blur(5px);
-ms-filter: blur(5px);
margin: -5px -10px -10px -5px;
}
div {
overflow: hidden;
}
<div><img src="http://placekitten.com/300" /></div>
私はこれを
transform: scale(1.03);
画像に適用されるプロパティ。何らかの理由で、Chrome では、相対的に配置された親要素がある場合、提供されている他のソリューションは機能しません。
http://jsfiddle.net/ud5ya7jt/ を確認してください
このようにして、画像はわずかに 3% ズームインされ、エッジが切り取られますが、ぼやけた画像では問題になりません。背景として高解像度の画像を使用していたので、私の場合はうまくいきました。幸運を!
ビデオ全体を保持することもできます。何かを切り取る必要はありません。
白くぼやけたエッジにインセット シャドウを重ねることができます。
これも本当に素敵に見えます:)
このコードを動画の親に貼り付けるだけです:
.parent {
-webkit-box-shadow: inset 0 0 200px #000000;
-moz-box-shadow: inset 0 0 200px #000000;
box-shadow: inset 0 0 200px #000000;
}
IMG をposition:absoluteにできる多くの状況では、クリップを使用してぼやけたエッジを非表示にすることができます。外側の DIV は不要です。
img {
filter: blur(5px);
-webkit-filter: blur(5px);
-moz-filter: blur(5px);
-o-filter: blur(5px);
-ms-filter: blur(5px);
position: absolute;
clip: rect(5px,295px,295px;5px);
}
その受け入れられた答えへのヒントです。絶対位置を使用している場合、負のマージンは機能しませんが、上、下、左、右を負の値に設定して、親要素のオーバーフローを非表示にすることができます。
画像サイズがわからない場合、絶対画像の位置にクリップを追加することについての答えには問題があります。
position: relative;
との中に画像を挿入しますoverflow: hidden;
HTML
<div><img src="#"></div>
CSS
div {
position: relative;
overflow: hidden;
}
img {
filter: blur(5px);
-webkit-filter: blur(5px);
-moz-filter: blur(5px);
-o-filter: blur(5px);
-ms-filter: blur(5px);
}
これは、動的 div のような可変サイズの要素でも機能します。
画像をクリッピングし、ぼかし効果を 0 ピクセルに設定するラッパー要素を適用することで、画像がエッジに重ならないようにすることができます。これは次のようになります。
HTML
<div id="wrapper">
<div id="image"></div>
</div>
CSS
#wrapper {
width: 1024px;
height: 768px;
border: 1px solid black;
// 'blur(0px)' will prevent the wrapped image
// from overlapping the border
-webkit-filter: blur(0px);
-moz-filter: blur(0px);
-ms-filter: blur(0px);
filter: blur(0px);
}
#wrapper #image {
width: 1024px;
height: 768px;
background-image: url("../images/cats.jpg");
background-size: cover;
-webkit-filter: blur(10px);
-moz-filter: blur(10px);
-ms-filter: blur(10px);
filter: blur(10px);
// Position 'absolute' is needed for clipping
position: absolute;
clip: rect(0px, 1024px, 768px, 0px);
}
背景画像を使用している場合、私が見つけた最良の方法は次のとおりです。
filter: blur(5px);
margin-top: -5px;
padding-bottom: 10px;
margin-left: -5px;
padding-right: 10px;
これは私が思いついた解決策であり、画像の100%を保持し、トリミングは必要ありません:
基本的に、画像を 3x3 グリッドでミラーリングし、すべてをぼかし、中央の画像をズームインして効果的に後処理でぼかしたときに繰り返しエッジのように作成します。css3 に繰り返しエッジが組み込まれていないのは少し奇妙です。
メソッド/コードへのリンク: CSS3 を使用してエッジをトリミングまたはフェードせずに画像をぼかすにはどうすればよいですか?
私の場合、ラッパーを追加する必要がないことがわかりました。
追加しました-
margin: -1px;
また
margin: 1px; // any non-zero margin
overflow: hidden;
私のぼやけた要素は完全に配置されました。
他の要素に境界線を追加してみることができます:
ドム:
<div><img src="#" /></div>
CSS:
div {
border: 1px solid black;
}
img {
filter: blur(5px);
}