嗨,大家好,我又来了,今天主要是分享下我们在css中常用的布局方式。可能在面试过程中也会出现哦,注意听哦
主要是下面几种

  • 等高布局
  • 三栏布局
  • 两栏布局
  • 双飞翼布局
  • 圣杯布局

1. 等高布局

这里来讲解下等高布局的实现方式,如果有我漏写的希望大家可以在留言中告诉我,相互学习。

1.1 table-cell 实现方式

1.1.1 上“效果”

1.1.2 上“代码”

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8" /><meta http-equiv="X-UA-Compatible" content="IE=edge" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><title>等高布局实现 - table-cell</title><style>.left,.middle,.right {width: 200px;display: table-cell;/* display: table-cell 默认就是等高布局 */}.left {height: 300px;}.left,.right {background: red;}.middle {background: blue;}.outer {display: table;}</style></head><body><div class="outer"><div class="left"></div><div class="middle"></div><div class="right"></div></div></body>
</html>

使用display属性:table-cell 天生具备等高的效果。所以我们可以利用这种方式进行实现

1.2 使用padding以及margin相抵方式

1.1.1 上“效果”

1.1.2 上“代码”

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8" /><meta http-equiv="X-UA-Compatible" content="IE=edge" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><title>等高布局 - padding,margin</title><style>.outer {overflow: hidden;}.left,.right,.middle {float: left;padding-bottom: 9999px;margin-bottom: -9999px;}.left,.right {width: 25%;background: red;}.middle {width: 50%;background: yellow;}</style></head><body><div class="outer"><div class="left"><div>11</div><div>22</div></div><div class="middle">1</div><div class="right">2</div></div></body>
</html>

这里我们可以利用padding-bottom, margin-bottom 相抵的方式实现等高布局,可以理解为这是一种假等高布局

2. 三栏布局

2.1 利用BFC不跟浮动元素重叠方式

2.1.1 上“效果”

2.1.2 上“代码”

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8" /><meta http-equiv="X-UA-Compatible" content="IE=edge" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><title>通过BFC来实现</title><style>* {padding: 0;margin: 0;}html, body {height: 100%;}.outer {height: 100%;}.left {width: 200px;height: 100%;float: left;background: red;}.right {width: 200px;height: 100%;float: left;background: green;}.middle {height: 100%;background: blue;overflow: hidden;}</style></head><body><div class="outer"><div class="left">left</div><div class="right">right</div><div class="middle">middle</div></div></body>
</html>

2.2 flex实现三栏布局

2.2.1 上“效果”

2.2.2 上“代码”

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8" /><meta http-equiv="X-UA-Compatible" content="IE=edge" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><title>flex实现三栏布局</title><style>* {padding: 0;margin: 0;}.outer {height: 500px;display: flex;justify-content: space-between;}.left,.right,.middle {height: 100%;}.left,.right {width: 200px;background: red;}.middle {flex: 1;background: blue;}</style></head><body><div class="outer"><div class="left">left</div><div class="middle">middle</div><div class="right">right</div></div></body>
</html>

利用flex:1的特性来实现两边固定宽,中间子实现的三栏布局

2.3 利用定位方式

2.3.1 上“效果”

2.3.2 上“代码”

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8" /><meta http-equiv="X-UA-Compatible" content="IE=edge" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><title>position实现三栏布局</title><style>.left {background: red;left: 0;top: 0;position: absolute;height: 100%;width: 200px;}.right {background: red;right: 0;position: absolute;top: 0;height: 100%;width: 200px;}.middle {background: blue;left: 200px;top: 0;right: 200px;position: absolute;height: 100%;}</style></head><body><div class="outer"><div class="left">left</div><div class="middle">middle</div><div class="right">right</div></div></body>
</html>

其实就是利用中间定位的方式,中间定位的原则是两边的宽度

2.4 双飞翼布局

开始划重点了!!! 注意了

2.4.1 上“效果”

2.4.2 上“代码”

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8" /><meta http-equiv="X-UA-Compatible" content="IE=edge" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><title>双飞翼</title><style>header {height: 200px;background: red;}.body {overflow: hidden;}.middle,.left,.right {float: left;height: 200px;}.middle {width: 100%;}.inner {background: blue;margin: 0 200px;height: 200px;}.left {background: orange;width: 180px;position: relative;margin-left: -100%;}.right {background: green;width: 180px;margin-left: -180px;}</style></head><body><header>header</header><div class="body"><div class="middle"><div class="inner">inner</div></div><div class="left">left</div><div class="right">right</div></div></body>
</html>

细细的品味代码,其实就是利用margin 来实现元素移动

2.5 圣杯布局

开始划重点了!!! 注意了

2.5.1 上“效果”

2.5.2 上“代码”

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8" /><meta http-equiv="X-UA-Compatible" content="IE=edge" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><title>圣杯布局</title><style>header {background: red;}header,footer {height: 100px;}footer {background: green;}.body {padding: 0 200px;overflow: hidden;}.middle {background: orange;float: left;width: 100%;height: 200px;}.left {background: orchid;position: relative;left: -200px;margin-left: -100%;}.right {background: powderblue;position: relative;margin-left: -180px;left: 200px;}.left,.right {height: 200px;width: 180px;float: left;}</style></head><body><header>header</header><div class="body"><div class="middle">middle</div><div class="left">left</div><div class="right">right</div></div><footer>footer</footer></body>
</html>

希望有缘人在看代码的过程中可以将双飞翼以及圣杯布局同时看,可能收获会比较大

3. 两栏布局

3.1 利用BFC实现

3.1.1 上“效果”

3.1.2 上“代码”

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8" /><meta http-equiv="X-UA-Compatible" content="IE=edge" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><title>BFC实现两栏布局</title><style>.left {float: left;width: 200px;height: 500px;background: blue;}.right {height: 500px;background: red;overflow: hidden;}</style></head><body><div class="left"></div><div class="right"></div></body>
</html>

3.2 利用flex实现

3.2.1 上“效果”

3.2.2 上“代码”

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8" /><meta http-equiv="X-UA-Compatible" content="IE=edge" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><title>flex两栏布局</title><style>.outer {width: 500px;height: 600px;display: flex;}.inner1 {flex: 1;background: red;}.inner2 {flex: 1;background: blue;}</style></head><body><div class="outer"><div class="inner1"></div><div class="inner2"></div></div></body>
</html>

3.3 使用定位方式

3.3.1 上“效果”

3.3.2 上“代码”

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8" /><meta http-equiv="X-UA-Compatible" content="IE=edge" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><title>经典两栏布局 -- 定位</title><style>.left {width: 200px;position: absolute;top: 0;left: 0;bottom: 0;background: red;}.right {position: absolute;left: 200px;top: 0;bottom: 0;right: 0;background: blue;}</style></head><body><div class="outer"><div class="left"></div><div class="right"></div></div></body>
</html>

3.4 使用margin-left方式

3.4.1 上“效果”

3.4.2 上“代码”

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8" /><meta http-equiv="X-UA-Compatible" content="IE=edge" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><title>float + margin实现布局</title><style>* {padding: 0;margin: 0;}html,body {height: 100%;}.outer {height: 100%;}.left {width: 200px;height: 100%;background: red;float: left;}.right {margin-left: 200px;height: 100%;background: blue;}</style></head><body><div class="outer"><div class="left">1</div><div class="right">2</div></div></body>
</html>

4. 结束

其实上述实例基本都是代码以及截图,因为css基本都是熟练知识都是死知识,并没有什么原理可以讲解。唯一可能需要理解的就是BFC,什么是BFC,BFC的存在可以解决哪些事情就完了,如果各位想看源码可以参考下面地址,我的GitHub有很多分栏,其实还有很多js重写原理,也希望大家多多star哦

GitHub源码地址

来看看最全的“css布局”喽相关推荐

  1. 一篇全面的CSS布局学习指南 [译]

    本文来自SmashingMagazine上一篇非常不错的CSS布局综述类文章,汇总了各类CSS布局技术,并提供了这些技术深度阅读的链接.故而翻译过来和大家分享,原文链接在文末,感谢作者Rachel A ...

  2. html把div分成两栏,div+css制作上中下,中间两列的全屏自适应布局

    制作自适应布局的网页对初学者是个难点,今天我们以最常见的上中下结构,中间又分为两列的全屏自适应布局为例,教大家如何制作自适应布局网页. 上中下结构,中间又分为两列的全屏自适应布局HTML代码: 上中下 ...

  3. CSS布局说——可能是最全的

    前言 现在,我们被称为前端工程师.然而,早年给我们的称呼却是页面仔.或许是职责越来越大,整体的前端井喷式的发展,使我们只关注了js,而疏远了css和html. 其实,我们可能经常在聊组件化,咋地咋地. ...

  4. [S3-E429]CSS布局说——可能是最全的

    本文:[第3章第428回] 文章底部可跳转至 目录 查看更多文章 前言 现在,我们被称为前端工程师.然而,早年给我们的称呼却是页面仔.或许是职责越来越大,整体的前端井喷式的发展,使我们只关注了js,而 ...

  5. 理解 CSS 布局和块级格式上下文

    本文的目的是介绍一些概念来帮你增强 CSS 码力.如标题所示这篇文章主要是讲块级格式上下文BFCBlock Formatting Context.你可能没听过这个术语但只要你曾经使用 过CSS 布局你 ...

  6. CSS 布局:40个教程、技巧、例子和最佳实践

    前言: 布局是WEB开发一个重要的课题,进入XHTML/CSS后,使用TABLE布局的方式逐渐淡出,CSS布局以众多优点成为主流,本文将介绍40个基于CSS的web布局的资源和教程.文章的出处在htt ...

  7. bootstrap 垂直居中 布局_给你一份详细的CSS布局指南,请查收

    作者:catboy 文章来源:http://t.cn/A6wtKzip 在我们前端开发过程中,写css(包括sass, less, stylus这样的预处理器)进行设计稿的样式还原是一项重要的工作,而 ...

  8. CSS布局奇技淫巧:各种居中

    CSS布局奇技淫巧:各种居中 2017-08-23 无双 前端开发 作者:无双 链接:www.cnblogs.com/2050/p/3392803.html 居中是我们使用css来布局时常遇到的情况. ...

  9. CSS 布局与“仓库管理”的关系

    上周写了一个文章不会CSS布局可能是"物理"不好,并在我们团队里做了一个分享.大家普遍反应的问题是,抛出的概念太多有点不好理解.这边重新整理思路和精简概念,再战一次. 当下已经有很 ...

最新文章

  1. 求助:我有一辆机器人小车,怎么让它跑起来,还会避障、目标跟踪、路径规划?...
  2. 基于JSP实现校园二手交易平台
  3. 如何实现一个权限管理系统?(附源码)
  4. 索引使用原则-联合索引最左匹配
  5. 正则表达式获取一个文本域中每一行的值并且去掉前后空格
  6. 手机微商城可以安装到虚拟服务器,安装使用:百家CMS微商城系统安装教程(图文说明)...
  7. 纳什均衡定义、举例、分类
  8. 身为一名合格root管理员的基本防范措施 Linux系统安全及应用
  9. 基于人体感应模块的驱鸟器设计
  10. ArcGIS栅格按照象元大小生成矢量的方法
  11. 测试中遇到不可重现的Bug处理办法
  12. 【甄选靶场】Vulnhub百个项目渗透——项目十一:skytower-1(代理登录ssh,绕过shell禁用)
  13. UIPresentationController 教程:入门
  14. 如何判断一个项目的可行性?
  15. ISL79987的多路交织方法
  16. 基于STM32的汇编程序
  17. 俄罗斯 Yandex 浏览器:比微软 Edge 和谷歌 Chrome 还香
  18. Javamysql语法转化oracle_数据库移植之oracle To mysql(java)
  19. 异星工厂mod位置linux,异星工厂存档在哪里
  20. “保护知识产权 激励创新创造”,深圳发布数字文化知识产权保护计划

热门文章

  1. Spring Init Destory
  2. MySQL8.0 之SQL(DQL)单表、多表查询(详细回顾篇)
  3. 关于各类技术外包项目的那些事儿
  4. 用mac系统怎么连宽带连接服务器吗,苹果电脑怎么连宽带_MAC系统怎么连接有线宽带-win7之家...
  5. 无线路由的四种加密方式
  6. Open3D 曲面重建
  7. 古诗文欣赏-春夜宴桃李园序
  8. 超硬核!程序员10种副业赚钱之道,实现月收入增加20k!
  9. JavaScript脚本语言基础(三)
  10. 《Web安全之机器学习入门》一 3.2 数据集