如何在不使用 &nbsp 的情况下在行内元素之间添加空格 [重复]

Posted

技术标签:

【中文标题】如何在不使用 &nbsp 的情况下在行内元素之间添加空格 [重复]【英文标题】:How to add space between in-line elements without using &nbsp [duplicate] 【发布时间】:2021-06-02 17:16:06 【问题描述】:

我必须在不使用&nbsp 的情况下在两个输入字段之间添加空格。我也尝试过添加' ',但这没有任何区别

这是它们的呈现方式:

       return (
          <div className="side-by-side">
                <Input
                  style= marginRight: 100 
                  classname="flex w-49"
                  label="first name"
                  type="text"
                  placeholder="Enter first name..."
                  inputId="basicInput"
                  value=obj.firstName                      
                ></Input>
                '          '
                <Input
                  classname="flex w-49"
                  label="last name"
                  type="text"
                  placeholder="Enter last name..."
                  inputId="basicInput"
                  value=obj.lastName
                ></Input>
          </div>

这是我用来将它们放在同一行中的 css

.side-by-side 
  display: flex;
  flex-direction: row;
  align-items: center;
  margin-left: 4px; //also tried to add a margin but that didn't work

【问题讨论】:

您需要为您的输入留出余量 即使我添加了边距,似乎也没有什么不同 【参考方案1】:

在您的示例中,您已将 margin-left 提供给具有 .side-by-side 类的父 div,而您需要将其提供给 input 元素。

下面是sn-p

.side-by-side 
  display: flex;
  flex-direction: row;
  align-items: center;


.side-by-side > input:last-of-type
  margin-left: 25px;
<div class="side-by-side">
  <input class="flex w-49" label="first name" type="text" placeholder="Enter first name..."></Input>
  <input class="flex w-49" label="last name" type="text" placeholder="Enter last name..."></Input>
</div>

【讨论】:

【参考方案2】:

当您将margin-left 放在side-by-side 容器上时,当您只想在右侧输入上留出边距时,它会在整个容器上留出边距。

一个尚未在所有浏览器中完全支持的简单解决方案是将gap 放在父级上,如下所示:

.side-by-side 
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 4px;

Gap 非常简单地在元素之间设置了一个间隙,但就像我说的那样,早期的浏览器并不完全支持这一点,所以其他的方法是使用所谓的“叶状体猫头鹰”,你可以阅读 here。

总而言之,它会获取所有具有前一个兄弟元素的子元素,这意味着它将获取除第一个子元素之外的所有子元素,并且如果您想添加更多输入,它是可扩展的。

您可以尝试这样做:

.side-by-side 
  display: flex;
  flex-direction: row;
  align-items: center;


.side-by-side > * + *
    margin-left: 4px;

【讨论】:

【参考方案3】:

尝试在单独的 div 中添加输入

<div className="side-by-side">
             <div style="margin-right:100px;">
                    <Input
                      style= marginRight: 100 
                      classname="flex w-49"
                      label="first name"
                      type="text"
                      placeholder="Enter first name..."
                      inputId="basicInput"
                      value=obj.firstName                      
                    ></Input>
                </div>
                    '          '
                    <Input
                      classname="flex w-49"
                      label="last name"
                      type="text"
                      placeholder="Enter last name..."
                      inputId="basicInput"
                      value=obj.lastName
                    ></Input>
              </div>

【讨论】:

以上是关于如何在不使用 &nbsp 的情况下在行内元素之间添加空格 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何在不刷新html页面的情况下在表格上显示数据(使用nodejs和mysql ajax)

如何在不使用集合运算符的情况下在 oracle 中查找不匹配的行并加入 & 还查询特定行的不匹配列名

如何在不通过 HTTP 加载图像的情况下在 HTML 中显示“重新加载”符号?

如何在不使用 jquery append 的情况下插入元标记?

如何在不传递值和 rowid 的情况下在 H base-shell 中创建表?

如何在不使用 AudioQueueRef 的情况下在 AudioQueue 中设置音量?