Divs将不会继续使用媒体查询

时间:2019-06-28 03:39:55

标签: javascript html css

我有一个游戏控制器,最终我将使用sprites进行按钮按下操作等等。目前,我使用图片标签对照片进行了内联。

然后我做了三个空的div,给它们一个50pxx50px的大小,并将它们的绝对位置放在两个按钮和开始按钮上。

使用JavaScript,我使div有了一个事件监听器来播放声音/启动网页。

我的问题现在变得敏感,我在网页上使用了display flex,但是我相信由于我使用的是绝对位置,因此不会响应。

我一直在尝试使用媒体查询来使div覆盖屏幕尺寸上的按钮,但仍然存在问题。

完成我正在做的事情的正确/更好的方法是什么?或为什么我的媒体查询页面调整大小失败。

一个小家伙 https://jsfiddle.net/L14xsg7k/

<meta content="width=device-width, initial-scale=1name="viewport"/>
<div class="aButton"></div>
<div class="Bbutton"></div>
<div class="Start"></div>

<div id="NES"><img src="images/controllerNES.png" alt="NES- 
Controller"></div>


CSS:
@media only screen and (min-width: 700px) {
.aButton {
display: inline-block;
position: absolute;
width: 50px;
height: 50px;
margin-top: 21%;
margin-left: 25%;
}
.Bbutton{
display: inline-block;
position: absolute;
width: 50px;
height: 50px;
margin-top: 21%;
margin-left: 14%;
 }

 .Start{
display: inline-block;
position: absolute;
width: 50px;
height: 40px;
margin-top: 22%;
padding-right: 0%;
 }
}

没有媒体查询

 .aButton{

 display: inline-block;
 position: absolute;
 width: 50px;
 height: 50px;
 margin-top: 10%;
 margin-left: 12%;

 }


 .Bbutton{

display: inline-block;
position: absolute;
width: 50px;
height: 50px;
margin-top: 10%;
margin-left: 7%;

 }

.Start{

display: inline-block;
position: absolute;
width: 50px;
height: 40px;
margin-top: 11%;
padding-right: 0%;

 }

@media only screen and (min-width: 700px) {
  .aButton {
    display: inline-block;
    position: absolute;
    width: 50px;
    height: 50px;
    margin-top: 21%;
    margin-left: 25%;
  }
  .Bbutton {
    display: inline-block;
    position: absolute;
    width: 50px;
    height: 50px;
    margin-top: 21%;
    margin-left: 14%;
  }
  .Start {
    display: inline-block;
    position: absolute;
    width: 50px;
    height: 40px;
    margin-top: 22%;
    padding-right: 0%;
  }
}


/*Screen Size Differences */

.aButton {
  display: inline-block;
  position: absolute;
  width: 50px;
  height: 50px;
  margin-top: 10%;
  margin-left: 12%;
}

.Bbutton {
  display: inline-block;
  position: absolute;
  width: 50px;
  height: 50px;
  margin-top: 10%;
  margin-left: 7%;
}

.Start {
  display: inline-block;
  position: absolute;
  width: 50px;
  height: 40px;
  margin-top: 11%;
  padding-right: 0%;
}
<div class="aButton"></div>
<div class="Bbutton"></div>
<div class="Start"></div>

<div id="NES"><img src="https://ih1.redbubble.net/image.278053540.7309/ap,550x550,16x12,1,transparent,t.png" alt="NES-Controller"></div>

2 个答案:

答案 0 :(得分:3)

您不需要媒体查询。 只需将图像和按钮放在同一容器中,将图像拉伸到容器中,然后使用绝对位置和相对顶部/左侧位置将按钮放置在其坐标上即可。

#NES {
  display: flex;
  position: relative;
}

img {
  width: 100%
}

.btn {
  background: blue;
  position: absolute;
}

.aButton, .Bbutton {
    height: 6%;
    width: 4.3%;
}

.aButton {
    left: 78%;
    top: 56.7%;
}
.Bbutton {
    left: 67.3%;
    top: 56.5%;
}

.Start {
  height: 2.75%;
  width: 6%;
  left: 40%;
  top: 60%;
}
<div id="NES">
    <img src="https://ih1.redbubble.net/image.278053540.7309/ap,550x550,16x12,1,transparent,t.png" alt="NES-Controller">
    <div class="btn aButton"></div>
    <div class="btn Bbutton"></div>
    <div class="btn Start"></div>
</div>
  

答案 1 :(得分:0)

应该可以,请尝试以下方法:

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<meta name="viewport" content="width= device-width, initial-scale=1.0">
	<title>Document</title>
</head>
<body>
<div style="position: relative; display: inline-block;">
	<img src="https://ih1.redbubble.net/image.278053540.7309/ap,550x550,16x12,1,transparent,t.png" alt="">
	<div style="position: absolute; right:19%; top: 57%">A</div>
	<div style="position: absolute; right: 30%; top: 57%">B</div>
</div>
</body>
</html>