如何让jquery移动控制组宽度100%?

时间:2012-06-07 09:34:50

标签: javascript jquery jquery-mobile

我正在使用jquery mobile进行演示...... 我想让本地导航的宽度为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>

帮帮我...谢谢......

4 个答案:

答案 0 :(得分: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>

答案 1 :(得分: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

答案 2 :(得分:1)

不确定为什么要尝试将<ul>包装为控件组。但是你可以使用以下方法获得全宽度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>的结构;你可以使用以下CSS的全宽度控制组:

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

示例jsfiddle:http://jsfiddle.net/pAuqm/3/

答案 3 :(得分: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转换为这样的标记(在Chrome或Firebug中检查):

   <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-btn divs .ui-controlgroup-horizontal.ui-controlgroup-horizontal名儿童的孩子(近似)100%。我停止了100%,因为这会为我的右手按钮上的圆角。通过在顶级类上使用ui-grid-a而不是(例如){{1}},此规则适用于不同的网格大小。