diff --git a/docs/_includes/nav-docs.html b/docs/_includes/nav-docs.html
index 649f175a703b8ee9413d558231f0e7fe03246c1f..545c9655d42c54f4c18457e058ae60dfb4dac1bd 100644
--- a/docs/_includes/nav-docs.html
+++ b/docs/_includes/nav-docs.html
@@ -2,7 +2,7 @@
 
   <form class="bd-search hidden-sm-down">
     <input type="text" class="form-control" id="search-input" placeholder="Search...">
-    <ul class="dropdown-menu bd-search-results" id="search-results"></ul>
+    <div class="dropdown-menu bd-search-results" id="search-results"></div>
   </form>
 
   <nav class="bd-links" id="docsNavbarContent">
diff --git a/docs/components/button-group.md b/docs/components/button-group.md
index 73d3ef5ff8150ebe45acf27029346495f9c2bea5..12c472b080e232ad75b64212f16e0c440b87aa68 100644
--- a/docs/components/button-group.md
+++ b/docs/components/button-group.md
@@ -96,10 +96,10 @@ Place a `.btn-group` within another `.btn-group` when you want dropdown menus mi
     <button id="btnGroupDrop1" type="button" class="btn btn-secondary dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
       Dropdown
     </button>
-    <ul class="dropdown-menu" aria-labelledby="btnGroupDrop1">
-      <li><a href="#">Dropdown link</a></li>
-      <li><a href="#">Dropdown link</a></li>
-    </ul>
+    <div class="dropdown-menu" aria-labelledby="btnGroupDrop1">
+      <a class="dropdown-item" href="#">Dropdown link</a>
+      <a class="dropdown-item" href="#">Dropdown link</a>
+    </div>
   </div>
 </div>
 {% endexample %}
@@ -116,10 +116,10 @@ Make a set of buttons appear vertically stacked rather than horizontally. **Spli
       <button id="btnGroupVerticalDrop1" type="button" class="btn btn-secondary dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
         Dropdown
       </button>
-      <ul class="dropdown-menu" aria-labelledby="btnGroupVerticalDrop1">
-        <li><a href="#">Dropdown link</a></li>
-        <li><a href="#">Dropdown link</a></li>
-      </ul>
+      <div class="dropdown-menu" aria-labelledby="btnGroupVerticalDrop1">
+        <a class="dropdown-item" href="#">Dropdown link</a>
+        <a class="dropdown-item" href="#">Dropdown link</a>
+      </div>
     </div>
     <button type="button" class="btn btn-secondary">Button</button>
     <button type="button" class="btn btn-secondary">Button</button>
@@ -127,28 +127,28 @@ Make a set of buttons appear vertically stacked rather than horizontally. **Spli
       <button id="btnGroupVerticalDrop2" type="button" class="btn btn-secondary dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
         Dropdown
       </button>
-      <ul class="dropdown-menu" aria-labelledby="btnGroupVerticalDrop2">
-        <li><a href="#">Dropdown link</a></li>
-        <li><a href="#">Dropdown link</a></li>
-      </ul>
+      <div class="dropdown-menu" aria-labelledby="btnGroupVerticalDrop2">
+        <a class="dropdown-item" href="#">Dropdown link</a>
+        <a class="dropdown-item" href="#">Dropdown link</a>
+      </div>
     </div>
     <div class="btn-group" role="group">
       <button id="btnGroupVerticalDrop3" type="button" class="btn btn-secondary dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
         Dropdown
       </button>
-      <ul class="dropdown-menu" aria-labelledby="btnGroupVerticalDrop3">
-        <li><a href="#">Dropdown link</a></li>
-        <li><a href="#">Dropdown link</a></li>
-      </ul>
+      <div class="dropdown-menu" aria-labelledby="btnGroupVerticalDrop3">
+        <a class="dropdown-item" href="#">Dropdown link</a>
+        <a class="dropdown-item" href="#">Dropdown link</a>
+      </div>
     </div>
     <div class="btn-group" role="group">
       <button id="btnGroupVerticalDrop4" type="button" class="btn btn-secondary dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
         Dropdown
       </button>
-      <ul class="dropdown-menu" aria-labelledby="btnGroupVerticalDrop4">
-        <li><a href="#">Dropdown link</a></li>
-        <li><a href="#">Dropdown link</a></li>
-      </ul>
+      <div class="dropdown-menu" aria-labelledby="btnGroupVerticalDrop4">
+        <a class="dropdown-item" href="#">Dropdown link</a>
+        <a class="dropdown-item" href="#">Dropdown link</a>
+      </div>
     </div>
   </div>
 </div>
diff --git a/docs/components/input-group.md b/docs/components/input-group.md
index 0f27e9bacb190023f8585ffe052bd85169f99042..1b3a71545053691ca11bcd22b858626becdf0889 100644
--- a/docs/components/input-group.md
+++ b/docs/components/input-group.md
@@ -120,13 +120,13 @@ Buttons in input groups are a bit different and require one extra level of nesti
         <button type="button" class="btn btn-secondary dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
           Action
         </button>
-        <ul class="dropdown-menu">
-          <li><a href="#">Action</a></li>
-          <li><a href="#">Another action</a></li>
-          <li><a href="#">Something else here</a></li>
-          <li role="separator" class="divider"></li>
-          <li><a href="#">Separated link</a></li>
-        </ul>
+        <div class="dropdown-menu">
+          <a class="dropdown-item" href="#">Action</a>
+          <a class="dropdown-item" href="#">Another action</a>
+          <a class="dropdown-item" href="#">Something else here</a>
+          <div role="separator" class="dropdown-divider"></div>
+          <a class="dropdown-item" href="#">Separated link</a>
+        </div>
       </div>
       <input type="text" class="form-control" aria-label="Text input with dropdown button">
     </div>
@@ -138,13 +138,13 @@ Buttons in input groups are a bit different and require one extra level of nesti
         <button type="button" class="btn btn-secondary dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
           Action
         </button>
-        <ul class="dropdown-menu dropdown-menu-right">
-          <li><a href="#">Action</a></li>
-          <li><a href="#">Another action</a></li>
-          <li><a href="#">Something else here</a></li>
-          <li role="separator" class="divider"></li>
-          <li><a href="#">Separated link</a></li>
-        </ul>
+        <div class="dropdown-menu dropdown-menu-right">
+          <a class="dropdown-item" href="#">Action</a>
+          <a class="dropdown-item" href="#">Another action</a>
+          <a class="dropdown-item" href="#">Something else here</a>
+          <div role="separator" class="dropdown-divider"></div>
+          <a class="dropdown-item" href="#">Separated link</a>
+        </div>
       </div>
     </div>
   </div>
@@ -162,13 +162,13 @@ Buttons in input groups are a bit different and require one extra level of nesti
         <button type="button" class="btn btn-secondary dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
           <span class="sr-only">Toggle Dropdown</span>
         </button>
-        <ul class="dropdown-menu">
-          <li><a href="#">Action</a></li>
-          <li><a href="#">Another action</a></li>
-          <li><a href="#">Something else here</a></li>
-          <li role="separator" class="divider"></li>
-          <li><a href="#">Separated link</a></li>
-        </ul>
+        <div class="dropdown-menu">
+          <a class="dropdown-item" href="#">Action</a>
+          <a class="dropdown-item" href="#">Another action</a>
+          <a class="dropdown-item" href="#">Something else here</a>
+          <div role="separator" class="dropdown-divider"></div>
+          <a class="dropdown-item" href="#">Separated link</a>
+        </div>
       </div>
       <input type="text" class="form-control" aria-label="Text input with segmented button dropdown">
     </div>
@@ -181,13 +181,13 @@ Buttons in input groups are a bit different and require one extra level of nesti
         <button type="button" class="btn btn-secondary dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
           <span class="sr-only">Toggle Dropdown</span>
         </button>
-        <ul class="dropdown-menu dropdown-menu-right">
-          <li><a href="#">Action</a></li>
-          <li><a href="#">Another action</a></li>
-          <li><a href="#">Something else here</a></li>
-          <li role="separator" class="divider"></li>
-          <li><a href="#">Separated link</a></li>
-        </ul>
+        <div class="dropdown-menu dropdown-menu-right">
+          <a class="dropdown-item" href="#">Action</a>
+          <a class="dropdown-item" href="#">Another action</a>
+          <a class="dropdown-item" href="#">Something else here</a>
+          <div role="separator" class="dropdown-divider"></div>
+          <a class="dropdown-item" href="#">Separated link</a>
+        </div>
       </div>
     </div>
   </div>
diff --git a/docs/components/scrollspy.md b/docs/components/scrollspy.md
index 26d0dd433de45eaa947a21a1241ced6550ad48fe..2cec07f90f19eae70daee1805b9a78cdebd824c7 100644
--- a/docs/components/scrollspy.md
+++ b/docs/components/scrollspy.md
@@ -21,12 +21,12 @@ The ScrollSpy plugin is for automatically updating nav targets based on scroll p
       <li class="nav-item"><a class="nav-link" href="#mdo">@mdo</a></li>
       <li class="nav-item dropdown">
         <a class="nav-link dropdown-toggle" data-toggle="dropdown" href="#" role="button" aria-haspopup="true" aria-expanded="false">Dropdown</a>
-        <ul class="dropdown-menu">
-          <li><a class="dropdown-item" href="#one">one</a></li>
-          <li><a class="dropdown-item" href="#two">two</a></li>
-          <li role="separator" class="dropdown-divider"></li>
-          <li><a class="dropdown-item" href="#three">three</a></li>
-        </ul>
+        <div class="dropdown-menu">
+          <a class="dropdown-item" href="#one">one</a>
+          <a class="dropdown-item" href="#two">two</a>
+          <div role="separator" class="dropdown-divider"></div>
+          <a class="dropdown-item" href="#three">three</a>
+        </div>
       </li>
     </ul>
   </nav>
diff --git a/docs/examples/sticky-footer-navbar/index.html b/docs/examples/sticky-footer-navbar/index.html
index 6176265225c7a0cb4d0f07726430649e65971725..719d72204f1ace83571f6390f2ad54f09062a848 100644
--- a/docs/examples/sticky-footer-navbar/index.html
+++ b/docs/examples/sticky-footer-navbar/index.html
@@ -42,15 +42,15 @@
             <li><a href="#contact">Contact</a></li>
             <li class="dropdown">
               <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">Dropdown</a>
-              <ul class="dropdown-menu">
-                <li><a href="#">Action</a></li>
-                <li><a href="#">Another action</a></li>
-                <li><a href="#">Something else here</a></li>
-                <li role="separator" class="divider"></li>
-                <li class="dropdown-header">Nav header</li>
-                <li><a href="#">Separated link</a></li>
-                <li><a href="#">One more separated link</a></li>
-              </ul>
+              <div class="dropdown-menu">
+                <a class="dropdown-item" href="#">Action</a>
+                <a class="dropdown-item" href="#">Another action</a>
+                <a class="dropdown-item" href="#">Something else here</a>
+                <div role="separator" class="dropdown-divider"></div>
+                <h6 class="dropdown-header">Nav header</h6>
+                <a class="dropdown-item" href="#">Separated link</a>
+                <a class="dropdown-item" href="#">One more separated link</a>
+              </div>
             </li>
           </ul>
         </div><!--/.nav-collapse -->
diff --git a/js/tests/visual/dropdown.html b/js/tests/visual/dropdown.html
index 5ade9dd18e8489810618067a5cbe6c9907649e70..47e400d4bb6a45179a96a73f025a4b99b5bc92de 100644
--- a/js/tests/visual/dropdown.html
+++ b/js/tests/visual/dropdown.html
@@ -82,25 +82,25 @@
       <a id="drop4" class="nav-link" role="button" data-toggle="dropdown" href="#" aria-haspopup="true" aria-expanded="false">
         Dropdown
       </a>
-      <ul id="menu1" class="dropdown-menu" aria-labelledby="drop4">
+      <div id="menu1" class="dropdown-menu" aria-labelledby="drop4">
         <a class="dropdown-item" href="https://twitter.com/fat">Action</a>
         <a class="dropdown-item" href="https://twitter.com/fat">Another action</a>
         <a class="dropdown-item" href="https://twitter.com/fat">Something else here</a>
         <div class="dropdown-divider"></div>
         <a class="dropdown-item" href="https://twitter.com/fat">Separated link</a>
-      </ul>
+      </div>
     </li>
     <li class="dropdown nav-item">
       <a id="drop5" class="nav-link" role="button" data-toggle="dropdown" href="#" aria-haspopup="true" aria-expanded="false">
         Dropdown 2
       </a>
-      <ul id="menu2" class="dropdown-menu" aria-labelledby="drop5">
+      <div id="menu2" class="dropdown-menu" aria-labelledby="drop5">
         <a class="dropdown-item" href="https://twitter.com/fat">Action</a>
         <a class="dropdown-item" href="https://twitter.com/fat">Another action</a>
         <a class="dropdown-item" href="https://twitter.com/fat">Something else here</a>
         <div class="dropdown-divider"></div>
         <a class="dropdown-item" href="https://twitter.com/fat">Separated link</a>
-      </ul>
+      </div>
     </li>
   </ul>