如何使td元素与输入元素的宽度相同?

时间:2016-09-09 11:26:50

标签: html css width html-table

我有一个由td元素中的许多输入元素组成的表。

<table>
  <tbody>
    <td class="first">
      <div>
        <input type="text" /> 
      </div>
    </td>
  </tbody>
</table>

输入元素的宽度应为20px。表格的宽度设置为100%。第一个td中的输入元素应该只设置一个最小宽度,因此它将拉出(因为该表的宽度为100%)。我希望其他输入具有固定宽度(20px)。当我这样做时,td元素的宽度比输入元素大得多:

https://jsfiddle.net/cbzuwyrg/

是否可以使td元素与输入元素的宽度相同而不在css中设置相同的宽度?

这个小提示显示了我想要实现的目标,但无需将td的宽度设置为20px: https://jsfiddle.net/cbzuwyrg/1/

3 个答案:

答案 0 :(得分:1)

我想这也适合你。

编辑:我编辑了代码,因此所有td的大小都与输入相同。

&#13;
&#13;
table {
  width:100%;
  border-collapse: collapse;
}
td.first{
  width:auto;
   border: 1px solid #000;
  }
 input[type="text"] {
     width: 100%; 
     box-sizing: border-box;
     -webkit-box-sizing:border-box;
     -moz-box-sizing: border-box;
}
&#13;
<table>
<tbody>
  <td class="first">
    <div>
      <input type="text" size="2"> 
    </div>
  </td>
  <td class="first">
    <div>
      <input type="text" size="7"> 
    </div>
  </td>
  <td class="first">
    <div>
      <input type="text" size=""> 
    </div>
  </td>
  <td class="first">
    <div>
      <input type="text" placeholder="last" size="" > 
    </div>
  </td>
</tbody>
</table>
&#13;
&#13;
&#13;

代码是html,CSS没有使用JavaScript。

答案 1 :(得分:0)

<table>
<tbody>
  <td class="first">
    <div>
      <input type="text" /> 
    </div>
  </td>
  <td>
    <div style="width:8px">
      <input type="text" /> 
    </div>
  </td>
  <td>
    <div style="width:8px">
      <input type="text" /> 
    </div>
  </td>
  <td>
    <div style="width:8px">
      <input type="text" /> 
    </div>
  </td>
</tbody>
</table>

将宽度尺寸添加到div

答案 2 :(得分:0)

我认为如果你正确地嵌入它,你正在编写的scss会更有用,只需添加一个calc并嵌套scss代码就可以了。我希望它能有所帮助。

在这种情况下,宽度为20px的td使用了一个固定宽度的类,并且输入有一个calc,因为当你使用100%宽度时,它们会使用整个空格直到下一次输入。

萨斯:

table {
  width:100%;
  border-collapse: collapse;

  td {
   border: 1px solid #000;
   //display: inline-block;
   width: 100%;

    div {
      input {
        width: calc(100% - 4px) ;      
        &.td20 {
          width: 20px;
        }
      }
    }
  }
}

HTML:

<table>
<tbody>
  <td class="first">
    <div>
      <input type="text" /> 
    </div>
  </td>
  <td>
    <div>
      <input type="text" class="td20"/> 
    </div>
  </td>
  <td>
    <div>
      <input type="text" class="td20" /> 
    </div>
  </td>
  <td>
    <div>
      <input type="text" class="td20" /> 
    </div>
  </td>
</tbody>
</table>

在这里你可以看到它有效:https://jsfiddle.net/javierdp/adtj2t3o/8/