【问题标题】:Button position like game controller css, responsive按钮位置,如游戏控制器 css,响应式
【发布时间】:2018-09-19 02:11:31
【问题描述】:

我想以类似于游戏控制器的方式放置这 4 个按钮。 我得到的结果如下。它们应该位于屏幕的中心底部,更小并且必须响应。我必须改变什么?我应该使用#controls { position:relative;}吗?

HTML 代码:

<head><meta name="viewport" content="width=device-width, initial-scale=1.0"/>...</head>

<body><div id="controls">
    <button id="keyboard_key_up" class="movements_control"><img src="public/img/keyboard_key_up.png"/></button>
    <button id="keyboard_key_left" class="movements_control"><img src="public/img/keyboard_key_left.png" /></button>
    <button id="keyboard_key_down" class="movements_control"><img src="public/img/keyboard_key_down.png" /></button>
    <button id="keyboard_key_right" class="movements_control"><img src="public/img/keyboard_key_right.png" /></button>

</div>...</body>

CSS 代码:

#keyboard_key_up {
    position: absolute;
    right:300px;
    bottom: 500px;
    border-style: solid;
    border-color: black;
    background: white;z

}

#keyboard_key_left {
    position: absolute;
    right:575px;
    bottom: 250px;
    border-style: solid;
    border-color: black;

}

#keyboard_key_down {
    position: absolute;
    right:300px;
    bottom: 250px;
    border-style: solid;
    border-color: black;

}

#keyboard_key_right {
    position: absolute;
    right:25px;
    bottom: 250px;
    border-style: solid;
    border-color: black;

}

【问题讨论】:

    标签: html css button responsive-design responsive


    【解决方案1】:

    现在对 flex 和 grid 的支持应该很好,但根据您的目标,这可能不起作用。

    body {
      margin: 0;
      padding: 0;
    }
    
    #wrapper {
      display: flex;
      height: 100vh;
      justify-content: center;
    }
    
    #controls {
      display: inline-grid;
      grid-column-gap: 0;
      align-self: end;
    }
    
    .movements_control {
      border: solid 1px black;  
      margin: 0;
      padding: 0;
    }
    
    .movements_control img {
      width: inherit;
      height: inherit;
    }
    
    #keyboard_key_up {
      grid-column-start: 2;
    }
    
    #keyboard_key_left {
      grid-column-start: 1;
    }
    
    #keyboard_key_down {}
    
    #keyboard_key_right {
      grid-column-start: 3;
    }
    
    @media (min-width: 721px) {
      .movements_control {
        width: 40px;
        height: 40px;
      }
    }
    
    @media (max-width: 720px) {
      .movements_control {
        width: 20px;
        height: 20px;
      }
    }
    <div id="wrapper">
      <div id="controls">
        <button id="keyboard_key_up" class="movements_control"><img src="public/img/keyboard_key_up.png"></button>
        <button id="keyboard_key_left" class="movements_control"><img src="public/img/keyboard_key_left.png"></button>
        <button id="keyboard_key_down" class="movements_control"><img src="public/img/keyboard_key_down.png"></button>
        <button id="keyboard_key_right" class="movements_control"><img src="public/img/keyboard_key_right.png"></button>
      </div>
    </div>

    【讨论】:

    • 它有效,谢谢!我现在如何减小按钮的尺寸?
    • @Camilla8 你的意思是动态的?您可以使用 calc() 或媒体查询
    • 是的,现在它们太大了,但也许使用其他设备就可以了
    • 我写了这个按钮 img { height: 10vh;尺寸现在使用我的浏览器很好,但对于移动设备它没有响应,我看不到箭头
    • @Camilla8 是的,这可能行得通。我用一个示例媒体查询更新了答案。
    【解决方案2】:

    试试这个 CSS:

    #controls {
    position: relative;
    bottom: 10px;
    margin: 0 auto;
    }
    

    如果这不起作用,您能否使用 plunker 或 codepen 发送您的代码?

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多