为什么<input />元素的内容区域超出其父<span>元素的范围?

时间:2019-02-21 06:03:16

标签: html css margin box-sizing

注意:由于我一直在尝试从wordpress环境“ Salient”主题中提取代码,因此我仍无法以最简单的形式重现该问题,因此我可能会自行回答问题,但请注意,我很高兴在此过程中收到任何反馈,希望这个问题对社区有所帮助。

到目前为止,我的问题描述如下:


我试图更好地控制内容在屏幕上的显示方式,并且我对CSS似乎不太了解。我尝试使用“ box-sizing:border box”属性,该属性在计算元素的总宽度时包括填充和边框。我添加了链接以显示input和span元素的状态

"Chrome Devtool" Input element highlights

"Chrome Devtool" Span element content area

我认为框大小调整不起作用,因为该问题是与边距相关的问题。我最好的猜测是,“ margin-left”属性影响了整个内容区域,将内容推到span元素之外。但是我希望输入元素包含在span元素内

HTML和CSS添加,感谢Lucien Dubois

* { 
 -webkit-box-sizing: border-box;
 -moz-box-sizing: border-box;
  box-sizing: border-box; }

.contact-fields input, textarea{
  margin-left: 12px;
}
 
.wpcf7-form-control-wrap {
  display: block !important;
  position: relative;
}

div, span, h5, p {
  vertical-align: baseline; 
  font-family: inherit; 
  font-weight: inherit; 
  font-style: inherit; 
  font-size: 100%; 
  outline: 0; 
  padding: 0; 
  margin-right: 0; 
  border: 0
}

h5
{
 font-family:Raleway;
 line-height:16px;
 margin-bottom: 7px;
 color:#444; 
 letter-spacing:0px;
 font-weight:600;
}

.form-label {
  clear: both;
  font-size: 20px
}

h5 {
  vertical-align: baseline; 
  font-style: inherit; 
  outline: 0; 
  padding: 0; 
  margin-top: 0;
  margin-right: 0;
  margin-left: 0;
  border:0
}

.first-name,  .last-name {
    display: inline-block;
    width: 40%;
    margin-right: 9px;
}

.first-name input, .last-name input {
  width: 62%;
}

input {
    margin-bottom: 20px;
    margin-top: 5px;
}
<div class="contact-fields">
  <div class="name-section">
    <div class="first-name">
      <h5 class="form-label"> First Name:</h5>
      <p>      
         <span class="wpcf7-form-control-wrap fname">
           <input type="text" 
                  name="fname" 
                  value="" 
                  size="40" 
                  maxlength="50" 
                  class="wpcf7-form-control wpcf7-text wpcf7-validates-as-required input-field" 
                  aria-required="true" 
                  aria-invalid="false">
        </span>
      </p>
    </div>
    <div class="last-name">
      <h5 class="form-label"> Surname:</h5>
        <p>      
          <span class="wpcf7-form-control-wrap lname">
            <input type="text" 
                   name="lname" 
                   value="" 
                   size="40" 
                   maxlength="50" 
                   class="wpcf7-form-control wpcf7-text wpcf7-validates-as-required input-field" 
                   aria-required="true" 
                   aria-invalid="false"></span>
      </p>
    </div>
  </div>
</div>

1 个答案:

答案 0 :(得分:0)

您可以尝试通过为输入字段添加min和max属性

input {
    min-width: 100%;
    max-width: 100%;
}