2012-06-05 149 views
0

我正在使用jquery mobile并且有一个提交按钮的窗体。不幸的是,在做了一些研究之后,我了解到jquery mobile的data-inline属性不适用于输入元素。我想提交按钮只是它的文本大小。 Firefox必须处理这一点,因为按钮的大小是我想要的。但是,IE将按钮的宽度设置为容器的大小。任何方式来设置提交按钮的文字大小,不大?我试着做:如何设置<Input>提交按钮以文字大小

$('#element').css('display','inline') 

虽然没有奏效。

感谢您的帮助!

+0

你预计在IE浏览器中查看你的移动网站? –

+0

Windows Phone使用IE – sachleen

+0

@ZoltanToth我认为这是我们也将它用作桌面应用程序(如果有意义的话)。否则,你是对的,这无关紧要。 –

回答

1

这里是一个<input type="button" />元素的演示是正确的去“内联”当你data-inline="true"属性添加到它(这是在IE8/IE9测试):http://jsfiddle.net/eVTef/

要在IE7中解决这个问题,你需要添加了“在线黑客”:

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

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

这里是上述修复的演示:http://jsfiddle.net/eVTef/1/

奖金回合

您也可以修复IE6这个问题,但你需要指定元素的高度。要指定高度只是IE6并没有其他的浏览器,我们可以做一些类似星号破解了IE7的东西:

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

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

+0

这里'*'的含义是什么?你能解释一下为什么它有效吗? – gopi1410

+0

我有一种感觉,当你评论时,我正在输入确切的答案。现在检查答案。 – Jasper

+0

是啊,无论如何感谢:) – gopi1410

0

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

见例如:http://jsbin.com/oxocil/2/edit

编辑:您还可以通过JavaScript添加span标签,并在必要时再取出用同样的方式。

+0

我认为这是一个jQuery Mobile的特定问题,因为它涉及通过jQuery Mobile应用CSS。 – Jasper