JSFiddle - React, Tailwind, and code Playground
by isherwood
HTML
<nav class="navbar navbar-default navbar-static white">
<div class="container">
<div class="navbar-header">
<button class="navbar-toggle" type="button" data-toggle="collapse" data-target=".js-navbar-collapse">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a href="" class="logo"> <img src="http://placehold.it/80x50" alt="10plus"> </a>
</div>
<div class="collapse navbar-collapse js-navbar-collapse">
<div class="pull-right">
<ul class="nav navbar-nav">
<li class="dropdown dropdown-large">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">Cursuri elevi <b class="caret"></b></a>
<ul class="dropdown-menu dropdown-menu-large row">
<li class="col-sm-4">
<ul>
<li class="dropdown-header">Glyphicons</li>
<li><a href="#">Available glyphs</a></li>
<li class="disabled"><a href="#">How to use</a></li>
<li><a href="#">Examples</a></li>
<li class="divider"></li>
<li class="dropdown-header">Dropdowns</li>
<li><a href="#">Example</a></li>
<li><a href="#">Aligninment options</a></li>
<li><a href="#">Headers</a></li>
<li><a href="#">Disabled menu items</a></li>
</ul>
</li>
<li class="col-sm-4">
<ul>
<li class="dropdown-header">Button groups</li>
<li><a href="#">Basic example</a></li>
<li><a href="#">Button toolbar</a></li>
<li><a href="#">Sizing</a></li>
<li><a href="#">Nesting</a></li>
<li><a href="#">Vertical variation</a></li>
<li class="divider"></li>
...
CSS
/* Optional theme */
@import url('//netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap.min.css');
.dropdown-large {
position: static !important;
}
.dropdown-menu-large {
padding: 20px 0px;
width: 500px;
}
.dropdown-menu-large > li > ul {
padding: 0;
margin: 0;
}
.dropdown-menu-large > li > ul > li {
list-style: none;
}
.dropdown-menu-large > li > ul > li > a {
display: block;
padding: 3px 20px;
clear: both;
font-weight: normal;
line-height: 1.428571429;
color: #333333;
white-space: normal;
}
.dropdown-menu-large > li ul > li > a:hover,
.dropdown-menu-large > li ul > li > a:focus {
text-decoration: none;
color: #262626;
background-color: #f5f5f5;
}
.dropdown-menu-large .disabled > a,
.dropdown-menu-large .disabled > a:hover,
.dropdown-menu-large .disabled > a:focus {
color: #999999;
}
.dropdown-menu-large .disabled > a:hover,
.dropdown-menu-large .disabled > a:focus {
text-decoration: none;
background-color: transparent;
background-image: none;
filter: progid: DXImageTransform.Microsoft.gradient(enabled=false);
cursor: not-allowed;
}
.dropdown-menu-large .dropdown-header {
color: #428bca;
font-size: 18px;
}
@media (max-width: 768px) {
.dropdown-menu-large {
margin-left: 0;
margin-right: 0;
}
.dropdown-menu-large > li {
margin-bottom: 30px;
}
.dropdown-menu-large > li:last-child {
margin-bottom: 0;
}
.dropdown-menu-large .dropdown-header {
padding: 3px 15px !important;
}
}
.dropdown-menu {
position: absolute;
top: 100%;
left: 0px;
z-index: 1000;
display: none;
float: left;
min-width: 160px;
padding: 5px 0px;
margin: 0;
font-size: 14px;
text-align: left;
list-style: outside none none;
background-color: #FFF;
background-clip: padding-box;
border: none;
border-radius: 0px;
box-shadow: none;
width: 100%;
}
.navbar-default .navbar-nav > li > a {
color: #000;
font-size: 18px;
margin-right: 30px;
margin-top: 2px;
}
.navbar-default...
JavaScript
/**
* bootstrap.js v3.0.0 by @fat and @mdo
* Copyright 2013 Twitter Inc.
* http://www.apache.org/licenses/LICENSE-2.0
*/
if (!jQuery) throw new Error("Bootstrap requires jQuery"); + function(a) {
"use strict";
function b() {
var a = document.createElement("bootstrap"),
b = {
WebkitTransition: "webkitTransitionEnd",
MozTransition: "transitionend",
OTransition: "oTransitionEnd otransitionend",
transition: "transitionend"
};
for (var c in b)
if (void 0 !== a.style[c]) return {
end: b[c]
}
}
a.fn.emulateTransitionEnd = function(b) {
var c = !1,
d = this;
a(this).one(a.support.transition.end, function() {
c = !0
});
var e = function() {
c || a(d).trigger(a.support.transition.end)
};
return setTimeout(e, b), this
}, a(function() {
a.support.transition = b()
})
}(window.jQuery), + function(a) {
"use strict";
var b = '[data-dismiss="alert"]',
c = function(c) {
a(c).on("click", b, this.close)
};
c.prototype.close = function(b) {
function c() {
f.trigger("closed.bs.alert").remove()
}
var d = a(this),
e = d.attr("data-target");
e || (e = d.attr("href"), e = e && e.replace(/.*(?=#[^\s]*$)/, ""));
var f = a(e);
b && b.preventDefault(), f.length || (f = d.hasClass("alert") ? d : d.parent()), f.trigger(b = a.Event("close.bs.alert")), b.isDefaultPrevented() || (f.removeClass("in"), a.support.transition && f.hasClass("fade") ? f.one(a.support.transition.end, c).emulateTransitionEnd(150) : c())
};
var d = a.fn.alert;
a.fn.alert = function(b) {
return this.each(function() {
var d = a(this),
e = d.data("bs.alert");
e || d.data("bs.alert", e = new c(this)), "string" == typeof b && e[b].call(d)
})
}, a.fn.alert.Constructor = c, a.fn.alert.noConflict = function() {
return a.fn.alert = d, this
}, a(document).on("click.bs.alert.data-api", b,...