我似乎在尝试书中的所有技巧,但没有任何工作。
我有一个全屏,绝对定位的HTML5视频背景,我需要模糊。但是,我希望它有锋利的边缘。
到目前为止,我已尝试过大约20或30种各种解决方案,似乎没有任何效果。
这是我尝试过的:
- 设置负边距
- 设置负顶部,左侧,右侧,底部边距
- 在隐藏溢出的容器中设置正边距
- 在具有溢出隐藏的容器中设置
-Methods here:Defined Edges With CSS3 Filter Blur - Defined Edges With CSS3 Filter Blur - CSS blur and retain sharp edges using absolute div - Blur absolute background whilst retaining solid edges - http://volkerotto.net/2014/07/03/css-background-image-blur-without-blury-edges/
到目前为止,这是代码:
HTML
<video id="videobcg" preload="auto" autoplay="true" loop="loop" muted="muted" volume="0">
<source src="vid/myVid.mp4" type="video/mp4">
<source src="vid/myVid.webm" type="video/webm">
Sorry, your browser does not support HTML5 video.
</video>
CSS
#videobcg {
position: absolute;
top: 0;
left: 0;
min-width: 100% !important;
max-height: 100% !important;
z-index: -1000;
overflow: hidden;
object-fit: fill;
-webkit-filter: blur(15px);
-moz-filter: blur(15px);
-o-filter: blur(15px);
-ms-filter: blur(15px);
filter: blur(15px);
}
也许我做错了什么,我不太确定。我正在做的是阻止它工作吗?
提前感谢您的帮助!
答案 0 :(得分:2)
这pen符合您的需求吗?
HTML
<div id="container">
<video id="videobcg" preload="auto" autoplay="true" loop="loop" muted="muted" volume="0">
<source src="http://clips.vorwaerts-gmbh.de/VfE_html5.mp4" type="video/mp4">
Sorry, your browser does not support HTML5 video.
</video>
</div>
CSS
#container {
width: 640px;
height: 360px;
overflow: hidden;
-webkit-filter: blur(15px);
-moz-filter: blur(15px);
-o-filter: blur(15px);
-ms-filter: blur(15px);
filter: blur(15px);
}
#videobcg {
width: 100%;
height: auto;
}
您可能希望将该视频设为比父视频更大并将其置于其中,我认为这样可以消除父视角内的白色模糊。
答案 1 :(得分:2)
您可能希望使该视频大于父视频并将其居中放置,我想这将消除父边界内的白色模糊。
@Ashugeo,我接受了您的代码,并按照您几年前的建议进行了工作,看来似乎可行。
不幸的是,这似乎不起作用。我还尝试过将视频放大并居中,但似乎仍然无法正常工作。
@Finn C,如今,似乎可以使用transform了: https://jsfiddle.net/Erik_J/6f483wm9/
HTML
<div id="container">
<video id="videobcg" preload="auto" autoplay="true" loop="loop" muted="muted" volume="0">
<source src="http://clips.vorwaerts-gmbh.de/VfE_html5.mp4" type="video/mp4">
Sorry, your browser does not support HTML5 video.
</video>
</div>
CSS
body{ margin:0;}
#container {
width: 100vw;
height: 100vh;
text-align: center;
overflow: hidden;
}
#videobcg {
width: inherit;
height: inherit;
-o-filter: blur(15px);
filter: blur(15px);
object-fit: cover;
transform: scale(1.04);
}