当前位置: 首页 > news >正文

三列布局

介绍几种左中右布局,左右定宽,中间自适应,扩展阅读可搜索关键字:圣杯布局,双飞翼布局

注:建议所有布局都要有个包裹container并设置min-width(或width)等于设计稿所给尺寸,防止浏览器尺寸变化造成样式混乱。另,简易布局为笔者根据经验所写,如有不妥的地方欢迎指导修改。

效果图:

对比:

 
优点
缺点
备注
圣杯

1.有效利用外层包裹结构

2.中间部分优先渲染

1.代码量最多

2.因外包裹涉及到padding,所以要注意box-sizing:border-box时对整体宽度造成的印象

虽代码量较多,但是较双飞翼结构简单。在实际开发当中考虑到子元素的绝对定位问题,通常会给外包裹添加position:relative。因此,这多余出的代码量也就不算什么了。

双飞翼

1.不依赖外层包裹

2.中间部分优先渲染

main需要再嵌套一层左右结构比较清晰,较容易理解。但是由于中间多了一层子元素,使得结构复杂了一层。可视情况而定。
简易

不依赖外层包裹

中间部分最后渲染因为不需要优先渲染中间部分,所以限制就少,因此也是三者中代码量最少的。如无特别需要,平时开发利用此布局即可。

代码:

圣杯

html:

<div class="grail-container">
    <div class="grail-main"></div>
    <div class="grail-left"></div>
    <div class="grail-right"></div>
</div>

css:

.grail-container { padding: 0 220px 0 230px; }
.grail-main { float: left; width: 100%; }
.grail-left { float: left; position: relative; width: 230px; margin-left: -100%; left: -230px; }
.grail-right { float: left; position: relative; width: 220px; margin-left: -220px; right: -220px; }

 

双飞翼

html:

<div class="wing-container">
    <div class="wing-main">
        <div class="wing-submain"></div>
    </div>
    <div class="wing-left"></div>
    <div class="wing-right"></div>
</div>

css:

.wing-container {}
.wing-main { float: left; width: 100%; }
.wing-submain { margin: 0 220px 0 230px; }
.wing-left { float: left; width: 230px; margin-left: -100%; }
.wing-right { float: left; width: 220px; margin-left: -220px; }

简易布局

html:

<div class="diy-container">
    <div class="diy-left"></div>
    <div class="diy-right"></div>
    <div class="diy-main"></div>
</div>

css:

.diy-container{}
.diy-left{float: left; width: 230px;}
.diy-main{margin: 0 220px 0 230px;}
.diy-right{float: right; width: 220px;}

转载于:https://www.cnblogs.com/coder-zyz/p/6749341.html

相关文章:

  • ActFramework r1.2.0 带来的新特性
  • p2p网贷3种运营模式
  • [转][译] Closures in Lua - Lua中的闭包
  • MyBatis介绍和架构
  • JS 创建对象的5种写法
  • python之转义字符(学习笔记三)
  • 1015. 德才论 (25)
  • atitit. groupby linq的实现(1)-----linq框架选型 java .net php
  • Linux下安装MySQLdb模块(Python)
  • LWIP移植
  • G-Code 详解
  • umask值与Linux中文件和目录权限的关系
  • 2017-4-28 ListView控件
  • Vue2 第一天学习
  • 《Haskell趣学指南》—— 第2章,第2.2节Haskell的常见类型
  • Docker入门(二) - Dockerfile
  • HTTP那些事
  • Linux Process Manage
  • MySQL QA
  • Rancher如何对接Ceph-RBD块存储
  • React Native移动开发实战-3-实现页面间的数据传递
  • seaborn 安装成功 + ImportError: DLL load failed: 找不到指定的模块 问题解决
  • VirtualBox 安装过程中出现 Running VMs found 错误的解决过程
  • 持续集成与持续部署宝典Part 2:创建持续集成流水线
  • 基于阿里云移动推送的移动应用推送模式最佳实践
  • 解决iview多表头动态更改列元素发生的错误
  • 面试遇到的一些题
  • 前端_面试
  • 入手阿里云新服务器的部署NODE
  • 深度学习入门:10门免费线上课程推荐
  • 无服务器化是企业 IT 架构的未来吗?
  • LevelDB 入门 —— 全面了解 LevelDB 的功能特性
  • 阿里云ACE认证学习知识点梳理
  • 回归生活:清理微信公众号
  • #Js篇:单线程模式同步任务异步任务任务队列事件循环setTimeout() setInterval()
  • #我与Java虚拟机的故事#连载01:人在JVM,身不由己
  • (android 地图实战开发)3 在地图上显示当前位置和自定义银行位置
  • (html5)在移动端input输入搜索项后 输入法下面为什么不想百度那样出现前往? 而我的出现的是换行...
  • (MonoGame从入门到放弃-1) MonoGame环境搭建
  • (附源码)基于ssm的模具配件账单管理系统 毕业设计 081848
  • (七)c52学习之旅-中断
  • (十三)Java springcloud B2B2C o2o多用户商城 springcloud架构 - SSO单点登录之OAuth2.0 根据token获取用户信息(4)...
  • (四)七种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划MATLAB
  • (转)总结使用Unity 3D优化游戏运行性能的经验
  • (转载)Linux网络编程入门
  • .CSS-hover 的解释
  • .NET Core 控制台程序读 appsettings.json 、注依赖、配日志、设 IOptions
  • .NET DataGridView数据绑定说明
  • .NET MVC、 WebAPI、 WebService【ws】、NVVM、WCF、Remoting
  • .net MySql
  • .NET/C# 在代码中测量代码执行耗时的建议(比较系统性能计数器和系统时间)...
  • .netcore 如何获取系统中所有session_如何把百度推广中获取的线索(基木鱼,电话,百度商桥等)同步到企业微信或者企业CRM等企业营销系统中...
  • .NET框架类在ASP.NET中的使用(2) ——QA
  • .NET中 MVC 工厂模式浅析
  • /proc/interrupts 和 /proc/stat 查看中断的情况