繁体   English   中英

尽管有CSS,侧边栏仍未正确定位

[英]Sidebar not positioned properly despite CSS

我开了一个博客 ,当我在侧边栏遇到问题时,正在为其重新设计布局。

我已经尝试了所有内容,包括将侧栏移动到内容上方,更改位置等,但无济于事。

 body #sidebar { width: 25%; margin-top: 15px; padding-right: 20px; padding-top: 20px; padding-left: 30px; padding-bottom: 20px; margin-bottom: 20px; margin-left: 15px; float: left; clear: both; position: relative; } 
 <div id="main"> <p>Some text</p> </div> <div id="sidebar"> <p>Some text</p> </div> 

我觉得这一定要小。 我想念什么?

编辑:您的代码无法正常工作的原因是p标签是一个块级元素。 因此,它占据了屏幕的整个宽度。 (这里红色是#main,黑色是#sidebar)

在此处输入图片说明

#sidebar也在#main之后 由于这两个原因,您的float:left无法按预期的方式工作。 这就是为什么您有两种解决问题的方法。 #main之前,你要么写#sidebar或您指定显示:在您的#main inline-block的

在此处输入图片说明

添加显示:inline-block使元素仅占用所需的空间量。

这是代码

  body #sidebar { width: 25%; margin-top: 15px; padding-right: 20px; padding-top: 20px; padding-left: 30px; padding-bottom: 20px; margin-bottom: 20px; margin-left: 15px; float: left; clear: both; position: relative; } #main{ display: inline-block; } 
 <div id = "main"> <p>Main</p> </div> <div id = "sidebar"> <p>Some text</p> </div> 

您的侧边栏应该是第一个,然后是div,或使用以下代码段:

#main {
    width:75%;
    float: right;
}

#sidebar {
    overflow:hidden;
}

尝试此代码。 HTML

<body>
<div class="Section">
<div id="sidebar"> 
    <p>Some text</p>
</div>
<div id="main">
    <p>Some text</p>
</div>


</div>

</body>

CSS

#Section{

  width:100%;

}
#main{

  width:75%;
  float:right;
}

#sidebar {
    width: 25%;
    float: left;
    clear: both;
    position: relative;    
}

这是快速解决方案,但是我不确定为什么您要花大量篇幅重新发明轮子。

您是否知道https://getbootstrap.comhttps://startbootstrap.com/,并且我认为此页面已经https://blackrockdigital.github.io/startbootstrap-portfolio-item/具有您的期望。 查找他们的许可证并使用它。

顺便说一句,我从您的页面源代码中获取了以下代码

body #sidebar {
    background-color: #fff;
    /*padding-top: 5px;
    padding-bottom: 5px;
    padding-left: 5px;
    padding-right: 15px;
    margin-left: 25px;
    margin-right: 25px;
    margin-bottom: 20px;*/

    border: 1px solid #975FB4;
    width:25%;
    float:left;

    }


body #main {
    /*margin-top: 20px;
    margin-left: 20px;
    margin-bottom: 20px;*/
    padding:10px;
    height: auto;
      width: 75%;
}

<div id = "sidebar"> 
<p>Some text</p>
</div>

<div id = "main">
<p>Some text</p>
</div>

您应该考虑将div嵌套在“包装器”中。 这有利于保持一致性,并使所有div保持原状。 使用display inline block和对div重新排序将满足您的需求,但是真正具有清晰的html和css结构将为您节省日后的工作量。

我举了一个简短的例子,说明我认为更多是基于链接的尝试。 https://codepen.io/morganfens/pen/gxaQVJ

HTML

<div id="sidebar"> 
    <p>I'm a sidebar</p>
</div>

<div id="main">
    <p>Main Content Goes Here</p>
</div>

</div>

CSS

#sidebar {
    width: 25%;
    padding-top:15px;
    padding-bottom:15px;
    margin-bottom: 15px;
    display:inline-block;
    text-align: left;
}

#main{
  display:inline-block;
  padding-top:15px;
  padding-bottom:15px;
  width:70%;
  text-align: left;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM