Bootstrap: раскрывающийся список поверх аккордеона

У меня есть раскрывающееся меню bootstrap 4, которое находится в теле аккордеона начальной загрузки:

<link rel = "stylesheet" href = "https://stackpath.bootstrapcdn.com/bootstrap/4.2.1/css/bootstrap.min.css" integrity = "sha384-GJzZqFGwb1QTTN6wy59ffF1BuGJpLSa9DkKMp0DgiMDm4iYMj70gZWKYbI706tWS" crossorigin = "anonymous">
<script src = "https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity = "sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin = "anonymous"></script>
<script src = "https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.6/umd/popper.min.js" integrity = "sha384-wHAiFfRlMFy6i5SRaxvfOCifBUQy1xHdJ/yoi7FRNXMRBu5WHdZYu1hA6ZOblgut" crossorigin = "anonymous"></script>
<script src = "https://stackpath.bootstrapcdn.com/bootstrap/4.2.1/js/bootstrap.min.js" integrity = "sha384-B0UglyR+jN6CkvvICOB2joaf5I4l3gm9GU6Hc1og6Ls7i6U/mkkaduKaBhlAXv9k" crossorigin = "anonymous"></script>

<div class = "accordion mb-3" id = "testAccordion">
    <div class = "card">
        <div class = "card-header" id = "accordionAHeading">
            <h2 class = "mb-0">
                <button class = "btn btn-link" type = "button" data-toggle = "collapse" data-target = "#accordionACollapse">
                Lalala
                </button>
            </h2>
        </div>
        <div id = "accordionACollapse" class = "collapsed collapse show" data-parent = "#testAccordion">
            <div class = "card-body">
                <h5>Lalala</h5>

                <div class = "dropdown" id = "addElementDropdown">
                    <button class = "btn btn-primary dropdown-toggle" type = "button" id = "addElementDropdownButton" data-toggle = "dropdown">Dropdown</button>
                    <div class = "dropdown-menu" aria-labelledby = "addElementDropdownButton">
                        <a class = "dropdown-item" href = "#">Item 1</a>
                        <a class = "dropdown-item" href = "#">Item 2</a> 
                        <a class = "dropdown-item" href = "#">Item 3</a>
                        <a class = "dropdown-item" href = "#">Item 4</a>
                        <a class = "dropdown-item" href = "#">Item 5</a>
                    </div>
                </div>
            </div>
        </div>
    </div>

    <div class = "card">
        <div class = "card-header" id = "accordionBHeading">
            <h2 class = "mb-0">
                <button class = "btn btn-link collapsed" type = "button" data-toggle = "collapse" data-target = "#accordionBCollapse">
                Test
                </button>
            </h2>
        </div>
        <div id = "accordionBCollapse" class = "collapse collapsed" data-parent = "#testAccordion">
            <div class = "card-body">
                <h5>Test</h5>

                <div class = "dropdown" id = "addElementDropdown">
                    <button class = "btn btn-primary dropdown-toggle" type = "button" id = "addElementDropdownButton" data-toggle = "dropdown">Dropdown</button>
                    <div class = "dropdown-menu" aria-labelledby = "addElementDropdownButton">
                        <a class = "dropdown-item" href = "#">Item 1</a>
                        <a class = "dropdown-item" href = "#">Item 2</a> 
                        <a class = "dropdown-item" href = "#">Item 3</a>
                        <a class = "dropdown-item" href = "#">Item 4</a>
                        <a class = "dropdown-item" href = "#">Item 5</a>
                    </div>
                </div>
            </div>
        </div>
    </div>
</div>

К сожалению, выпадающее меню нарисовано за аккордеоном. Я уже пытался добавить в аккордеон и карты некоторые стили, содержащие position: relative, а также разные z-index-значения, но безуспешно. Любые идеи?

Обновлено: Я вставил фрагмент в редактор

ОБНОВЛЕНИЕ 2: Я также сделал скринкаст приведенного выше кода: Bootstrap: раскрывающийся список поверх аккордеона

Предоставьте полный фрагмент кода, чтобы мы могли воспроизвести вашу проблему. Спасибо.

Chris Tapay 08.02.2019 00:01

Как это не полный фрагмент кода? Замените пути начальной загрузки версиями CDN (я сделал это прямо сейчас) и вставьте их, например. попробуй и все работает!

LukeLR 08.02.2019 12:47
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Travel Booking Angular Template один из лучших Travel & Tour booking template in the world. 30+ валидированных HTML5 страниц, которые помогут...
5
2
2 151
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Это потому, что к вашему классу карт добавлено скрытое переполнение. Добавьте это в свой CSS

.accordion .card {
    overflow: inherit;
}

Вы должны переопределить автоматически созданный CSS для раскрывающихся списков. Добавьте следующий CSS:

.dropdown-toggle {
  float: left;
}
.dropdown-menu.show {
  position: relative !important;
  clear: both;
  margin-top: 0;
  transform: none !important;
}
<link rel = "stylesheet" href = "https://stackpath.bootstrapcdn.com/bootstrap/4.2.1/css/bootstrap.min.css" integrity = "sha384-GJzZqFGwb1QTTN6wy59ffF1BuGJpLSa9DkKMp0DgiMDm4iYMj70gZWKYbI706tWS" crossorigin = "anonymous">
<script src = "https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity = "sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin = "anonymous"></script>
<script src = "https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.6/umd/popper.min.js" integrity = "sha384-wHAiFfRlMFy6i5SRaxvfOCifBUQy1xHdJ/yoi7FRNXMRBu5WHdZYu1hA6ZOblgut" crossorigin = "anonymous"></script>
<script src = "https://stackpath.bootstrapcdn.com/bootstrap/4.2.1/js/bootstrap.min.js" integrity = "sha384-B0UglyR+jN6CkvvICOB2joaf5I4l3gm9GU6Hc1og6Ls7i6U/mkkaduKaBhlAXv9k" crossorigin = "anonymous"></script>
<div class = "accordion mb-3" id = "testAccordion">
    <div class = "card">
        <div class = "card-header" id = "accordionAHeading">
            <h2 class = "mb-0">
                <button class = "btn btn-link" type = "button" data-toggle = "collapse" data-target = "#accordionACollapse">
                Lalala
                </button>
            </h2>
        </div>
        <div id = "accordionACollapse" class = "collapsed collapse show" data-parent = "#testAccordion">
            <div class = "card-body">
                <h5>Lalala</h5>

                <div class = "dropdown" id = "addElementDropdown">
                    <button class = "btn btn-primary dropdown-toggle" type = "button" id = "addElementDropdownButton" data-toggle = "dropdown">Dropdown</button>
                    <div class = "dropdown-menu" aria-labelledby = "addElementDropdownButton">
                        <a class = "dropdown-item" href = "#">Item 1</a>
                        <a class = "dropdown-item" href = "#">Item 2</a> 
                        <a class = "dropdown-item" href = "#">Item 3</a>
                        <a class = "dropdown-item" href = "#">Item 4</a>
                        <a class = "dropdown-item" href = "#">Item 5</a>
                    </div>
                </div>
            </div>
        </div>
    </div>

    <div class = "card">
        <div class = "card-header" id = "accordionBHeading">
            <h2 class = "mb-0">
                <button class = "btn btn-link collapsed" type = "button" data-toggle = "collapse" data-target = "#accordionBCollapse">
                Test
                </button>
            </h2>
        </div>
        <div id = "accordionBCollapse" class = "collapse collapsed" data-parent = "#testAccordion">
            <div class = "card-body">
                <h5>Test</h5>

                <div class = "dropdown" id = "addElementDropdown">
                    <button class = "btn btn-primary dropdown-toggle" type = "button" id = "addElementDropdownButton" data-toggle = "dropdown">Dropdown</button>
                    <div class = "dropdown-menu" aria-labelledby = "addElementDropdownButton">
                        <a class = "dropdown-item" href = "#">Item 1</a>
                        <a class = "dropdown-item" href = "#">Item 2</a> 
                        <a class = "dropdown-item" href = "#">Item 3</a>
                        <a class = "dropdown-item" href = "#">Item 4</a>
                        <a class = "dropdown-item" href = "#">Item 5</a>
                    </div>
                </div>
            </div>
        </div>
    </div>
</div>

Спасибо за этот ответ! Ответ @ shahil-m был короче и тоже работал, поэтому я пометил его как принятый - до сих пор. Я проверю ваш ответ, если у меня возникнут проблемы с этим :)

LukeLR 08.02.2019 14:03

Да, это было короче и эффектнее. По сути, основное отличие состоит в том, что position: absolute сохраняется, в то время как мой делает выпадающую часть потока содержимого аккордеона, поэтому контейнер растет.

Chris Tapay 08.02.2019 14:06

Другие вопросы по теме