html – 什么是正确的CSS宽度使这些文本框排队?

前端之家收集整理的这篇文章主要介绍了html – 什么是正确的CSS宽度使这些文本框排队?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我在 HTML表格中有两行.这是一个简化的视图:
  1. <table>
  2. <tr>
  3. <td>
  4. <input type=text id=topTextBox />
  5. </td>
  6. </tr>
  7. <tr>
  8. <td>
  9. <select>
  10. <option value="0"></option>
  11. <option value="saab">Saab</option>
  12. <option value="mercedes">Mercedes</option>
  13. </select>
  14. <input type=text id=bottomTextBox />
  15. </td>
  16. </tr>
  17. </table>

第一行有一个长文本框,第二行有一个下拉列表和一个文本框.我试图得到它,所以这些排列与相同的总宽度.问题是,随着新数据进入下拉列表中,宽度将会改变,所以我试图找出底部文本框中的正确的CSS,以便它在右侧与顶部的文本框对齐.

当前顶部的文本框的宽度为:

  1. #topTextBox {
  2. width: 98%;
  3. }
  4. #bottomTextBox {
  5. width: 693px;
  6. }

以下是Firefox的外观:

这是IE的样子:

所以我今天有一个问题,他们不排队浏览器,以及事实会变得更糟,因为项目添加到下拉菜单(因为底部有一个固定的宽度).

无论整个表格有多大,以及新的项目被添加到下拉列表中,正确的方法是保持这些文本框在右侧对齐.

解决方法

以下方法涉及CSS3 box-sizingcalc().它可以在IE9和所有现代浏览器上正常工作.
  1. table {
  2. width: 100%;
  3. }
  4. input,select {
  5. Box-sizing: border-Box;
  6. display: inline-block;
  7. }
  8. #topTextBox {
  9. width: 100%;
  10. }
  11. select {
  12. width: calc(30% - 4px);
  13. /* why 4px? https://stackoverflow.com/q/5078239/483779 */
  14. }
  15. #bottomTextBox {
  16. width: 70%;
  17. }
  1. <table>
  2. <tr>
  3. <td>
  4. <input type="text" id="topTextBox" />
  5. </td>
  6. </tr>
  7. <tr>
  8. <td>
  9. <select>
  10. <option value="0"></option>
  11. <option value="saab">Saab</option>
  12. <option value="mercedes">Mercedes</option>
  13. </select>
  14. <input type="text" id="bottomTextBox" />
  15. </td>
  16. </tr>
  17. </table>

猜你在找的HTML相关文章