【问题标题】:How to align ReactJS's <button/> and <input/> in same row/horizontally?如何在同一行/水平对齐 ReactJS 的 <button/> 和 <input/>?
【发布时间】:2017-01-15 18:47:45
【问题描述】:

我在一个容器中有&lt;button/&gt;&lt;input/&gt;。如何让它们在同一行和容器中间垂直对齐 (&lt;div className="container"&gt;)?

这是我目前所拥有的:

<div className="container">
   <div>
     <input className="form-control" placeholder='Enter Email'/>
   </div>
   <div>
     <button type="submit" className="btn"> Register </button>
   </div>
</div>

使用 className="container":

.container {
  width: 80%;
  margin: 0 auto;
  padding: 0 137px;
}

编辑

我尝试了您的以下建议,但 &lt;input/&gt;&lt;button/&gt; 仍然相互重叠:

顶部的黑色部分是导航栏,我想将导航栏内的所有内容水平对齐,从左到右彼此相邻。

       <div className="container">
          <h1>
            TESTING
          </h1>
          <input
            className="form-control"
            id="input-field"
            placeholder='Enter Email'
          />
          <button
            type="submit"
            className="btn"
          >
            Register
          </button>
      </div>

【问题讨论】:

  • 这些是非常基本的 html5/css 问题。真的与reactjs无关。我建议你研究一下这些主题

标签: javascript html css angularjs reactjs


【解决方案1】:

您可以为此使用 flex-box。 将 class 属性替换为 react 中的 className

编辑: 要回答您编辑的问题:

  • 将所有内容与弹性容器上的align-items: center 水平对齐
  • 确保inputbutton 不会通过将它们包装在一个容器元素中而分成单独的行。

h1 { color: white; }

.container {
  display: flex;
  justify-content: center;
  align-items: center;
  background-color: #222;
}

.email-holder {
  margin-left: 10px;
}
<div class="container">
  <h1>TESTING</h1>
  <div class="email-holder">
    <input class="form-control" placeholder='Enter Email'/>
    <button type="submit" class="btn"> Register </button>
  <div/>  
</div>

【讨论】:

  • 忘了说,但是左边也有,右边有按钮的文本输入,左右之间有一些距离。我应该如何设置 的样式以及使容器本身调整大小,即使窗口变得太小,也不要让它们相互重叠?
  • 只是检查一下你是否有我之前的评论。请告诉我!
  • 我按照您的建议进行了尝试,但仍然无法正常工作。我更新了原帖。请看一下。谢谢
  • 不好意思,最近比较忙,我去看看
  • 别担心!期待它,非常感谢!
猜你喜欢
  • 1970-01-01
  • 2011-05-11
  • 1970-01-01
  • 2014-10-08
  • 2020-05-31
  • 2016-06-29
  • 1970-01-01
  • 2021-11-11
  • 1970-01-01
相关资源
最近更新 更多