并排对齐两个HTML对象

时间:2019-05-26 01:41:55

标签: html css web-frontend

我有一个颜色框和一些文本。我正在尝试将文本框恰好对齐。我在尝试正确对齐时遇到问题。

我尝试查看堆栈溢出时的其他帖子,并尝试使用float属性,但是由于使用float属性时文本向右偏移太远,因此无法正确对齐它们。如果有人要运行代码,则这是jsfiddle链接:https://jsfiddle.net/1qgep5tn/4/

<!DOCTYPE html>

<html>
<head>

<style>

  .box {
    width: 20px;
    height: 20px;
   }

  .boxColor {
      background: #1c5a7d;
  }

    #right{
      float: right;
    }

    #left{
      float: left;
    } 

</style>

</head>
<body>

<div class="box boxColor" ></div>       
   Header:
     <br>
          <input type="text" name="firstname"  value="">
     <br>

</body>
</html>

我希望该框在文本的左侧对齐,但它会出现在文本上方。这是现在的样子的图像:

enter image description here

2 个答案:

答案 0 :(得分:1)

除非对其进行了编辑,否则JSFiddle看起来与您的使用方式有所不同。将标题<div>更改为<p>,并确保其位于框旁边,如下所示:

<div class="google_map">
    <div class="box blueish"></div>
    <p class="paragraph">Header:</p>
  </div>

并在类display: inline-blockparagraph中都使用box

答案 1 :(得分:1)

使用该HTML,您将很难在需要时对齐项目。这是因为没有主容器包装所有文本内容。我首先建议将您的文本内容包装在另一个容器中,并在输入中使用标签,例如:

<div class="box boxColor"></div>
<div class="box boxText">
    <label for="firstname">
        <span>Header</span>
        <input type="text" name="firstname" id="firstname"
                value="">
    </label>
 </div>

有了这种结构,您可以更好地应用样式:

body {
    display: flex;
    flex-direction: row;
}
label > span {
    display: block
}
label > span::after {
    content: ":";
}
.box {
    /* whatever shared styles you might want... */
}
.boxColor {
    background-color: #1c5a7d;
    height: 20px;
    width: 20px;
}
.boxText {
    flex-grow: 1
}