我有以下问题:
我想创建一个html页面,#sidebar
跨越一个恒定的27px,#content
跨越屏幕的剩余部分。 #content
分为两个区域,分为40% - 60%。
<html>
<body>
<div id="sidebar">
</div>
<div id="content">
<div id="forty-percent">
</div>
<div id="sixty-percent">
</div>
</div>
</body>
</html>
我试图制作以下css:
#sidebar{
width:27px;
}
#content{
position:absolute;
padding-left:27px;
width:100%;
}
但是我不能将内容分成40%-60%,因为百分比是根据#content
的宽度计算的,而不是从其内部区域计算的。
我做错了什么?你能帮忙吗?
更新:
NOT工作版的演示:
http://jsbin.com/iseqon/1/edit
理想情况下,虚线框应该并排放置在蓝色框内。
答案 0 :(得分:2)
你需要这个来浮动#sidebar
并给margin-left
一个#content
,并且还浮动两个内盒,这样它们可以并排坐着......
#sidebar {
width:27px;
float:left;
}
#content {
margin-left:27px;
overflow:auto;
}
#forty-percent {
width:40%;
float:left;
}
#sixty-percent {
width:60%;
float:left;
}
并且不在实际的id
演示 http://jsfiddle.net/gaby/8a7CN/
(您在http://jsbin.com/iseqon/4/edit处的固定jsbin演示,您需要记住边框会增加宽度,因此无法很好地使用百分比)
答案 1 :(得分:2)
这可能更适合您的需求。如果你想更好地控制你的#sidebar&amp; #content vertical alignment,你必须使用inline-block来获得一个只有CSS的解决方案。
您可以在此处查看:http://codepen.io/jpsirois/pen/dvbmEy
* {
/* This prevent padding to be added on defined width */
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
body {
font-size: 0; /* Need to be set to 0 to properly use inline-block here */
color: white; /* For a better preview purpose only */
}
#sidebar,
#content {
display: inline-block; /* Allow vertical-align control (float didn’t) */
font-size: 16px; /* Reset font-size to normal */
vertical-align: middle; /* Demo of vertical-alignement */
}
#sidebar {
width: 27px;
background: darkred;
height: 50px; /* For a better preview purpose only */
margin-right: -27px; /* This allow #content to be inlined aside */
}
#content {
font-size: 0; /* Need to be set to 0 to properly use inline-block here */
width: 100%;
padding-left: 27px;
}
#forty-percent,
#sixty-percent {
height: 100px;/* For a better preview purpose only */
display: inline-block;
font-size: 16px; /* Reset font-size to normal */
}
#forty-percent {
width: 40%;
background: darkgreen;
}
#sixty-percent {
width: 60%;
background: darkblue;
}
答案 2 :(得分:1)
如何让父div成为相对的,然后将div放在右边或左边的float中,并在容器内放置绝对位置。当父容器是pos relative并且child是pos绝对时,子容器相对于它们的容器。换句话说,类似的东西(未经测试但应该给你正确的想法)
#wrapper {
position:relative;
width:100%;
margin:50px;
}
#leftCol {
width:60%;
background-color:yellow;
}
#rightCol {
width:40%;
position:absolute;
right:0px;
top:0px;
height:100px;
background-color:red;
}
</style>
<div id='wrapper'>
<div='leftCol'>
</div>
<div id='rightCol'>
</div>
</div>
答案 3 :(得分:-2)
I am using your HTML only change the CSS.
My CSS is
#sidebar
{
width:27px;
min-width:27px;
float:left;
}
#content
{
float:right;
width:100%-28px;
min-width:100%-28px;
}
#forty-percent
{
width:40%;
float:left;
}
#sixty-percent
{
width:60%;
float:right;
}
Hope this will help you.Thanks.