diff --git a/scss/_dropdown.scss b/scss/_dropdown.scss index 8d96c1ba63..ee6f658087 100644 --- a/scss/_dropdown.scss +++ b/scss/_dropdown.scss @@ -1,6 +1,8 @@ // The dropdown wrapper (`
`) .dropup, -.dropdown { +.dropright, +.dropdown, +.dropleft { position: relative; } @@ -31,10 +33,17 @@ @include box-shadow($dropdown-box-shadow); } +.dropdown-menu-right { + right: 0; + left: auto; +} + // Allow for dropdowns to go bottom up (aka, dropup-menu) // Just add .dropup after the standard .dropdown class and you're set. .dropup { .dropdown-menu { + top: auto; + bottom: 100%; margin-top: 0; margin-bottom: $dropdown-spacer; } @@ -46,6 +55,9 @@ .dropright { .dropdown-menu { + top: 0; + right: auto; + left: 100%; margin-top: 0; margin-left: $dropdown-spacer; } @@ -60,6 +72,9 @@ .dropleft { .dropdown-menu { + top: 0; + right: 100%; + left: auto; margin-top: 0; margin-right: $dropdown-spacer; } @@ -72,6 +87,19 @@ } } +// When enabled Popper.js, reset basic dropdown position +// stylelint-disable no-duplicate-selectors +.dropdown-menu { + &[x-placement^="top"], + &[x-placement^="right"], + &[x-placement^="bottom"], + &[x-placement^="left"] { + right: auto; + bottom: auto; + } +} +// stylelint-enable no-duplicate-selectors + // Dividers (basically an `
`) within the dropdown .dropdown-divider { @include nav-divider($dropdown-divider-bg); diff --git a/scss/_navbar.scss b/scss/_navbar.scss index 8d68c6c8c4..05025273f8 100644 --- a/scss/_navbar.scss +++ b/scss/_navbar.scss @@ -162,11 +162,6 @@ position: absolute; } - .dropdown-menu-right { - right: 0; - left: auto; // Reset the default from `.dropdown-menu` - } - .nav-link { padding-right: $navbar-nav-link-padding-x; padding-left: $navbar-nav-link-padding-x; @@ -189,13 +184,6 @@ .navbar-toggler { display: none; } - - .dropup { - .dropdown-menu { - top: auto; - bottom: 100%; - } - } } } }