I have a custom set of controls for my video on a html page. It display more or less the way I want it to in Chrome but when i look at it in Edge or Firefox things are displaying too high up, not high enough, in complete wrong places. I have spent the batter part of a weekend trying to figure this out and I've had zero luck. Here is an image of what they look like:
Here is my current code:
<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>
And here is my 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;
}
I really hope someone can help me figure out why they display differently in various browsers. Thanks.
This is probably down to the fact browsers have slightly different default styles.
A pretty simple solution is to include Reset in your project, which aims to eliminate any browser-specific styling and leave you with a clean sheet to work with.
If that doesn't fix the problem, depending on how far back you want your browser compatibility to go, I would recommend using Flexbox.
Flexbox handles layouts like the one you're trying to make brilliantly, making it fantastic to use on any projects that don't need a lot of backwards compatibility.
Blame the border box models used by each of the frameworks and browser specific styles. If they'd actually agree on a set of specifications, we wouldn't have to fight the nightmare of cross browser compatibility.
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.