2012-06-07 30 views
7

我正在使用jquery手机做一个演示... 我想让宽度的localnav是100%... 但我不知道该怎么做... 代码在这里...如何让jquery mobile controlgroup的宽度达到100%?

<ul data-role="controlgroup" data-type="horizontal" class="localnav"> 
    <li><a href="#" data-role="button" data-transition="fade" class="ui-btn-active">111</a></li> 
    <li><a href="#" data-role="button" data-transition="fade">222</a></li> 
    <li><a href="#" data-role="button" data-transition="fade">333</a></li> 
</ul> 

帮我请...谢谢...

回答

1

不知道为什么你想换一个<ul>作为controlgroup。但是你可以有一个全宽ControlGroup用下面的方法:

<div data-role="controlgroup" data-type="horizontal" class="localnav"> 
    <a href="#" data-role="button" data-transition="fade" class="ui-btn-active">111</a> 
    <a href="#" data-role="button" data-transition="fade">222</a> 
    <a href="#" data-role="button" data-transition="fade">333</a> 
</div> 

而且在CSS,分裂之中<a>元素的数量同样宽度:

a{width:33%;} 

样品的jsfiddle:http://jsfiddle.net/pAuqm/1/

如果您想继续使用基于<ul>的结构;你可以有全宽controlgroup与下面的CSS:

li{ 
    display: inline; 
} 
a{width:33%;} 

样品的jsfiddle:http://jsfiddle.net/pAuqm/3/

+0

谢谢你,它的工作 – RogerWu

+0

高兴能有所帮助。你能将答案标记为已接受吗? –

+0

不是很优雅,适用于宽屏幕,但不是完美的像素。 –

1

我使用一个网格,做到这一点,和一个额外的CSS规则:

.ui-controlgroup-horizontal > div > .ui-btn { 
    width: 99% 
}​​​​​​​​​ 

原因我这样做是这样的标记:

<div class="ui-grid-a" data-role="controlgroup" data-type="horizontal"> 
    <div class="ui-block-a"> 
     <button type="submit" data-theme="c">Cancel</button> 
    </div> 
    <!-- etc --> 
</div> 

被jquery转换成m arkup像这样(检查它在Chrome或萤火虫):

<div class="ui-grid-a ui-corner-all 
     ui-controlgroup ui-controlgroup-horizontal" 
     data-role="controlgroup" data-type="horizontal"> 
     <div class="ui-block-a"> 
      <div data-corners="true" data-shadow="true" 
      data-iconshadow="true" data-inline="null" 
      data-wrapperels="span" data-icon="null" data-iconpos="null" 
      data-theme="c" data-mini="false" 
      class="ui-btn ui-btn-up-c ui-corner-left" 
      aria-disabled="false"> 
       <span class="ui-btn-inner ui-corner-left"> 
        <span class="ui-btn-text">Cancel</span> 
       </span> 
       <button type="submit" data-theme="c" class="ui-btn-hidden" aria-disabled="false">Cancel</button> 
      </div> 
     </div> 
     <!-- etc --> 
    </div> 

正如你所看到的,我们希望成为宽100%的.ui-btn里面ui-block-a(或ui-block-bui-block-c等),和我们的水平控制组获得.ui-controlgroup-horizontal,因此规则:.ui-btndivs子女.ui-controlgroup-horizontal的子女被制成(几乎)100%。我停止了100%,因为这为我打了右手边的圆角。通过在顶级类别上使用.ui-controlgroup-horizontal,而不是(比如)ui-grid-a,此规则适用于不同的网格大小。

5

看看JQuery Mobile's navbar 虽然它通常用在页眉/页脚中,但它可以在其他地方使用。它会生成一个包含按钮的全宽条。

 <div data-role="navbar"> 
      <ul> 
       <li><a href="#" data-icon="plus" data-role="button">Button1</a></li> 
       <li><a href="#" data-icon="minus" data-role="button">Button2</a></li> 
       <li><a href="#" data-icon="check" data-role="button">Button3</a></li> 
      </ul> 
     </div> 
5

这就是我所做的。工作得很好。

CSS:

<style> 
    .ui-grid-a, .ui-grid-a .ui-controlgroup-controls {width: 100%} 
    #homePageButton {width:49%;float:left;margin-left:1%} 
    #logOutButton {width:49%} 
    #footer {height:45px} 
</style> 

HTML:

<div data-role="footer" data-position="fixed" id="footer"> 
    <div data-role="controlgroup" data-type="horizontal" class="ui-grid-a"> 
     <a href="#" data-role="button" data-icon="home" id="homePageButton">Home Page</a> 
     <a href="#" data-role="button" data-icon="forward" data-iconpos="right" id="logOutButton">Log Out</a> 
    </div> 
</div> 

结果: enter image description here

+1

如果你需要所有的链接宽度相同,你可以用'.ui-controlgroup-controls a'这样的目标来设置它(以百分比形式)(你可能需要根据你的标记给出更多的特异性)和添加'box-sizing:border-box'来避免与每个元素的宽度相混淆。 –