简体   繁体   中英

Why do html items display differently in IE and Firefox and Chrome?

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM