html - 在 div 中居中固定按钮
问题描述
我有一个 div 里面有一些元素。
我想将开始按钮准确地放在 div 的中间。我试过让它像这样固定:
Board.css
.board{
width: 400px;
height: 400px;
margin: 150px auto 0;
border: 5px solid black;
border-radius: 5px;
background-color: darkgray;
display: flex;
flex-wrap: wrap;
}
.startButton {
position: fixed;
left: 50%;
top:50%;
}
@media(max-width: 650px) {
.board {
width: 300px;
height: 300px;
margin: 150px auto 0;
border: 5px solid black;
border-radius: 5px;
}
}
但正如你所看到的,它在中间并没有完全对齐。我该怎么做?我还做了一个媒体查询,使 div 在较小的设备上更小,因此它也需要响应。
Board.js
render() {
return (
<div className="board">
<button className="startButton">Start Game!</button>
<Square clicked={this.squareClickedHandler} val={this.state.squareOne} />
<Square clicked={this.squareClickedHandler} val={this.state.squareTwo} />
<Square clicked={this.squareClickedHandler} val={this.state.squareThree} />
<Square clicked={this.squareClickedHandler} val={this.state.squareFour} />
</div>
)
}
解决方案
left: 50%
使元素的 x 坐标位于屏幕中间。
你真正想要的价值是
'left: (50% - [元素宽度/2]) '
所以你的x坐标会在中间的左边一点,所以你的元素可以在中间
推荐阅读
- mongodb - MongoDB:如何只更新文档中的一个元素?
- maven - spotify dockerfile-maven Dockerfile
- php - 如何从 url 上传文件?
- mysql - 如何通过几个条件计算测距?
- iis - IIS setting SSL to Require and Accept problem
- python - In CSV files, problem with special character (") in a field
- javascript - 在html表的父行下生成子行
- javascript - Need Help Array for loop If else statement
- azure - 是否可以在没有 azure 平台的情况下创建聊天机器人(使用 microsoft bot 平台和 luis)
- android - 如何从代码中为 MaterialButton 设置文本颜色?