Css 如何使用;“自动宽度”;及;浮动;对齐div?
我希望在页面左侧有一个容器(带有一些文本),可以根据可用空间进行自我调整,在右侧有两个侧栏(我正在使用Wordpress)。 (这两个侧栏与Css 如何使用;“自动宽度”;及;浮动;对齐div?,css,width,css-float,Css,Width,Css Float,我希望在页面左侧有一个容器(带有一些文本),可以根据可用空间进行自我调整,在右侧有两个侧栏(我正在使用Wordpress)。 (这两个侧栏与float配合得很好)因此我尝试在容器上使用width:auto 但它不能适应剩余的可用空间(占用所有页面宽度)。如果我将宽度设置为70%,它将适合索引页上的空间,但是如果我单击一篇文章,我只剩下一个侧边栏,因此文本和侧边栏之间有一个空格 你知道怎么解决这个问题吗 #container { /* the text */ overflow:auto;
float
配合得很好)因此我尝试在容器上使用width:auto
但它不能适应剩余的可用空间(占用所有页面宽度)。如果我将宽度设置为70%,它将适合索引页上的空间,但是如果我单击一篇文章,我只剩下一个侧边栏,因此文本和侧边栏之间有一个空格
你知道怎么解决这个问题吗
#container { /* the text */
overflow:auto;
width:auto;
position:relative;
float:left;
}
#primary { /* first sidebar */
position:relative;
border:1px solid red;
float:right;
width:250px;
}
#second { /* second sidebar */
border:1px solid red;
background:white;
width:250px;
height:auto;
float:right;
margin-left:15px;
}
谢谢
编辑: 假设我用这个代替wordpress的边栏:我仍然无法使它工作,有人能看看这个简单的代码吗?有两个盒子:绿色的和红色的
<!DOCTYPE>
<html>
<head>
<meta charset="UTF-8" />
</head>
<body>
<div style="position:relative; width:700px; margin:0 auto;">
<div style="width:auto; border:1px solid green;">i would like to have a container (with some text) on the left of the page, that adapts itself with the space available, and 2 sidebars following on the right (i'm using Wordpress). (The 2 sidebars work fine with float. ) So i tried width:auto on the container.
But it does not adapt itself with the rest of the space available (it takes all the page width). If i set the width to 70%, it fits the space on the index page, but if i click on an article, i only have 1 sidebar left, so there is a blank space between the text and the sidebar.</div>
<div style="width:20%; float:right; border:1px solid red;">blablabla</div>
</div>
</body>
</html>
我想在页面左侧有一个容器(带有一些文本),可以根据可用空间进行调整,在右侧有两个侧栏(我使用的是Wordpress)。(这两个边栏与float配合得很好。)所以我在容器上尝试了width:auto。
但它不能适应剩余的可用空间(占用所有页面宽度)。如果我将宽度设置为70%,它将适合索引页上的空间,但是如果我单击一篇文章,我只剩下一个侧边栏,因此文本和侧边栏之间有一个空格。
喋喋不休
A width:auto是默认值,因此它不会执行DIV作为标准的操作之外的任何操作,即填充可用宽度,因为它是块级元素。当你浮动它时,它会改变,它会包装它的内容,所以可以是最大宽度的任何宽度
我认为你遇到的麻烦是混合百分比宽度和固定宽度。我可以看到你想做什么——有一个固定宽度的侧边栏(或两个),页面的其余部分是灵活的。在基于表格的布局时代,这样做真的很容易,但我们不要去那里
听起来你想要一个流动的布局,但是有两个固定的列。也许值得一读这篇文章,看看是否有什么适合您的做法:好的,我发现了:将文本放在末尾,使用overflow:hidden和auto,然后在右边的小容器上浮动,谢谢您的回答。在父div上使用display:table。然后在子div上使用display:table cell。它们将以表格中的方式对齐
#container { /* the text */
overflow:auto;
width:auto;
position:relative;
// float:left;
display: table-cell;
vertical-align:top;
}
#primary { /* first sidebar */
position:relative;
border:1px solid red;
// float:right;
width:250px;
vertical-align:top;
}
#second { /* second sidebar */
border:1px solid red;
background:white;
width:250px;
height:auto;
// float:right;
margin-left:15px;
display: table-cell;
vertical-align:top;
}
一个非常简单的方法是编辑文章模板,这样当只有一个侧栏时,容器就有了一个特殊的CSS。@OptimuScime:谢谢,你能更具体一点吗?我应该在html中使用“style=”属性吗?它会覆盖css文件吗?两个侧栏在你的容器内吗?@Paul:文章有一个特殊的模板。例如,如果将类添加到body中,如
,则可以在其中编写类似body.onesidebar#container
的内容CSS@Jack:嗨,杰克,外面没有,我在上面编辑了我的帖子,也许你可以看看?多谢了,不过最近我通常会推荐一种基于网格系统的响应式布局。不同大小的弹性布局适用于不同的设备。谢谢你的回答,它不会改变任何东西,每个侧边栏上有20%,容器上有宽度:自动,你还有其他想法吗?如果你坚持所有百分比布局,那么你会做一些类似容器:60%侧边栏1:20%侧边栏2:20%的事情。宽度:自动不会为您做任何事情,因为它并不意味着“自动填充剩余空间”。这会导致容器填满整个100%的宽度,并将边栏推到其下方。感谢howard10的帮助,我对css非常陌生,你能看看我在上面第一篇文章中的编辑吗?我用一个简单的例子编辑了它。。。也许你会有答案?谢谢