【发布时间】:2015-05-10 17:38:37
【问题描述】:
在使用带有 CSS 浮动属性的 HTML5 表单输入类型(数字、日期、电子邮件等)时遇到了问题。我试图将这些浮动到右侧,但他们不尊重该设置。
这是我在测试期间将 CSS 内联的片段:
<div class="center" style="width: 100%">
...
<div style="width: 90%" class="textfont">
...
<table style="width:100%;">
<thead>
<tr class="tableHeading">
<td style="width: 50%; text-align: center;">
Unit Types
</td>
<td style="text-align: center;">
Number of Units
</td>
</tr>
</thead>
<tbody>
<tr>
<td style="border-right: 1px;">
Single-Family Detached
</td>
<td>
<input type="number" name="txtDetached" style="width:25%; float:right" />
</td>
</tr>
<tr>
<td style="height: 32px">
Townhouse, Row, or Cluster
</td>
<td style="height: 32px">
<input type="number" name="txtCuster" style="width:25%; float:right" />
</td>
</tr>
<tr>
<td>
Garden
</td>
<td>
<input type="number" name="txtGarden" style="width:25%; float:right" />
</td>
</tr>
<tr>
<td style="height: 43px">
Mid-rise (3-5)
</td>
<td style="height: 43px">
<input type="number" name="txtMidrise" style="width:25%; float:right" />
</td>
</tr>
<tr>
<td>
High-rise (6+)
</td>
<td>
<input type="number" name="txtHighRide" style="width:25%; float: right" />
</td>
</tr>
<tr>
<td>
Other
</td>
<td>
<input type="text" name="txtOther" style="width: 80%; float: right;" />
</td>
</tr>
</tbody>
</table>
...
</div>
...
</div>
是的,我知道桌子不受欢迎......
这是整体 CSS:
.Header
{
font-size: 30px;
font-family: Cambria;
color: White;
background: #254117;
text-align: center;
font-weight: bold;
width: 90%;
}
.subHeading
{
font-family: Arial;
font-size: 11px;
text-align: left;
}
.container
{
display: table;
width: 90%;
border-collapse: collapse;
}
.heading
{
font-weight: bold;
display: table-row;
background-color: #C91622;
text-align: center;
line-height: 25px;
font-size: 14px;
font-family: georgia;
color: #fff;
}
.table-row
{
display: table-row;
text-align: center;
}
.col
{
display: table-cell;
border: 1px solid #CCC;
}
.tableHeading
{
font-family: Arial;
background: #99C68E;
font-size: 18px;
text-align: left;
}
.textfont
{
font-size: 15px;
font-family: Arial;
text-align: left;
}
input[type=text]
{
width: 100%;
height: 22px;
}
textarea
{
width: 98%;
}
table
{
border-collapse: collapse;
border: 1px solid black;
border-spacing: 10px;
}
tr
{
border-collapse: collapse;
border: 1px solid black;
}
td, th
{
padding: 5px;
}
.center
{
margin-left: auto;
margin-right: auto;
}
这是显示的内容:
正如您所见,带有type="text" 的输入元素可以正常工作,但是当type="number" 时,它仍然是默认值,左对齐。
此行为存在于 IE 10、FireFox 和 Chrome 中。
我发现解决方法是将 HTML5 输入类型包装在 div 中,然后将 CSS 设置为使 div 向右浮动,这样就可以正常工作了。我在网上查找这方面的信息时遇到问题,但这是一个已知问题吗?解决方法实际上是处理此问题的正确方法吗?
编辑:添加了完整的 CSS(减去我移动内联进行测试的内容)。添加了整个表和它们所包含的 div。如果我将所有这些复制到 jsFiddle 它可以正常工作,所以我显然在这里做错了......
【问题讨论】:
-
对我来说似乎工作正常。请发布与表格及其单元格相关的所有 CSS - 一个显示您的问题的孤立案例。
-
是的,它工作正常,您可以在这里看到:jsfiddle.net/98h5jrbw
-
works fine for me 在 chrome、ff 和 ie11 中,如果您遇到问题。与其将输入向右浮动,不如在 td 上使用 text-align right
-
嗯...我必须有一些其他的 CSS 让我失望。让我进行一些挖掘,然后我将发布更新并包含更多代码。
-
@JNYRanger 你确定表内的每个 tr 总是有 2 个 td 吗?