CSS 两栏布局

前端7班+余愿

两栏布局指的是,页面分为三部分,头部、中间、尾部。而中间部分又分为两部分,侧边栏和主要内容部分。侧边栏可以在左边,也可以在右边。如何实现这个效果呢,给头部和尾部都设一个高度,给中间部分的侧边栏和主要内容也设一个相同的高度,且给侧边栏设置一个宽度。将侧边栏设置为浮动,浮动到左边还是右边根据需求来定。如果设置到左边,样式如下所示:

Paste_Image.png

展示效果如下:

Paste_Image.png

这个时候,侧边栏是在左边的。而如果侧边栏和main部分都没有设置高度,则会出现以下情况:

Paste_Image.png

因为侧边栏是向左浮动的,右边主要内容部分的文字则会围绕着侧边栏。要解决这个问题,有2种办法。
第1种,给main加一个overflow:auto。原理是,给main加一个overflow:auto的话,main就会形成bfc,自成一派规则。旁边浮动元素就不会对main里面的元素产生影响。
第2种,利用浮动和负边距。让main也浮动,同时给侧边栏设置负边距。(这里的前提是,在文档流中,将main的代码放在侧边栏的前面。)但是在这种情况下,侧边栏还是会挡住main,这时候给包裹侧边栏和main的容器设置一个padding-left:200px。然后给侧边栏设置一个相对定位position:relative和left:-200px。这时候,侧边栏就不会挡住main了。

Paste_Image.png

效果如下:

Paste_Image.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 工作中需要实现下图这种效果: 搜索框宽度随屏幕动态变化,搜索按钮宽度固定。 这其实是经典的两栏布局问题,可以通过a...
    独爱一乐拉面阅读 226评论 0 0
  • 实现左侧固定,右侧自适应。思路,布局最关键的是让block元素并排排列,简单用float就行。之后就是画两个矩形就...
    鸭梨山大哎阅读 296评论 0 1
  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,825评论 1 92
  • 前言 现在,我们被称为前端工程师。然而,早年给我们的称呼却是页面仔。或许是职责越来越大,整体的前端井喷式的发展,使...
    Calvin李阅读 517评论 0 0
  • 一、使用负margin形成三栏布局的条件 三栏在html中的排列顺序为:中间栏、左边栏、右边栏(中间栏作为主要内容...
    __Qiao阅读 439评论 0 1