【发布时间】:2017-03-02 19:58:17
【问题描述】:
我在 html 页面上为我的视频设置了一组自定义控件。它在 Chrome 中或多或少地以我想要的方式显示,但是当我在 Edge 或 Firefox 中查看它时,显示的位置太高、不够高、位置完全错误。我花了一个周末的时间试图弄清楚这一点,但我的运气为零。这是他们的样子:
这是我当前的代码:
<div id ="video-container">
<video class = "jack7" width="450" height="230" id = "video">
<source src="<?php echo($videourl); ?>" type="video/mp4">
Your browser does not support this video. Try chrome!
</video>
<div id="video-controls">
<button type="button" id="play-pause" ><img id = "playbtn" src="img/icons/play.png"></button>
<input type="range" id="seek-bar" step="0.01" value="0">
<button type="button" id="mute"><img id = "mutebtn" src="img/icons/unmute.png"></button>
<input type="range" id="volume-bar" min="0" max="1" step="0.01" value="1">
<button type="button" id="full-screen"><img id = "fsbtn" src="img/icons/fullscreen.png"></button>
</div>
</div>
这是我的 CSS:
.jack7{
margin-left: 0px;
margin-top: 0px;
margin-bottom: 0px;
}
#video-container {
margin-left: 234px;
margin-top: -150px;
margin-bottom: 30px;
width: 450px;
height: 230px;
position: relative;
background-color: #000000;
}
#video-controls {
background: linear-gradient(rgba(255,255,255,0),#222222);
position: relative;
margin-top: -31px;
opacity:0;
padding: 5px;
-webkit-transition: opacity .3s;
-moz-transition: opacity .3s;
-o-transition: opacity .3s;
-ms-transition: opacity .3s;
transition: opacity .3s;
}
#video-container:hover #video-controls {
opacity:.9;
}
button {
outline:none;
background: none;
border:0;
font: inherit;
line-height: normal;
overflow: visible;
padding: 0;
-webkit-appearance: button; /* for input */
-webkit-user-select: none; /* for button */
-moz-user-select: none;
-ms-user-select: none;
}
button:hover {
cursor: pointer;
}
#seek-bar {
outline:none;
width: 295px;
-webkit-appearance:none;
background:transparent;
}
#seek-bar::-webkit-slider-thumb{
-webkit-appearance:none;
}
#seek-bar::-webkit-slider-thumb{
width:7;
height:5;
background:#FF6000;
outline:none;
cursor:pointer;
}
#seek-bar::-moz-range-thumb{
-webkit-appearance:none;
width:7;
height:5;
background:#FF6000;
outline:none;
cursor:pointer;
}
#seek-bar::-ms-thumb{
-webkit-appearance:none;
width:7;
height:5;
background:#FF6000;
outline:none;
cursor:pointer;
}
#seek-bar::-webkit-slider-runnable-track{
cursor:pointer;
height:5;
background:#8C8C8C;
}
#seek-bar::-moz-range-track{
cursor:pointer;
height:5;
background:#8C8C8C;
}
#seek-bar::-ms-track{
cursor:pointer;
height:5;
background:#8C8C8C;
}
#seek-bar::-ms-fill-lower{
background:#FF9B2F;
height:5;
}
#seek-bar::-ms-fill-upper{
background:#8C8C8C;
height:5;
}
#volume-bar {
outline:none;
width: 60;
-webkit-appearance:none;
background:transparent;
}
#volume-bar::-webkit-slider-thumb{
-webkit-appearance:none;
}
#volume-bar::-webkit-slider-thumb{
width:7;
height:5;
background:#FF6000;
outline:none;
cursor:pointer;
}
#volume-bar::-moz-range-thumb{
-webkit-appearance:none;
width:7;
height:5;
background:#FF6000;
outline:none;
cursor:pointer;
}
#volume-bar::-ms-thumb{
-webkit-appearance:none;
width:7;
height:5;
background:#FF6000;
outline:none;
cursor:pointer;
}
#volume-bar::-webkit-slider-runnable-track{
cursor:pointer;
height:5;
background:#8C8C8C;
}
#volume-bar::-moz-range-track{
cursor:pointer;
height:5;
background:#8C8C8C;
}
#volume-bar::-ms-track{
cursor:pointer;
height:5;
background:#8C8C8C;
}
#volume-bar::-ms-fill-lower{
background:#FF9B2F;
height:5;
}
#volume-bar::-ms-fill-upper{
background:#8C8C8C;
height:5;
}
我真的希望有人能帮我弄清楚为什么它们在不同的浏览器中显示不同。谢谢。
【问题讨论】:
-
请提供您的
DOCTYPE规范,因为每个浏览器供应商和版本的呈现方式不同。例如,IE 有一个quirks mode,当 html 不符合规范时它会转换到它,从而导致其他设计含义。 en.wikipedia.org/wiki/Quirks_mode -
@fyrye 你说的文档类型是什么意思?
-
它在链接中有所描述,但是当您使用
video标签时,我假设<!DOCTYPE html>在您的页面顶部指定。我想确保它是,并且您没有指定其他规范,例如<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN">。 -
尝试将
<!DOCTYPE html>规范直接添加到您的<html>标记上方,然后查看其呈现方式是否有所不同。如下所示:w3schools.com/TAGS/tag_doctype.asp 这将告诉浏览器在其html5渲染引擎上标准化渲染,而不是在怪癖模式下渲染。
标签: html css browser cross-browser compatibility