代码之家  ›  专栏  ›  技术社区  ›  Pedro Henrique Quiste

我不能在HTML上写输入的全部宽度

  •  0
  • Pedro Henrique Quiste  · 技术社区  · 6 年前

    我不能在所有的输入空间上写字。当我创建一行(不是一个方框,因为我去掉了左-右上边框)并添加填充时,我无法在整行上写字,只能在其中的一半上写字,然后前面的文本将在左侧消失。

    .contato {
      background-color: white;
      width: 75%;
      height: 80%;
      margin-left: auto;
      margin-right: auto;
      margin-top: 10%;
    }
    
    .contato .header {
      background-color: #353E49;
      border-style: solid;
      border-color: lightgrey;
      border-bottom: none;
      border-width: 0.5px;
    }
    
    .contato h1 {
      margin-left: 10%;
      color: white;
      padding: 5% 0 5% 0;
      font-family: "lato regular";
      letter-spacing: 2px;
      font-size:
    }
    
    input,
    textarea {
      display: block;
      background: transparent;
      border: none;
      border-bottom: 1px solid #CECFD3;
      padding: 1.5% 50% 2% 0;
      resize: vertical;
      width: auto;
      font-family: "Lato Regular";
      color: darkgray;
      font-size: 1.05 rem;
    }
    
    .preencher {
      border-style: solid;
      border-color: lightgrey;
      border-width: 0.5px;
      border-top: none;
      padding-top: 5%;
      margin-top: -5%;
    }
    <div class="contato">
      <form name="contato" method="POST" netlify>
        <div class="header">
          <h1>Contato</h1>
        </div>
        <div class="preencher">
          <p>
            <label>Nome: <input type="text" name="nome"></label>
          </p>
          <p>
            <label>E-mail: <input type="email" name="email"></label>
          </p>
          <p>
            <label>Empresa/site: <input cols="60" type="email" name="empresa"></label>
          </p>
          <p>
            <label>Mensagem: <textarea name="mensagem"></textarea></label>
          </p>
          <p>
            <button type="submit">Send</button>
          </p>
        </div>
      </form>
    </div>

    您可以在JSFIDLE上看到结果,更好地理解我所说的: https://jsfiddle.net/cLsgL3d1/

    有什么想法吗?

    3 回复  |  直到 6 年前
        1
  •  1
  •   doppler    6 年前

    您的输入 padding 设置为50%,宽度设置为自动,这会导致 width 50%和 margin 要填满剩余的空间。将左/右边距更改为零(或其他),并将宽度设置为100%,而不是“自动”。

    .contato {
        background-color:white;
        width:75%;
        height:80%;
        margin-left:auto;
        margin-right:auto;
        margin-top:10%;
    }
    
    .contato .header {
        background-color: #353E49;
        border-style:solid;
        border-color:lightgrey;
        border-bottom:none;
        border-width: 0.5px;
    }
    
    .contato h1 {
        margin-left:10%;
        color:white;
        padding:5% 0 5% 0;
        font-family:"lato regular";
        letter-spacing: 2px;
        font-size:    
    }
    
    input,textarea {
        display:block;
        background: transparent;
        border: none;
        border-bottom: 1px solid #CECFD3;
        padding: 1.5% 0 2% 0;
        resize:vertical;
        width:100%;
        font-family:"Lato Regular";
        color:darkgray;
        font-size:1.05 rem;
    }
    
    .preencher {
        border-style: solid;
        border-color:lightgrey;
        border-width: 0.5px;
        border-top:none;
        padding-top:5%;
        margin-top:-5%;
    }
    <div class="contato">
        <form name="contato" method="POST" netlify>
         
            <div class="header">
               <h1>Contato</h1>
            </div>
    
            <div class="preencher">
                <p>
                    <label>Nome: <input type="text" name="nome"></label>
                </p>
                <p>
                    <label>E-mail: <input type="email" name="email"></label>
                    </p>
                    <p>
                       <label>Empresa/site: <input cols="60" type="email" name="empresa"></label>
                    </p>
                    <p>
                        <label>Mensagem: <textarea name="mensagem"></textarea></label>
                    </p>
                    <p>
                        <button type="submit">Send</button>
                    </p>
            </div>
        </form>
    </div>
        2
  •  1
  •   dukedevil294    6 年前

    您需要将此CSS添加/替换到现有代码中:

    input { width: 100%; padding: 1.5% 5% 2% 0; box-sizing: border-box; }

    您的50%正确填充是导致输入允许如此少量的文本的原因。如果希望输入在容器的右边缘之前停止,我建议在父级中添加填充

    标签。

        3
  •  0
  •   Milan Bastola    6 年前

    我刚刚修改了此代码,现在可以正常工作了:

    input,textarea {
            display:block;
            background: transparent;
            border: none;
            border-bottom: 1px solid #CECFD3;
            padding: 1.5% 0 2% 0; // you have added 50% of right padding. which is the reason of the problem. 
            resize:vertical;
            width:100%;
            font-family:"Lato Regular";
            color:darkgray;
            font-size:1.05 rem;
        }