【问题标题】:Using Tabs within Tab isn't working - Material Design Lite在选项卡中使用选项卡不起作用 - Material Design Lite
【发布时间】:2016-08-10 12:55:50
【问题描述】:

我想在标签布局中使用标签布局。我正在使用已经为选项卡制作类的 Material Design lite,因此我正在尝试使用相同的类。

选项卡编号 1 - 水平选项卡单独工作没有任何问题。 Tab Number 2 - Vertical Tab 单独工作没有任何问题。

现在我尝试在标签编号 1 中使用标签编号 2。标签编号 1 的工作保持不变,但标签编号 2 不起作用。

请查看此 Plunker 链接:https://plnkr.co/edit/LVPexb9akrRR2AoPGEGO?p=preview

代码 - HTML

    <!DOCTYPE html>
<html>

<head>
    <link data-require="material-design-lite@1.1.1" data-semver="1.1.1" rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons" />
    <link data-require="material-design-lite@1.1.1" data-semver="1.1.1" rel="stylesheet" href="https://code.getmdl.io/1.1.1/material.indigo-pink.min.css" />
    <script data-require="material-design-lite@1.1.1" data-semver="1.1.1" src="https://code.getmdl.io/1.1.1/material.min.js"></script>
    <link rel="stylesheet" href="style.css" />
    <script src="script.js"></script>
</head>

<body>

    <h4>Combined Tab 2 within Tab 1</h4>
    <div class="mdl-tabs mdl-js-tabs">
        <div class="mdl-tabs__tab-bar">
            <a href="#tab1" class="mdl-tabs__tab">Tab One</a>
            <a href="#tab2" class="mdl-tabs__tab">Tab Two</a>
            <a href="#tab3" class="mdl-tabs__tab">Tab Three</a>
        </div>
        <div class="mdl-tabs__panel is-active" id="tab1">
            <div class="mdl-tabs vertical-mdl-tabs mdl-js-tabs mdl-js-ripple-effect">
                <div class="mdl-grid mdl-grid--no-spacing">
                    <div class="mdl-cell mdl-cell--2-col">
                        <div class="mdl-tabs__tab-bar">
                            <a href="#tab1-panel" class="mdl-tabs__tab is-active">
                                <span class="hollow-circle"></span> General
                            </a>
                            <a href="#tab2-panel" class="mdl-tabs__tab">
                                <span class="hollow-circle"></span> Bank
                            </a>
                            <a href="#tab3-panel" class="mdl-tabs__tab">
                                <span class="hollow-circle"></span> Password
                            </a>
                        </div>
                    </div>
                    <div class="mdl-cell mdl-cell--10-col">
                        <div class="mdl-tabs__panel is-active" id="tab1-panel">
                            Content 1
                        </div>
                        <div class="mdl-tabs__panel" id="tab2-panel">
                            Content 2
                        </div>
                        <div class="mdl-tabs__panel" id="tab3-panel">
                            Content 3
                        </div>
                    </div>
                </div>
            </div>
        </div>
        <div class="mdl-tabs__panel" id="tab2">
            <p>Second tab's content.</p>
        </div>
        <div class="mdl-tabs__panel" id="tab3">
            <p>Third tab's content.</p>
        </div>
    </div>

    <h4>Tab 1 Individual</h4>
    <div class="mdl-tabs mdl-js-tabs">
        <div class="mdl-tabs__tab-bar">
            <a href="#tab1" class="mdl-tabs__tab">Tab One</a>
            <a href="#tab2" class="mdl-tabs__tab">Tab Two</a>
            <a href="#tab3" class="mdl-tabs__tab">Tab Three</a>
        </div>
        <div class="mdl-tabs__panel is-active" id="tab1">
            <p>First tab's content.</p>
        </div>
        <div class="mdl-tabs__panel" id="tab2">
            <p>Second tab's content.</p>
        </div>
        <div class="mdl-tabs__panel" id="tab3">
            <p>Third tab's content.</p>
        </div>
    </div>

    <h4>Tab 2 Individual</h4>

    <div class="mdl-tabs vertical-mdl-tabs mdl-js-tabs mdl-js-ripple-effect">
        <div class="mdl-grid mdl-grid--no-spacing">
            <div class="mdl-cell mdl-cell--2-col">
                <div class="mdl-tabs__tab-bar">
                    <a href="#tab1-panel" class="mdl-tabs__tab is-active">
                        <span class="hollow-circle"></span> General
                    </a>
                    <a href="#tab2-panel" class="mdl-tabs__tab">
                        <span class="hollow-circle"></span> Bank
                    </a>
                    <a href="#tab3-panel" class="mdl-tabs__tab">
                        <span class="hollow-circle"></span> Password
                    </a>
                </div>
            </div>
            <div class="mdl-cell mdl-cell--10-col">
                <div class="mdl-tabs__panel is-active" id="tab1-panel">
                    Content 1
                </div>
                <div class="mdl-tabs__panel" id="tab2-panel">
                    Content 2
                </div>
                <div class="mdl-tabs__panel" id="tab3-panel">
                    Content 3
                </div>
            </div>
        </div>
    </div>

</body>

</html>

CSS

/*Vertical Tabs*/
.vertical-mdl-tabs {
    margin-top: 30px;
}
.vertical-mdl-tabs .mdl-tabs__tab-bar {
    -webkit-flex-direction: column;
        -ms-flex-direction: column;
            flex-direction: column;
    padding-bottom: 35px;
    height: inherit;
    border-bottom: none;
    border-right: 1px solid #d9d9d9;
}

.vertical-mdl-tabs .mdl-tabs__tab {
    width: 100%;
    height: 35px;
    line-height: 35px;
    box-sizing: border-box;
    letter-spacing: 2px;

}

.vertical-mdl-tabs.mdl-tabs.is-upgraded a.mdl-tabs__tab.is-active {
    border-right: 2px solid #EF5350;
}
.vertical-mdl-tabs.mdl-tabs.is-upgraded .mdl-tabs__tab.is-active:after {
    content: inherit;
    height: 0;
}

.vertical-mdl-tabs.mdl-tabs.is-upgraded .mdl-tabs__panel.is-active, .mdl-tabs__panel {
    padding: 0 30px;
}

.vertical-mdl-tabs.mdl-tabs .mdl-tabs__tab {
    text-align: left;
}

【问题讨论】:

  • 在#tab1 链接上,您必须添加“is-active”类。然后链接和面板可以相互通信......

标签: html css tabs material-design-lite


【解决方案1】:

如果我猜对了,你已经从这篇文章Vertical tabs in Material design lite 中获取了“垂直标签的代码”。我已经写了那篇文章,据我了解,您的问题与垂直标签无关。如果您在水平选项卡中也使用水平选项卡,您将面临同样的问题。

问题可能是由于 mdl-tabs 的 javscript 代码而发生的。原始开发人员可能正在使用 tabs 父容器来查找该容器下的每个选项卡并将单击事件绑定到它。这就是制造问题的原因。由于缩小,现在无法理解。

解决方案:而不是将点击事件绑定到父级下的子选项卡。您需要更改代码以根据单击的选项卡找到“最近”父选项卡容器,并根据找到的父选项卡修改子选项卡。

可能会让人不知所措,但我猜这就是正在发生的事情。

【讨论】:

    【解决方案2】:

    我注意到 MDL 中的嵌套选项卡已损坏。当您选择一个内部选项卡时,所有其他选项卡都被取消选择 - 包括外部选项卡,因此外部选项卡上没有选择任何选项卡,内部选项卡消失。

    我发现如果我使用 JS “以编程方式”添加内部选项卡,则不会发生此错误。执行此操作时,您必须记住使用 componentHandler.upgradeElement(myInnerTabs); 升级内部选项卡

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-10
      • 2016-01-02
      • 2017-12-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多