2012-06-05 117 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