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%;
- }
- }
}
}
}