Struts2:不同大小的文本框

时间:2011-12-08 14:20:26

标签: html css textbox struts2

我正在创建一个包含以下输入字段的登录页面:

<td>
    <s:textfield  class="loginInput" name="username" label="Username" id="un1" size="20"/>
    <s:password class="loginInput" name="password" label="Password"  id="pw1" size="20"/>
</td>

但是,当我编译并运行页面时,两个文本框会显示不同的大小。用户名文本框略大于密码文本框。

我尝试添加size属性以使它们显示相同的长度。我甚至尝试添加一个CSS元素,让它们显示相同的大小,但仍然没有。有什么建议吗?

编辑:我应该补充一点,这只发生在I.E.在chrome中工作得很好

2 个答案:

答案 0 :(得分:0)

您使用的是哪个主题?由于size是struts2 text-field的有效参数。我建议你做以下步骤:

使用简单的主题:

   <td>
        <s:textfield theme="simple" cssClass="loginInput" name="username" 
         label="Username" id="un1" size="20"/>
        <s:password theme="simple" cssClass="loginInput" name="password"
        label="Password"  id="pw1" size="20"/>
    </td>

如果您尚未设置主题,Struts 2默认使用"xhtml"主题。这意味着它将为<td><tr>创建额外的HTML,用于开箱即用的输入元素

我希望这应该有用。

仅供参考:我在我的本地机器上测试了你的代码,这是屏幕截图,一切都运行得很好

enter image description here

你确定你正在使用你的CSS和其他东西吗?

答案 1 :(得分:0)

这似乎是IE的一个问题。至少在IE 9(Win 7)上,可以使用带有标记的简单静态文档来观察问题

 <input><br><input type=password>

这些框的宽度略有不同,因为文字字体不同。您可以通过将字体设置为相同来解决此问题,例如使用以下CSS代码:

 input { font-family: Arial, sans-serif; }

Arial是IE中文本输入框的默认字体,因此只需调整密码字段即可使用相同的字体。