• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com专业计算机教程网站
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • html/xhtml
  • html5
  • CSS
  • XML/XSLT
  • Dreamweaver教程
  • Frontpage教程
  • 心得技巧
  • bootstrap
  • vue
  • AngularJS
  • HBuilder教程
  • css3
  • 浏览器兼容
  • div/css
  • 网页编辑器
  • axure
您的位置:首页 > 网页设计 >CSS > CSS两列布局实现方式总结

CSS两列布局实现方式总结

作者:theqwang 字体:[增加 减小] 来源:互联网 时间:2017-08-06

本文主要包含CSS,两列布局等相关知识,theqwang 希望在学习及工作中可以帮助到您

两列布局大概是最经典的一种网页布局方式了,本博客就是采用的这种布局。两列布局中,以主列(main)是自适应宽度,子列(sidebar)是固定宽度的情形最为常见。
今天就来好好探讨一下如何实现这种定宽+自适应的两列布局。

1. absolute + margin 方式

首先想到的是利用 absolute + margin 的方式实现。先看看代码:

  1. <div class="container">  
  2.     <div class="sidebar">子列</div>  
  3.     <div class="main">主列</div>  
  4. </div>  
  1. .container {   
  2.  position: relative;   
  3. }   
  4. .sidebar {   
  5.  position: absolute;   
  6.  top: 0;   
  7.  left: 0;   
  8.  width: 200px;   
  9.  height: 300px;   
  10.  background-color: rgba(255, 0, 0, .5);   
  11. }   
  12. .main {   
  13.  height: 300px;   
  14.  margin-left: 210px;   
  15.  background-color: rgba(0, 255, 0, .5);   
  16. }  

该方式利用 position 让 sidebar 列脱离文档流,然后通过 main 列的 margin-left 移除被 sidebar 列覆盖的部分。如此,我们就实现了定宽 + 自适应的两列布局。

(1)列顺序调整

在不修改 HTML 的情况下,只需简单修改 CSS,我们可以让左右两列顺序互换,来看代码:

  1. .sidebar {   
  2.  position: absolute;   
  3.  top: 0;   
  4.  rightright: 0;   
  5. }   
  6. .main {   
  7.  margin-right: 210px;   
  8. }   

(2)主内容列优先显示

让我们考虑的更完美一点,可不可以把 main 列放 sidebar 列 的前面,使主要内容优先加载渲染? Let us try!

  1. <div class="container">  
  2.     <div class="main">主列</div>  
  3.  <div class="sidebar">子列</div>  
  4. </div>  

做上面的简单调整即可,CSS不需要任何修改!

(3)问题所在

虽然这种方式的优点很多,但是却存在一个致命缺点。因为 sidebar 列脱离了文档流,当 sidebar 列比 main 列高时会覆盖后面的布局:问题demo。
如果在 container 容器上 添加 overflow:hidden 就会使 sidebar 溢出部分被裁减。在这种布局方式下,这个问题确实没有有效的解决办法。

2. float + margin 方式

然后想到的就是 float + margin 来实现两列布局,首先实现左栏定宽,主内容自适应的两栏布局。代码如下:

  1. <div class="sidebar">子列</div

您可能想查找下面的文章:

  • css小技巧
  • 各大网站CSS初始化代码
  • css权重问题
  • CSS实现鼠标上移图标旋转效果
  • 使用CSS3制作一个简单的进度条(demo)
  • 用纯CSS实现饼状Loading等待图效果
  • 利用CSS3伪元素实现逐渐发光的方格边框
  • CSS3实现内凹圆角的实例代码
  • 利用HTML5+CSS3实现3D转换效果实例详解
  • css3+伪元素实现鼠标移入时下划线向两边展开的效果

相关文章

  • 2017-08-06用css控制字符串的输出长度超出时隐藏
  • 2017-08-06关于CSS Padding那些你意想不到的用法示例
  • 2018-01-28CSS选择器学习
  • 2017-08-06CSS伪类
  • 2017-08-06css中float left与float right的使用说明
  • 2017-08-06交互组件微创新 让网站用户体验增色的方法
  • 2017-08-06无需JS和jQuery代码实现CSS3鼠标浮动放大图片
  • 2017-08-06CSS中使用expression完美设置页面最小宽度(兼容ie)
  • 2017-08-06你必须要知道的CSS特殊性概念
  • 2017-08-06HTML5时代CSS设置漂亮字体取代图片

文章分类

  • html/xhtml
  • html5
  • CSS
  • XML/XSLT
  • Dreamweaver教程
  • Frontpage教程
  • 心得技巧
  • bootstrap
  • vue
  • AngularJS
  • HBuilder教程
  • css3
  • 浏览器兼容
  • div/css
  • 网页编辑器
  • axure

最近更新的内容

    • 不同CSS布局实现与文字鼠标选择的可用性
    • CSS hack 介绍及速查对照表
    • 将一个绝对定位的div水平垂直居中对齐
    • 使用Table,DIV,XHTML三者制作网页的区别.
    • 创造100% 自适应css布局的行之有效的方法
    • css background 背景图的设置方法
    • css Sub-Pixel Bug?!
    • CSS伪类和伪元素的区别详解
    • IE中对于stylesheet、样式规则的个数限制
    • CSS3 Media Queries详细介绍和使用实例

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有