当前位置: 首页 > 面试题库 >

在HTML中选择输入和文本输入-使宽度相等的最佳方法?

严劲
2023-03-14
问题内容

我有一个像这样的简单表格(仅用于说明目的)…

<form>

   <div class="input-row">
      <label>Name</label>
      <input type="text" name="name" />
   </div>

   <div class="input-row">
      <label>Country</label>
      <select name="country">
         <option>Australia</option>
         <option>USA</option>
      </select>
   </div>

</form>

我使用CSS的布局方法如下…

form  {
    width: 500px;
}

form .input-row {
    display: block;
    width: 100%;
    height: auto;
    clear: both; 
    overflow: hidden; /* stretch to contain floated children */
    margin-bottom: 10px;
}

form .input-row label {
    display: block;
    float: left;
}

form .input-row input,
form .input-row select {
    display: block;
    width: 50%;
    float: right;
    padding: 2px;
}

所有这些都很好地对齐了,除了我的select元素(无论如何在Firefox中)并不总是与其他input元素相同。通常,它会缩小几个像素。

我尝试过将宽度更改为像素大小(例如200px),但并没有改变。

使它们全部具有相同宽度的最佳方法是什么?我希望这不会再打我设置selectwidth单独,或将它们放入表…


问题答案:

解决方案是为表单元素指定盒子模型,当您使用border-box时,浏览器通常会达成共识:

input, select, textarea {
  -webkit-box-sizing: border-box;
     -moz-box-sizing: border-box;
          box-sizing: border-box;
}

有normalize.css项目,它汇总了这些技巧。



 类似资料:
  • 问题内容: 在表单上,​​我有一个select和两个输入字段。这些元素垂直对齐。不幸的是,我无法获得这些元素相等的宽度。 这是我的代码: 对于上面的示例,select元素的最佳宽度是198或199 px(当然我尝试了193 px,但差异很大)。我认为,这取决于分辨率,取决于各种计算机和浏览器,因为这些元素的宽度不相等(有时我认为差异约为1或2像素)。我试图在div或表行中设置这些元素,但这无济于事

  • 最近,我有了一个无头网络驱动程序,并一直在修补一些。目前,我无法通过xpath定位元素并更改其文本。下面,我试图将“entertexthere”返回控制台,然后将文本更改为类似“helloworld”的内容,然后显示新更改的元素文本。 超文本标记语言: 选择xpath后,我得到以下结果: 这一切都很好,但我对如何修改文本感到困惑。尝试在变量中存储“此处输入文本”我尝试了: 蟒蛇: 任何帮助或见解将

  • 问题内容: 我有以下代码在HTML网页中显示文本框。 显示页面时,文本包含“ 请输入用户ID” 消息。但是,我发现用户需要单击3次才能选择所有文本(在这种情况下, 请输入用户ID )。 只需单击一下就可以选择整个文本吗? 编辑: 抱歉,我忘了说:我必须使用输入 问题答案: 您可以使用以下javascript代码段: 但显然,它不适用于移动Safari。在这种情况下,您可以使用:

  • 问题内容: 根据我的经验, 事件通常仅在您离开()控件后才会发生。 有没有一种方法可以强制浏览器在每次内容更改时触发?如果没有,“手动”跟踪此问题的最优雅方法是什么? 使用事件并不可靠,因为您可以右键单击该字段并选择“粘贴”,这将更改该字段而无需任何键盘输入。 是唯一的方法吗?..丑陋的:-) 问题答案: 因此,您是否希望事件在按键,模糊 和 粘贴时触发?太神奇了。 如果您想跟踪键入的更改,请使用

  • 我想有一个依赖的数字输入。 此数字输入依赖于一个选择框,该选择框通过选择每个选项为输入创建一个特定的数字范围。 例如: 如果我们选择option2,数字输入将是min=20和max=50!如果我们选择option3,数字输入将是min=10和max=30!怎样才能创造出这样一个特征呢? 以下是我尝试过的:

  • 问题内容: 我有文字输入。当输入获得焦点时,我想选择输入内的文本。 使用jQuery,我可以这样: 我四处搜寻以尝试找到Angular方式,但是我发现的大多数示例都在处理一个指令,该指令正在监视模式属性的更改。我假设我需要一个指令来监视接收焦点的输入。我该怎么办? 问题答案: 在Angular中执行此操作的方法是创建一个自定义指令,该指令会为您自动选择。 应用如下指令: Update1 :删除了j