为什么我的元素只在顶部填充?
问题描述:
我想为我的网站设计一个“工具栏”。我有三个链接:关于,支持,左侧的联系人和右侧的社交图标。两者都由无序列表构成。无论出于何种原因,来自#toolbar元素的填充仅适用于UL的顶部。我不确定发生了什么事。它可能与元素的位置有关吗?为什么我的元素只在顶部填充?
<html>
<head>
<title>BaseCMD</title>
<link rel="stylesheet" href="css/bootstrap.css">
<style type="text/css">
body {
background: url(img/argyle.png);
font-family: Verdana;
font-size: 12px;
color: #999;
z-index: 1;
}
a:link, a:active, a:visited {
color: #b71f2f;
text-decoration: none;
}
a:hover {
color: #999;
}
header {
background: rgb(69,72,77); /* Old browsers */
background: -moz-linear-gradient(top, rgba(69,72,77,1) 0%, rgba(0,0,0,1) 100%); /* FF3.6+ */
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(69,72,77,1)), color-stop(100%,rgba(0,0,0,1))); /* Chrome,Safari4+ */
background: -webkit-linear-gradient(top, rgba(69,72,77,1) 0%,rgba(0,0,0,1) 100%); /* Chrome10+,Safari5.1+ */
background: -o-linear-gradient(top, rgba(69,72,77,1) 0%,rgba(0,0,0,1) 100%); /* Opera 11.10+ */
background: -ms-linear-gradient(top, rgba(69,72,77,1) 0%,rgba(0,0,0,1) 100%); /* IE10+ */
background: linear-gradient(to bottom, rgba(69,72,77,1) 0%,rgba(0,0,0,1) 100%); /* W3C */
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#45484d', endColorstr='#000000',GradientType=0); /* IE6-9 */
}
header #toolbar {
background: #000;
border-radius: 5px;
border-width: 0px 1px 1px 1px;
border-style: solid;
border-color: #666;
padding: 10px;
position: relative;
}
header #toolbar > ul.info {
list-style: none;
margin: 0px;
padding: 0px;
position: absolute;
left: 0;
}
header #toolbar > ul.info > li {
display: inline;
border-right: 1px solid #666;
padding-right: 10px;
}
header #toolbar ul.info > li > a:link, header #toolbar ul.info > li > a:active, header #toolbar ul.info > li > a:visited {
color: #999;
text-decoration: none;
}
header #toolbar ul.social {
list-style: none;
margin: 0;
padding: 0;
position: absolute;
right: 0;
}
header #toolbar ul.social > li {
display: inline;
padding-right: 5px;
}
header #banner {
padding: 25px;
}
header #logo {
float: left;
}
header #logo a.logo {
background: url(img/Logo.png) no-repeat;
width: 176px;
height: 80px;
margin: 0px;
padding: 25px 0;
display: block;
}
header #advert {
float: right;
}
header nav {
border-top: 1px solid #333333;
border-bottom: 1px solid #222222;
margin-top: 25px;
padding: 10px;
box-shadow: 0px -5px 10px 0px rgba(0, 0, 0, 1);
}
header nav > ul {
list-style: none;
padding: 0;
margin: 0px auto;
}
header nav > ul > li {
display: inline;
}
header nav > ul > li > a:link, header nav > ul > li > a:visited, header nav > ul > li > a:active, header nav > ul > li > a:hover {
color: #777;
font-size: 14px;
text-decoration: none;
text-shadow: 3px 3px 3px #454545;
margin-right: 15px;
padding: 10px 15px;
}
header nav > ul > li > a:hover {
color: #fff;
text-shadow: 3px 3px 3px #666666;
background: rgba(183, 31, 47, 0.25);
}
ul.dropdown-menu {
background: #111;
}
ul.dropdown-menu a:link, ul.dropdown-menu a:active, ul.dropdown-menu a:visited {
color: #666;
text-decoration: none;
}
ul.dropdown-menu a:hover {
color: #999;
text-decoration: none;
background: none;
}
.alert {
margin-top: 25px;
}
#content {
background: #151515;
border: 1px solid #333;
border-radius: 10px;
margin: 25px 0px;
padding: 15px;
min-height: 100%;
}
#bgSwitch {
background: #111;
border-radius: 5px;
margin: 0;
padding: 0;
position: fixed;
left: 0;
top: 20%;
z-index: 1000;
border: 1px solid #333;
text-align: center;
width: 200px;
}
#bgSwitch h1 {
font-size: 14px;
color: #333;
margin: 0px;
padding: 10px 0px;
}
#bgSwitch > ul {
list-style: none;
margin: 0;
padding: 0;
}
#bgSwitch > ul > li {
padding: 5px 0px;
width: 45%;
float: left;
display: inline;
box-sizing: border-box;
}
#bgSwitch > ul > li > img {
width: 32px;
height: 32px;
border: 1px solid #333;
border-radius: 3px;
}
.advert-blank {
width: 468px;
height: 60px;
padding: 10px;
background: #222;
text-align: center;
border: 1px solid #444;
}
.advert-blank p {
font-size: 12px;
margin: 0px;
padding: 10px 0;
color: #666;
}
</style>
</head>
<body>
<header>
<div class="container">
<section id="toolbar" class="container">
<ul class="info">
<li><a href="#">About</a></li>
<li><a href="#">Support</a></li>
<li><a href="#">Contact</a></li>
</ul>
<ul class="social">
<li><a href="#"><img src="img/icons/facebook.png" border="0" alt="Facebook"></a></li>
<li><a href="#"><img src="img/icons/twitter.png" border="0" alt="Twitter"></a></li>
<li><a href="#"><img src="img/icons/digg.png" border="0" alt="Digg"></a></li>
<li><a href="#"><img src="img/icons/rss.png" border="0" alt="RSS"></a></li>
<li><a href="#"><img src="img/icons/vimeo.png" border="0" alt="Vimeo"></a></li>
</ul>
</section>
<section id="banner">
<div id="logo">
<a href="index.html" class="logo"></a>
</div>
<div id="advert">
<div class="advert-blank"><p>We see you have an ad-blocker. Turning it off will help keep us running!</p></div>
</div>
</section>
</div>
<nav>
<ul class="dropdown container">
<li><a href="index.html">Home</a></li>
<li><a href="#">Forums</a></li>
<li><a href="#" data-toggle="dropdown">Articles</a>
<ul class="dropdown-menu" role="menu" aria-labelledby="dLabel">
<li><a href="#">Nintendo</a></li>
<li><a href="#">PlayStation</a></li>
<li><a href="#">PC Gaming</a></li>
<li><a href="#">Xbox</a></li>
</ul></li>
<li><a href="#">Reviews</a></li>
<li><a href="#">Tutorials</a></li>
<li><a href="#">Resources</a></li>
<li><a href="#">About</a></li>
</ul>
</nav>
</header>
<div class="container">
<section id="content">
</section>
</div>
</div>
<script src="//code.jquery.com/jquery-2.1.1.min.js"></script>
<script src="js/bootstrap.min.js"></script>
<script src="js/custom.js"></script>
</body>
</html>
这里是一个jsFiddle
感谢您的时间。
答
问题是,导航栏中的两个ul
标签都将其位置设置为绝对位置,这会将它们从文档流中移出并离开工具栏而无法计算高度。
下面是一个例子:http://jsfiddle.net/q5b5wa9w/3/
我所做的只是浮左右的列表。
答
从来没有在这里回答过这个问题,所以很容易。但是你有你的头文件#toolbar> ul.info和头文件#toolbar ul.social是绝对定位的。当你将它们放在绝对位置时,你将从文档流中删除它。
我会删除一个clearfix配对的定位和使用花车像Seen here
浮法这两个上行的,一个左和其他权利(根据您的设计),并应用到的.cf包装容器。
答
变化下标头#toolbar填充规则为0px像这样:
header #toolbar {
background: #000;
border-radius: 5px;
border-width: 0px 1px 1px 1px;
border-style: solid;
border-color: #666;
padding: 0px;<-- this line here
position: relative;
}