【问题标题】:jquery UI tabs width 100%jQuery UI 选项卡宽度 100%
【发布时间】:2012-02-10 03:01:03
【问题描述】:

我只需要在我的应用程序中使用 2 个选项卡。所以我希望它们覆盖 100% 的宽度。目前它在左侧对齐两个表格,并在右侧留下各种空白空间。我该怎么做才能让我的两个选项卡都覆盖 100% 的区域。 我正在使用 jquery-ui-1.8.17.custom.css

代码

<!DOCTYPE html>
<html>
    <head>
        <meta name="viewport" content="width=device-width, initial-scale=1"> 
        <link rel="stylesheet" href="http://code.jquery.com/mobile/1.0.1/jquery.mobile-1.0.1.min.css" />
        <script src="http://code.jquery.com/jquery-1.6.4.min.js"></script>
        <script src="http://code.jquery.com/mobile/1.0.1/jquery.mobile-1.0.1.min.js"></script>
        <link type="text/css" href="css/ui-lightness/jquery-ui-1.8.17.custom.css" rel="stylesheet" />   
        <script type="text/javascript" src="js/jquery-1.7.1.min.js"></script>
        <script type="text/javascript" src="js/jquery-ui-1.8.17.custom.min.js"></script>
        <script type="text/javascript">
        
            $(function(){
                // Tabs
                $('#tabs').tabs();
            });
        </script>
    </head>
    <body>
        <div data-role="page">

            <div data-role="header">
                <h1>My Title</h1>
            </div><!-- /header -->

            <div data-role="content">   
                <div id="tabs">
                    <ul>
                        <li><a href="#tabs-1">First</a></li>
                        <li><a href="#tabs-2">Second</a></li>
                    </ul>
                    <div id="tabs-1">Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.</div>
                    <div id="tabs-2">Phasellus mattis tincidunt nibh. Cras orci urna, blandit id, pretium vel, aliquet ornare, felis. Maecenas scelerisque sem non nisl. Fusce sed lorem in enim dictum bibendum.</div>
                </div><!-- Tabs --> 
            </div><!-- /content -->

        </div><!-- /page -->
</body>
</html>

【问题讨论】:

  • 有机会看到一些标记吗?

标签: jquery jquery-ui jquery-mobile


【解决方案1】:

通过 CSS 集:

.ui-tabs .ui-tabs-nav li {
    width:50%;
}

请注意,由于内边距、边距和边框,您可能需要将其减少到 50% 以下。

更新:如果要将标签中的文本居中,则需要进行两次 CSS 更改(保持上面 50% 的更改)。

.ui-tabs .ui-tabs-nav li {
    width:50%;
    text-align: center;
}
.ui-tabs .ui-tabs-nav li a {
    display: inline-block;
    float: none;
    padding: 5px;
    text-decoration: none;
    width: 100%;
}

请注意,您可以根据需要调整填充。

【讨论】:

  • 我要更改 jquery css 吗?
  • 你可以修改 jQuery UI CSS 或者在它之后添加你自己的 CSS,因为它会覆盖之前声明的任何规则。
  • 最好使用自己的 CSS 而不是修改 jQuery UI - 例如,您可以轻松更新到新版本或在页面上的其他位置使用不同样式的标签
【解决方案2】:

使用 Flexbox,它更灵活、更容易:

.ui-tabs .ui-tabs-nav {
    display: flex;
}

.ui-tabs .ui-tabs-nav li {
    flex: 1;
    display: flex;
    /* If placed in a small width sidebar or something like that disabling nowrap will fix the overflow issue */
    white-space: normal;
}

.ui-tabs .ui-tabs-nav li a {
    flex: 1;
    /* If you want to align tab titles center */
    text-align: center;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-01-26
    • 1970-01-01
    • 1970-01-01
    • 2015-12-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多