我的目标是在.toggles(“HTML,CSS,JS,结果”)周围有一个方框,根据我的导师,我们应该设置一个边界右边,可以扩展并与周围的1px相遇黑色边框。是什么导致出现在每条垂直线上下的空间?
JSBIN:http://jsbin.com/qipuzubure/1/
(在创建这个jsbin时出现了一个新问题:当窗口收缩时,为什么内部div会自动折叠?)
body {
font-family: "HelveticaNeue-Light", "Helvetica Neue Light", "Helvetica Neue", Helvetica, Arial, "Lucida Grande", sans-serif;
font-weight: 300;
}
#menuBar {
width: 100%;
height: 2.5em;
display: table;
background-color: gray;
}
#logo,
#buttonDiv,
.toggles {
display: table-cell;
vertical-align: middle;
width: 33%;
}
.toggles {
width: 20% ;
}
#logo {
font-weight: bold;
font-size: 1em;
font-family: helvetica;
vertical-align: middle;
padding-left: 10px;
}
.toggles {
text-align: center;
border: 1px solid black;
padding-bottom: 1px;
}
.toggles ul {
padding: 0;
}
.toggles li {
list-style: none;
display: inline;
padding: 0 5px;
border-right: 1px solid black;
}
#buttonDiv {
text-align: right;
padding-right: 10px;
}
</style>
<div id="wrapper">
<div id="menuBar">
<div id="logo">CodePlayer</div>
<ul class="toggles">
<li>HTML</li>
<li>CSS</li>
<li>JS</li>
<li>Result</li>
</ul>
<div id="buttonDiv">
<button id="runButton">Run</button>
</div>
</div>
</div>
答案 0 :(得分:2)
1)顶部和底部边框是可见的,因为您使用display: table
显示菜单。
display: table
和display: table-cell
。
由于您正在创建菜单栏,因此您可以将display: inline-block
用于某些内部元素。这有助于您正确设置页面样式。
2)关于宽度的另一个问题并不是真正的错误,页面正在完全按照你要求它做的。中间部分保持33%的宽度,当前内容适合该区域的唯一方法是下降。
如果这样说,您可以编写规则来控制此场景中内容的变化。
将宽度应用于元素时要记住的一件事是,如果然后应用左边距或右边距(或填充),它可以抛弃宽度计算,并且可以获得与您期望的宽度不同的宽度。
最稳定的方法是将元素包装在容器中并设置该容器的宽度。
如果不了解您的示例,我无法提供明确的解决方案,但有一种方法是在#menuBar div上设置min-width:
。
我已加入JSFiddle进行演示。
答案 1 :(得分:1)
你的元素只占据那个空间。 &#39;身体&#39;周围有8px的保证金,所以如果你删除你的酒吧将占到页面的100%。
如果你想让你的classe切换占用更多,你需要设置一个高度值。
答案 2 :(得分:1)
我认为这就是你想要的:
只需更改后续CSS:
<强> CSS 强>
.toggles li {
margin:0%;
list-style: none;
display: table-cell; /* Or use display:inline-block; but it will destroy vertical alignment of text*/
vertical-align: middle;
height:35px; /*ADDED : You didn't specified the height*/
padding: 0 5px;
border-right: 1px solid black;
}