我正在创建一个包含以下输入字段的登录页面:
<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中工作得很好
答案 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,用于开箱即用的输入元素
我希望这应该有用。
仅供参考:我在我的本地机器上测试了你的代码,这是屏幕截图,一切都运行得很好
你确定你正在使用你的CSS和其他东西吗?
答案 1 :(得分:0)
这似乎是IE的一个问题。至少在IE 9(Win 7)上,可以使用带有标记的简单静态文档来观察问题
<input><br><input type=password>
这些框的宽度略有不同,因为文字字体不同。您可以通过将字体设置为相同来解决此问题,例如使用以下CSS代码:
input { font-family: Arial, sans-serif; }
Arial是IE中文本输入框的默认字体,因此只需调整密码字段即可使用相同的字体。