如果我有一个非常简单的图像,像这样:

<img src="image.jpg" class="blur">

.blur {
    filter:blur(20px);
    -o-filter:blur(20px);
    -ms-filter:blur(20px);
    -moz-filter:blur(20px);
    -webkit-filter:blur(20px);
}


模糊时,图像边缘会溢出并模糊。



我正在尝试做的是使图像模糊,而没有溢出。我尝试将其包装在<div>中,并将溢出设置为隐藏:

<div class="image">
    <img src="image.png" class="blur">
</div>

.image {
    width: auto;
    height: auto;
    overflow: hidden;
    display: inline-block;
}


但是,这没有任何作用。有人可以解释一下您如何执行此操作吗?

小提琴:http://jsfiddle.net/629yL/

最佳答案

如果您要像这样放置图像,它将无法正常工作。您需要将其包装在div中,并将其作为包装div中div的背景。然后隐藏父级的溢出内容-这将起作用。

但是,失真仍然存在,您的图像将占用更多空间。

的HTML

<div class="box">
<div class="blur"></div>
</div>


的CSS

    .box {
    overflow: hidden;
    margin:5px;
}

.blur {
    -webkit-filter: blur(20px);
    margin: -5px 0 0 -5px;
    background: url("http://readwrite.com/files/dogecoin.jpg");
    height:400px;
    width:400px;
}


Demo

关于html - 隐藏元素的模糊溢出,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24006121/

10-11 22:22
查看更多