html - 使用 CSS 组织搜索栏和按钮

标签 html css

我正在使用 React 和 Firebase 组合一个小网络应用程序,但我在整理方面遇到了麻烦。

理想情况下,我希望搜索栏和按钮最终位于屏幕中心的一条直线上 — 搜索栏,然后是绿色按钮,然后是黄色按钮,最后是红色按钮。都互相接触。如果页面大小缩小,理想情况下按钮会缩小并与搜索栏保持一致。

HTML

<div class="searchArea">
<div class="formWrapper">
<input class="playerInput" placeholder="Search by player name" />
</div>
<div class="formButtons">
<button class="upvoteButton">&#9650;</button>
<button class="downvoteButton">&#9660;</button>
<button class="injuryButton">&times;</button>
</div>
</div>

这是笔 — https://codepen.io/scottmiller2/pen/bYNPVm

任何方向表示赞赏。我尝试了很多边距调整,但将其设置回默认值并将其放入笔中。我之前已经通过反复试验完成了类似的工作,但我很好奇在准备调整窗口大小时应该如何正确排列这些东西。提前致谢

这是显示搜索部分的代码:

<div className="playersFooter">
<PlayerForm addPlayer={this.addPlayer}/>
</div>

对应的CSS

.playersFooter {
display: flex;
flex: 1 1 5%;
background-color: rgba(0, 0, 0, 0, 0.5);
}

最佳答案

几年前,Flexbox 或多或少地拯救了 position/float/negative-margin 困惑的网络开发者。即使没有包装器也很容易:

.searchArea {
  display: flex;
  box-sizing: border-box;
  align-items: center;
  justify-content: center;
  min-height: 100vh;
}

.playerInput {
  width: 450px;
  min-width: 300px;
  font-size: 1.3em;
  padding-left: 20px;
  height: 55px;
  border: 0;
  border-top-left-radius: 4px;
  border-bottom-left-radius: 4px;
  background-color: rgba(34, 49, 63, 0.8);
  color: #fff;
  transition: 0.2s ease-out;
}

.playerInput:focus {
  background-color: rgba(255, 255, 255, 0.6);
  color: #111;
  transition: 0.2s ease-in;
}

button {
  border: 0;
  height: 55px;
  padding: 8px 24px;
  font-family: "Droid Sans", sans-serif;
  color: #fff;
  transition: 0.2s ease-out;
}

.upvoteButton {
  background-color: #00ab9e;
}

.downvoteButton {
  background-color: #fcce66;
}

.injuryButton {
  background-color: #fb655a;
  border-top-right-radius: 4px;
  border-bottom-right-radius: 4px;
}

.upvoteButton:hover {
  background-color: #02ffb6;
}

.downvoteButton:hover {
  background-color: #fbf03e;
}

.injuryButton:hover {
  background-color: #fd483a;
}
<div class="searchArea">
  <input class="playerInput" placeholder="Search by player name" />
  <button class="upvoteButton">&#9650;</button>
  <button class="downvoteButton">&#9660;</button>
  <button class="injuryButton">&times;</button>
</div>

浏览器支持:http://caniuse.com/#feat=flexbox

Codepen 链接:https://codepen.io/helb/pen/eemwGp

关于html - 使用 CSS 组织搜索栏和按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47026209/

相关文章:

java - 如何嵌入Java小程序?

html - 无法在多级下拉菜单中定位 ul

html - 如何使contaning div不影响父div上的悬停

html - 在移动设备上的页面之间导航时保​​持屏幕分辨率

html - 在没有列表的情况下,如何在 HTML/CSS 中实现这种文本布局?

javascript - 从外部 <a> 标签链接到传单 map 中的标记

html - 如何获取HTML元素的位置信息

javascript - 通过javascript逐一取消隐藏类元素

css - 如何创建粘性底部搜索框 Bootstrap (React)

html - 即使我们更换设备,如何将div调整为彼此相邻