javascript - Bootstrap 选项卡面板标题和内容等高

标签 javascript jquery html css twitter-bootstrap

link I have tried

我正在为我的网站使用 Bootstrap “标签面板”。

我想在加载页面时为我的标签标题和描述设置相同的高度,如下图所示。

我正在尝试根据标题和描述的内容设置自动高度

任何人都可以帮助实现这一目标。提前致谢。

<html lang="en">

<head>
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.1.3/css/bootstrap.min.css">
    <style class="cp-pen-styles"></style>
</head>

<body>
    <div class="row mt-4">
        <div class="col-4">
            <div class="list-group" id="list-tab" role="tablist">
                <a class="list-group-item list-group-item-action active equalHeight" id="list-home-list" data-toggle="list" href="#list-home" role="tab" aria-controls="home" style="height: 74px;">Home</a>
                <a class="list-group-item list-group-item-action" id="list-profile-list" data-toggle="list" href="#list-profile" role="tab" aria-controls="profile">Profile</a>
                <a class="list-group-item list-group-item-action" id="list-messages-list" data-toggle="list" href="#list-messages" role="tab" aria-controls="messages">Messages</a>
                <a class="list-group-item list-group-item-action" id="list-settings-list" data-toggle="list" href="#list-settings" role="tab" aria-controls="settings">Settings</a>
            </div>
        </div>
        <div class="col-8">
            <div class="tab-content" id="nav-tabContent">
                <div class="tab-pane fade show active equalHeight" id="list-home" role="tabpanel" aria-labelledby="list-home-list" style="height: 48px;">
                    1 Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book.
                </div>
                <div class="tab-pane fade" id="list-profile" role="tabpanel" aria-labelledby="list-profile-list">
                    2 Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.
                </div>
                <div class="tab-pane fade" id="list-messages" role="tabpanel" aria-labelledby="list-messages-list">
                    3 Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages.
                </div>
                <div class="tab-pane fade" id="list-settings" role="tabpanel" aria-labelledby="list-settings-list">
                    Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.
                </div>
            </div>
        </div>
    </div>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.5/popper.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.1.3/js/bootstrap.min.js"></script>
    <script>
        function equalHeight(group) {
            tallest = 0;
            group.each(function() {
                thisHeight = $(this).height();
                if (thisHeight > tallest) {
                    tallest = thisHeight;
                }
            });
            group.height(tallest);
        }

        $(document).ready(function() {
            equalHeight($(".equalHeight"));
        });
        //# sourceURL=pen.js
    </script>
</body>

</html>

I want like this

最佳答案

这是一个使用 jQuery 的可行解决方案,因为您已经在使用它了:

https://jsfiddle.net/p4uztjbe/2/

只需删除 equalHeight 函数和调用并将此代码段添加到 $(document).ready

$('a[role="tab"]').on('shown.bs.tab', function (e) {
  var targetHref = $(e.target).attr("href");
  var $activatedTabContent = $(targetHref);
  var targetHeight = $activatedTabContent.height();
  $('a[role="tab"]').outerHeight('auto');
  $(this).height(targetHeight);
});

希望这对您有所帮助!

关于javascript - Bootstrap 选项卡面板标题和内容等高,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53530858/

相关文章:

javascript - 动态创建按钮元素并立即调用事件监听器

jquery - 悬停时使用 fadeInUp 显示 div,鼠标悬停时显示 fadeOutDown

javascript - 我的页面下有一个 block ,正在向上推我的页面内容

javascript - 从 XMLHttpRequest send() 捕获异步网络错误

javascript - 使用 AJAX 集成 Asana API

jquery - 当选项数不大于 1 时,自动选择选择中的第二个选项

jQuery fn.extend ({bla : function(){}} vs. jQuery.fn.bla

html - Bootstrap 水平对齐嵌套 Accordion

javascript - 将 JSON 插入 MongoDB 自动从字符串转换日期

Javascript字符串格式化,在xpath表达式中传递方法参数