2 个侧边栏 - 内容的每一侧一个

2 Sidebars - one on each side of content

我知道这是一个常见的回答问题,但出于某种原因,我尝试过的其他 Whosebug 帖子都没有奏效。我想在我的网站上有两个侧边栏,主要内容的每一侧都有一个。

我试过使用向右浮动和向左浮动。块与内联块等...我不确定主要内容是否应该浮动。我使用的是最新的 google chrome 浏览器。

HTML:

<!-- Main Page Contents -->
<div id="contents">
    <div id="sidebar">
        <a href="link1.php"><div><p>link 1</p></div></a>
   </div>

    <div id="sidebar2">
        <a href="link2.php"><div><p>link 2</p></div></a>
    </div>

    <div id="mainContents"> 
        <div class="center-div" style="width: 700px;">
            <h1">This is some content</h1>
        </div>
        <div class="center-div" style="width: 900px;">
            <h1>More content</h1>
        </div>
    </div>
</div>

CSS:

 .center-div
 {
 margin: 0 auto;
 padding: 15px;
 background-color: red;

 }



#contents {
overflow: auto;
margin: auto;
margin-bottom: 10px;
width: 100%;
}

#sidebar {
position: fixed;
float: left;
width: 200;
margin: 5px;
margin-left: 15px;
padding: 5px;
top: 46px;
margin-top: 20px;

}

#sidebar2 {
position: fixed;
float: right;
width: 50px;
margin: 5px;
padding: 5px;
top: 46px;
margin-top: 20px;
}

#mainContents {
    float: right;
    width: calc(100% - 300px);
    margin: 0px;
    padding: 5px;
    padding-top: 20px;
}

两个侧边栏都出现在左侧的相同位置。我得到的最好的是 sidebar2 浮动在侧边栏的右侧,内容浮动在右侧。

您可以使用 flexbox 来完成此操作 fiddle:

而且我删除了不必要的 css。

 .center-div
 {
 margin: 0 auto;
 padding: 15px;
 background-color: red;

 }



#contents {
overflow: auto;
margin: auto;
margin-bottom: 10px;
width: 100%;
display:flex;
}

#sidebar {
width: 20%;
margin: 5px;
padding: 5px;
margin-top: 20px;

}

#sidebar2 {
width: 20%;
padding: 5px;
margin-top: 20px;
}

#mainContents {
    width: 60%;
    margin: 0px;
    padding-top: 20px;
}
<!-- Main Page Contents -->
<div id="contents">
    <div id="sidebar">
        <a href="link1.php"><div><p>link 1</p></div></a>
   </div>

    

    <div id="mainContents"> 
        <div class="center-div">
            <h1>This is some content</h1>
        </div>
        <div class="center-div" >
            <h1>More content</h1>
        </div>
    </div>
    <div id="sidebar2">
        <a href="link2.php"><div><p>link 2</p></div></a>
    </div>
</div>

注意: htmlcss 中有错误,我已更正:

您的代码几乎是正确的,只需删除 position:fixed 并考虑到您的屏幕为 100%

并提供适当的宽度

.center-div
 {
 margin: 0 auto;
 padding: 15px;
 background-color: red;

 }



#contents {
overflow: auto;
margin: auto;
margin-bottom: 10px;
width: 100%;
}

#sidebar {

float: left;
width: 15%;
margin:1%;

padding: 5px;
margin-top: 20px;

}

#sidebar2 {

float:right;
width: 15%;
margin: 1%;
padding: 5px;
top: 46px;
margin-top: 20px;
}

#mainContents {
    float: left;
    width:59%;
    margin: 0px;
    padding: 5px;
    padding-top: 20px;
}
<!-- Main Page Contents -->
<div id="contents">
    <div id="sidebar">
        <a href="link1.php"><div><p>link 1</p></div></a>
   </div>
    <div id="mainContents"> 
        <div class="center-div" >
            <h1>This is some content</h1>
        </div>
        <div class="center-div" >
            <h1>More content</h1>
        </div>
    </div>
    <div id="sidebar2">
        <a href="link2.php"><div><p>link 2</p></div></a>
    </div>


</div>