<div>标签中的<input>标签的垂直对齐失败

时间:2019-07-08 19:28:51

标签: html css input grid vertical-alignment

我正在尝试使用CSS网格定位div标签并在其中输入字段。一直失败的部分是垂直对齐。我尝试了在线论坛上提出的许多建议,但是没有任何效果。对我来说,将输入字段对准div标签的底部非常重要。我将不胜感激。

我在包含输入以及输入标签本身的直接div中尝试了vertical-align =“ bottom”。

我尝试使用position =“ absolute”和bottom =“ 0”。


<!DOCTYPE html>
<html>
    <head>
        <style>
            body {
                font-family: helvetica;
                font-size: 36px;
                color: white;
            }

            .container {
                display: grid;
                grid-gap: 5px;
                grid-template-columns: [open-paren] 0.5fr [atomic-symbol]1.0fr;
                width: 25%;
                padding: 3px;
                border: 3px solid teal;
                border-radius: 5px;
            }

            .item {
                background-color: teal;
                border-radius: 5px;
                border: 3px solid teal;
                height: 100px;
                vertical-align: bottom;
            }

            .item:nth-child(1) {
                grid-row: 1/5;
                grid-column: open-paren;
                text-align: right;
            }

            .item:nth-child(2) {
                grid-row: 4/9;
                grid-column: atomic-symbol;
            }
        </style>
    </head>
    <body>
        <section class="container">
            <div class="item">
                <p vertical-align="text-bottom">Open</p>
            </div>
            <div class="item">
                <input type="text" vertical-align="bottom">
            </div>
        </section>
    </body>
</html>

包含在div标记中的任何元素都紧靠其底部对齐。

1 个答案:

答案 0 :(得分:1)

我不知道我是否理解正确,但这是将输入定位在div上。

* {
      padding: 0;
      margin: 0;
    }

    body {
      font-family: helvetica;
      font-size: 36px;
      color: white;
    }

    .container {
      display: grid;
      grid-gap: 5px;
      grid-template-columns: 0.5fr 1fr;
      width: 50%;
      padding: 3px;
      border: 3px solid teal;
      border-radius: 5px;
    }

    .item {
      display: grid;
      align-items: end;
      height: 100px;
      border-radius: 5px;
      border: 3px solid teal;
      background-color: teal;
    }

    .item p {
      text-align: right;
    }
<section class="container">
    <div class="item">
      <p>Open</p>
    </div>
    <div class="item">
      <input type="text">
    </div>
  </section>