Jquery 如何设置<;输入>;按文本大小提交按钮

Jquery 如何设置<;输入>;按文本大小提交按钮,jquery,css,jquery-mobile,Jquery,Css,Jquery Mobile,我使用的是jquery mobile,有一个带有提交按钮的表单。不幸的是,在做了一些研究之后,我了解到jquery mobile的数据内联属性对输入元素不起作用。我希望submit按钮的大小与文本的大小相同。Firefox必须注意这一点,因为按钮是我想要的大小。但是,IE将按钮的宽度设置为容器的大小。有没有办法将提交按钮的样式设置为文本大小而不是更大?我试着做: $('#element').css('display','inline') 不过,那没用 谢谢你的帮助 将文本包装在标记中,并计算其

我使用的是jquery mobile,有一个带有提交按钮的表单。不幸的是,在做了一些研究之后,我了解到jquery mobile的数据内联属性对输入元素不起作用。我希望submit按钮的大小与文本的大小相同。Firefox必须注意这一点,因为按钮是我想要的大小。但是,IE将按钮的宽度设置为容器的大小。有没有办法将提交按钮的样式设置为文本大小而不是更大?我试着做:

$('#element').css('display','inline')
不过,那没用

谢谢你的帮助

将文本包装在
标记中,并计算其宽度

见示例:


编辑:您还可以通过javascript添加span标记,然后根据需要以相同的方式删除它

这里是一个
元素的演示,当您将
data inline=“true”
属性添加到该元素时,该元素会正确转到“inline”(在IE8/IE9中测试):

要在IE7中解决此问题,您需要添加“内联黑客”:

以星号(
*
)为前缀的属性将不会被IE8/IE9或任何其他现代浏览器读取,但会被IE7读取。必须添加
zoom:1
,以便元素获得
hasLayout
CSS(无法手动添加到元素)

以下是上述修复程序的演示:

奖金回合

您也可以在IE6中修复此问题,但需要为元素指定高度。要仅为IE6指定高度,而不为其他浏览器指定高度,我们可以执行类似于IE7的星号破解的操作:

.ui-btn-inline {
    *display : inline !important;
    zoom     : 1;
    _height  : 30px;
}

即使IE7也会忽略下划线(
)(前缀)属性,但IE6会使用属性声明。

您希望在IE中查看您的移动站点吗?@ZoltanToth我认为我们也将其用作桌面应用程序(如果有意义的话)。否则,您是对的,这无关紧要。然后您可能希望尝试设置所有参数以匹配内联元素-
$(“#element”).css({display:'inline!important',padding:0,margin:0,width:'auto'})
这里的
*
是什么意思?你能解释一下吗?为什么它会起作用?我有一种感觉,当你发表评论时,我正在键入准确的答案。现在检查答案。我假设你说的是IE7,如果不是的话,你应该发布你正在测试的版本。@Jasper这是可行的,但它会影响所有已创建的其他按钮。当我尝试为这个输入元素添加代码时,它不起作用。这可能有助于解释:我认为这是一个特定于jQuery Mobile的问题,因为它涉及通过jQuery Mobile应用的CSS。
.ui-btn-inline {
    *display : inline !important;
    zoom     : 1;
    _height  : 30px;
}