返回 导航

HTML5 / CSS3

hangge.com

CSS3 - 下拉菜单控件的样例(使用Font Awesome字体图标)

作者:hangge | 2016-03-26 10:29
下面时一个带图标的下拉列表框样例,点击右侧的向下箭头可以打开或者收缩菜单。其中图标使用的是 Font Awesome 字体图标。Font Awesome字体图标的用法可以查看我前面写的文章:CSS3 - 在html页面中使用Font Awesome字体图标
<!doctype html>
<html lang="en">
	<head>
	<title>hangge.com</title>
	<link rel="stylesheet" href="font-awesome/css/font-awesome.min.css">
	<style>
		* {
		  -webkit-box-sizing: border-box;
		  -moz-box-sizing: border-box;
		  box-sizing: border-box;
		}
		*:before,
		*:after {
		  -webkit-box-sizing: border-box;
		  -moz-box-sizing: border-box;
		  box-sizing: border-box;
		}
		body {
		  font-family: proxima-nova, "Helvetica Neue", Helvetica, Arial, sans-serif;
		  font-size: 14px;
		  line-height: 1.42857143;
		  color: #333333;
		  background-color: #ffffff;
		}

		button,
		input,
		optgroup,
		select,
		textarea {
		  color: inherit;
		  font: inherit;
		  margin: 0;
		}

		a {
		  color: #21b384;
		  text-decoration: none;
		}
		a:hover,
		a:focus {
		  color: #198764;
		  text-decoration: underline;
		}
		a:focus {
		  outline: thin dotted;
		  outline: 5px auto -webkit-focus-ring-color;
		  outline-offset: -2px;
		}

		.btn {
		  display: inline-block;
		  margin-bottom: 0;
		  font-weight: normal;
		  text-align: center;
		  vertical-align: middle;
		  touch-action: manipulation;
		  cursor: pointer;
		  background-image: none;
		  border: 1px solid transparent;
		  white-space: nowrap;
		  padding: 6px 12px;
		  font-size: 14px;
		  line-height: 1.42857143;
		  border-radius: 4px;
		  -webkit-user-select: none;
		  -moz-user-select: none;
		  -ms-user-select: none;
		  user-select: none;
		}
		.btn:focus,
		.btn:active:focus,
		.btn.active:focus,
		.btn.focus,
		.btn:active.focus,
		.btn.active.focus {
		  outline: thin dotted;
		  outline: 5px auto -webkit-focus-ring-color;
		  outline-offset: -2px;
		}
		.btn:hover,
		.btn:focus,
		.btn.focus {
		  color: #333333;
		  text-decoration: none;
		}
		.btn:active,
		.btn.active {
		  outline: 0;
		  background-image: none;
		  -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
		  box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
		}

		/***** 4 *****/
		.btn-group,
		.btn-group-vertical {
		  position: relative;
		  display: inline-block;
		  vertical-align: middle;
		}
		.btn-group > .btn,
		.btn-group-vertical > .btn {
		  position: relative;
		  float: left;
		}
		.btn-group > .btn {
		  position: relative;
		  float: left;
		}

		.btn-group .btn + .btn,
		.btn-group .btn + .btn-group,
		.btn-group .btn-group + .btn,
		.btn-group .btn-group + .btn-group {
		  margin-left: -1px;
		}

		.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) {
		  border-radius: 0;
		}
		.btn-group > .btn:first-child {
		  margin-left: 0;
		}
		.btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) {
		  border-bottom-right-radius: 0;
		  border-top-right-radius: 0;
		}
		.btn-group > .btn:last-child:not(:first-child),
		.btn-group > .dropdown-toggle:not(:first-child) {
		  border-bottom-left-radius: 0;
		  border-top-left-radius: 0;
		}

		/***** 6 *****/
		.btn-group,
		.btn-group-vertical {
		  position: relative;
		  display: inline-block;
		  vertical-align: middle;
		}
		.btn-group > .btn,
		.btn-group-vertical > .btn {
		  position: relative;
		  float: left;
		}
		.btn-group > .btn:hover,
		.btn-group-vertical > .btn:hover,
		.btn-group > .btn:focus,
		.btn-group-vertical > .btn:focus,
		.btn-group > .btn:active,
		.btn-group-vertical > .btn:active,
		.btn-group > .btn.active,
		.btn-group-vertical > .btn.active {
		  z-index: 2;
		}
		.btn-group .btn + .btn,
		.btn-group .btn + .btn-group,
		.btn-group .btn-group + .btn,
		.btn-group .btn-group + .btn-group {
		  margin-left: -1px;
		}

		.btn-primary {
		  color: #ffffff;
		  background-color: #337ab7;
		  border-color: #2e6da4;
		}
		.btn-primary:focus,
		.btn-primary.focus {
		  color: #ffffff;
		  background-color: #286090;
		  border-color: #122b40;
		}
		.btn-primary:hover {
		  color: #ffffff;
		  background-color: #286090;
		  border-color: #204d74;
		}

		.btn-group > .btn + .dropdown-toggle {
		  padding-left: 8px;
		  padding-right: 8px;
		}

		.dropdown-toggle:focus {
		  outline: 0;
		}
		.dropdown-menu {
		  position: absolute;
		  top: 100%;
		  left: 0;
		  z-index: 1000;
		  display: none;
		  float: left;
		  min-width: 160px;
		  padding: 5px 0;
		  margin: 2px 0 0;
		  list-style: none;
		  font-size: 14px;
		  text-align: left;
		  background-color: #ffffff;
		  border: 1px solid #cccccc;
		  border: 1px solid rgba(0, 0, 0, 0.15);
		  border-radius: 4px;
		  -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);
		  box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);
		  background-clip: padding-box;
		}
		.dropdown-menu.pull-right {
		  right: 0;
		  left: auto;
		}
		.dropdown-menu .divider {
		  height: 1px;
		  margin: 9px 0;
		  overflow: hidden;
		  background-color: #e5e5e5;
		}
		.dropdown-menu > li > a {
		  display: block;
		  padding: 3px 20px;
		  clear: both;
		  font-weight: normal;
		  line-height: 1.42857143;
		  color: #333333;
		  white-space: nowrap;
		}
		.dropdown-menu > li > a:hover,
		.dropdown-menu > li > a:focus {
		  text-decoration: none;
		  color: #262626;
		  background-color: #f5f5f5;
		}
		.dropdown-menu > .active > a,
		.dropdown-menu > .active > a:hover,
		.dropdown-menu > .active > a:focus {
		  color: #ffffff;
		  text-decoration: none;
		  outline: 0;
		  background-color: #1d9d74;
		}
		.dropdown-menu > .disabled > a,
		.dropdown-menu > .disabled > a:hover,
		.dropdown-menu > .disabled > a:focus {
		  color: #777777;
		}
		.dropdown-menu > .disabled > a:hover,
		.dropdown-menu > .disabled > a:focus {
		  text-decoration: none;
		  background-color: transparent;
		  background-image: none;
		  filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
		  cursor: not-allowed;
		}
		.open > .dropdown-menu {
		  display: block;
		}
		.open > a {
		  outline: 0;
		}
	</style>
	<script>
		function menuOpenClose() {
			var menu = document.getElementById('menu');
			var c = menu.className;
			//有more属性
			if(c != null && c.indexOf('open') > -1){
				menu.className = c.replace('open', '');
			}else{
				menu.className = c + ' open';
			}
		}
	</script>
</head>
<body>
	<div id="menu" class="btn-group">
	  <a class="btn btn-primary" href="#"><i class="fa fa-user fa-fw"></i> User</a>
	  <a class="btn btn-primary dropdown-toggle" data-toggle="dropdown" href="#"
		onclick="menuOpenClose()">
		<span class="fa fa-caret-down"></span></a>
	  <ul class="dropdown-menu">
		<li><a href="#"><i class="fa fa-pencil fa-fw"></i> Edit</a></li>
		<li><a href="#"><i class="fa fa-trash-o fa-fw"></i> Delete</a></li>
		<li><a href="#"><i class="fa fa-ban fa-fw"></i> Ban</a></li>
		<li class="divider"></li>
		<li><a href="#"><i class="i"></i> Make admin</a></li>
	  </ul>
	</div>
</body>
</html>
评论

全部评论(0)

回到顶部