3

我以我的第一個步驟中jQuery Mobile的,我變得有點失望,缺乏定製它提供的...jQuery Mobile的佈局定製

舉個例子,我有一個簡單的表格我想定製表單組件的佈局。

這是我的代碼:

<form id="loginForm" action="#" method="post"> 
    <input id="rememberMe" name="rememberMe" type="checkbox"/> 
    <label for="rememberMe">Remember me in this computer</label> 

    <a id="info" href="#" data-role="button" data-icon="info" data-iconpos="notext">Info</a> 

    <input id="submit" type="submit" value="log in" data-inline="true"/> 
</form> 

fiddle

具體我想:

  • rememberMe複選框,寬是因爲裏面的文字和info按鈕是內嵌在複選框。
  • 包含上一個複選框和按鈕的「組」包含右對齊。
  • submit按鈕也是正確的。

請提供的東西怎麼這麼就可以實現一個例子...

編輯:我想是這樣的:

desired layout

+0

的http://的jsfiddle。 net/5avUc/2 /檢查這個 – Omar

+0

更新示例。我用網格來實現你想要的東西http://jsfiddle.net/5avUc/3/ – Omar

回答

3

定製您需要將不來自jQM,但來自自定義CSS。

通常這可以很容易地與jQuery Mobile網格完成,但它們不那麼靈活。所以你需要一個定製解決方案。

圍繞每個元素都需要一個div,因爲jQM以新樣式重新創建每個元素,除非我們有父級div,否則一切都會下地獄。

工作例如:http://jsfiddle.net/Gajotres/8NB22/

HTML:

<form id="loginForm" action="..." method="post"> 
    <div class="row"> 
     <div class="inline-mid"> 
      <a id="info" href="..." data-role="button" data-icon="info" data-iconpos="notext" class="middle-button">Info</a> 
     </div>  
     <div class="inline-left"> 
      <input id="rememberMe" name="rememberMe" type="checkbox"/> 
      <label for="rememberMe">Remember me in this computer</label>   
     </div> 
    </div> 
    <div class="row"> 
     <div class="inline-left">   
      <input id="submit" type="submit" value="log in" data-inline="true"/>   
     </div>  
    </div>  
</form> 

CSS:

.row { 
    min-width: 400px; 
    width: 400px; 
} 

.inline-left, .inline-mid , .row { 
    position: relative; 
    float: right; 
} 

.inline-mid { 
    margin-left: 10px; 
    padding-top: 5px; 
} 
+0

非常感謝!你的觀點「*除非我們有一個父母的div,否則一切都會變成地獄*」正是我所需要的......我一直在努力嘗試定製'CSS',但沒有任何工作正在努力! – MikO

+0

+1喜歡你的方法。 – Omar

0

佈局不應該的Javascript代碼主要責任,因此你不該」譴責jQuery Mobile爲此。

不同屏幕尺寸的自定義應該使用CSS Media Queries來完成,而不是您所需的更多示例。

+0

它與@media查詢無關。這可以通過使用ui網格來實現。 – Omar

+0

@Niels我不是在責怪jQuery Mobile,但據我瞭解,它的目的是允許移動開發人員在不編寫任何CSS的情況下創建應用程序。實際上,它包括'CSS'類和'HTML'屬性,可以用來定製接口......我只是說這些定製選項在我看來很少... – MikO

3

這可以使用ui-grid類來實現。

Working Demo

標記

<form id="loginForm" action="..." method="post"> 
<div class=ui-grid-a> 
    <div class=ui-block-a> 
    <input id="rememberMe" name="rememberMe" type="checkbox"/> 
    <label for="rememberMe" data-inline="true">Remember me in this computer</label> 
    </div> 
    <div class=ui-block-b> 
    <a id="info" href="..." data-role="button" data-icon="info" data-iconpos="notext">Info</a> 
    </div> 
</div> 
<div class=ui-grid-solo> 
    <input id="submit" type="submit" value="log in" data-inline="true"/> 
</div> 
</form> 

覆蓋CSS

.ui-block-a { width: 95% !important; text-align: right !important; } 
.ui-block-b { width: 5% !important; padding-top: 5px !important; } 
.ui-grid-solo { text-align: right !important; } 
+0

謝謝@Omar,很好的方法儘管'rememberMe'複選框比裏面的文本更寬... – MikO

+0

@MikO我喜歡網格;)我更新了我的答案,以備將來參考。 – Omar