我已经看到这个问题出现了几次,没有任何明确的解决方案。
我正在加载一个简单的视频
<video src="" controls></video>
到我的页面。该视频在跨浏览器上运行良好(未显示此问题的所有格式设置,因为它不相关)。
然后我将边框半径应用于视频标签。这有效,但在 Chrome 中除外。我什至可以拉起控制台并查看应用于视频标签的边框半径,但它没有呈现边框半径。
有人熟悉这个问题吗?我读过它是 Chrome 中的一个错误,但我不确定它是否已解决或者是否有解决方法?
我已经看到这个问题出现了几次,没有任何明确的解决方案。
我正在加载一个简单的视频
<video src="" controls></video>
到我的页面。该视频在跨浏览器上运行良好(未显示此问题的所有格式设置,因为它不相关)。
然后我将边框半径应用于视频标签。这有效,但在 Chrome 中除外。我什至可以拉起控制台并查看应用于视频标签的边框半径,但它没有呈现边框半径。
有人熟悉这个问题吗?我读过它是 Chrome 中的一个错误,但我不确定它是否已解决或者是否有解决方法?
我不确定,但我认为这就是“使用 SVG”的含义:
这个想法是创建一个与视频具有相同宽度和高度的 HTML 覆盖元素,在其上设置多个 SVG 背景(border-radius
无论背景颜色如何)并使其“鼠标不可见”(pointer-events: none
):
演示:http: //jsfiddle.net/pe3QS/3/
CSS(减去 SVG):
#video-container {
position: relative;
}
#overlay {
position: absolute;
width: 320px;
height: 240px;
left: 0;
top: 0;
pointer-events: none;
background-image: url('data:image/svg+xml...');
background-position: top right, top left, bottom left, bottom right;
background-repeat: no-repeat;
}
HTML:
<div id="video-container">
<video width="320" height="240" src="http://www.w3schools.com/html/movie.ogg" type="video/ogg" controls></video>
<div id="overlay"></div>
</div>
您还可以使用伪元素(不在video
元素上,它不会显示):
演示:http: //jsfiddle.net/pe3QS/2/
CSS:
#video-container:after {
position: absolute;
width: 320px;
height: 240px;
content: " ";
.....
HTML:
<div id="video-container">
<video width="320" height="240" src="http://www.w3schools.com/html/movie.ogg" type="video/ogg" controls></video>
</div>
SVG 的修改非常简单,只需更改fill
它们每个的属性即可。
这可能也可以通过 JS 来完成。