最近几个月一直用vue在写手机端的项目,主要写业务逻辑,在js方面投入的时间和精力也比较多。这两天写页面明显感觉css布局方面的知识有不足,所以复习一下布局方法。

两栏布局

  • 1、浮动

 .box1 .left {
float: left;
width: 100px;
height: 100px;
background-color: red;
}
.box1 .right {
margin-left: 100px;
height: 100px;
background-color: green;
}
<div class="box1">
<div class="left"></div>
<div class="right">两列自适应</div>
</div>
  • 2、定位

.box1{
position: relative;
width: 100%;
height: 100px;
}
.box1 .left{
position: absolute;
width: 100px;
height: 100%;
background-color: red;
} .box1 .right{
margin-left: 100px;
width: 100%;
height: 100%;
background-color: green;
}
<div class="box1">
<div class="left"></div>
<div class="right"></div>
</div>
  • 3、flex

  .box1{
display: flex;
height: 100px;
}
.box1 .left{
width: 100px;
height: 100%;
background-color: red;
} .box1 .right{
flex:1;
height: 100%;
background-color: green;
}
<div class="box1">
<div class="left"></div>
<div class="right"></div>
</div>

圣杯布局和双飞翼布局目的是我们希望先加载的是中间的部分,然后再开始加载 left 和 right 两个相对来说不是很重要的东西。

圣杯布局

圣杯布局给最外面加padding, 让 padding-left 和 padding-right 的数值等于left 和 right 的宽度,然后利用相对定位把他们再移动在两旁。

.box{
padding: 0 100px;/* 留出左右的距离*/
height: 100px;
}
.box .middle {
float: left;
width: 100%;
height: 100%;
background-color: yellow;
}
.box .left {
float: left;
width: 100px;
margin-left: -100%;
background-color: red;
position: relative;
left: -100px;/*往左拉*/
height: 100%;
}
.box .right {
float: left;
width: 100px;
margin-left: -100px;
background-color: green;
position: relative;
right: -100px;
height:100%;
}
<div class="box">
<!--注意顺序-->
<div class="middle">middle</div>
<div class="left">left</div>
<div class="right">right</div>
</div>

双飞翼布局

.box {
position: relative;
height: 100px;
}
.middle-wrap {
position: relative;
float: left;
width: 100%;
height: 100%;
}
.middle-wrap .middle {
height: 100%;
margin: 0 100px; /*留出距离*/
background-color: yellow;
}
.left {
float: left;
width: 100px;
margin-left: -100%;
height: 100%;
background-color: red;
}
.right {
float: left;
width: 100px;
height: 100%;
margin-left: -100px;
background-color: green;
}
<div class="box">
<div class="middle-wrap">
<div class="middle"></div>
</div>
<div class="left"></div>
<div class="right"></div>
</div>

css两栏布局、圣杯布局、双飞翼布局的更多相关文章

  1. CSS(五)圣杯,双飞翼布局

    双飞翼布局 <style> *{ margin:; padding:; } .main{ width: 100%; height: 200px; background: pink; flo ...

  2. css布局记录之双飞翼布局、圣杯布局

    双飞翼布局和圣杯布局是比较常用的布局方式,都是为了实现一行三列,并且两侧列固定宽度,中间列宽度自适应的效果:直接上代码记录下: <!DOCTYPE html> <html lang= ...

  3. 常见CSS两栏式布局

    代码下载:https://files.cnblogs.com/files/xiandedanteng/TwoColumnLayout.rar 效果展示: 代码: <!DOCTYPE html&g ...

  4. CSS两列及三列自适应布局方法整理

    布局 自适应 两列 三列 在传统方法的基础上加入了Flex布局并阐述各方法的优缺点,希望对大家有所帮助.先上目录: 两列布局:左侧定宽,右侧自适应 方法一:利用float和负外边距 方法二:利用外边距 ...

  5. 两列布局(浮动、定位、flex)和三列布局(圣杯、双飞翼、flex)

    demo 各种布局演示 https://jsfiddle.net/mayufo/qp890peq/1/ 两栏布局 浮动 <div class="box1"> <d ...

  6. CSS中的圣杯布局与双飞翼布局

    一,圣杯布局 1,什么是圣杯布局? 所谓圣杯布局就是用于实现一个两侧宽度固定,中间宽度自适应的三栏布局 2,构建圣杯布局的步骤: 2.1,添加一个容器,在这个容器中添加放三个盒子(左.中.右): 2. ...

  7. css三栏布局方案整理

    日常开发中,经常会用到css三栏布局,现将工作中常用的css 三栏布局整理如下: 什么是三栏布局: 三栏布局,顾名思义就是两边固定,中间自适应. 一. float布局 <!DOCTYPE htm ...

  8. CSS三栏布局的四种方法

    总括: 不管是三栏布局还是两栏布局都是我们在平时项目里经常使用的,也许你不知道什么事三栏布局什么是两栏布局但实际已经在用,或许你知道三栏布局的一种或两种方法,但实际操作中也只会依赖那某一种方法,本文具 ...

  9. CSS | 圣杯布局、双飞翼布局 | 自适应三栏布局

    圣杯布局和双飞翼布局是前端工程师需要日常掌握的重要布局方式.两者的功能相同,都是为了实现一个两侧宽度固定,中间宽度自适应的三栏布局 虽然两者的实现方法略有差异,不过都遵循了以下要点: 1.两侧宽度固定 ...

随机推荐

  1. QT:MYSQL driver not loaded解决方法

    0.参考(按对本人帮助从高到低排列) Qt5.14.1 如何编译和使用mysql和mariadb数据库驱动 (15条消息) QMYSQL driver not loaded 的原理和解决办法_m158 ...

  2. C#控制台窗口禁用关闭按钮

    1 public class Program 2 { 3 #region 禁用控制台黑窗口的关闭按钮 part1 4 5 private const int MF_BYCOMMAND = 0x0000 ...

  3. 微信小程序书简易支付

    这里结合了上一篇的手机号登录接下来的实现功能 https://www.cnblogs.com/xiaoyantongxue/p/15472915.html 登录后进入课程选择页面 1:数据库填入数据 ...

  4. think php 上下架修改+jq静态批量删除+ajax删除+全选

    视图代码: <!doctype html> <html lang="en"> <head> <meta charset="UTF ...

  5. mysql 索引模板

    DROP TABLE IF EXISTS `table_name`; CREATE TABLE `table_name` ( `id` bigint(20) UNSIGNED NOT NULL AUT ...

  6. 基于python 实现KNN 算法

    #!/usr/bin/env python # -*- coding: utf-8 -*- # @Time : 2018/11/7 14:50 # @Author : gylhaut # @Site ...

  7. 用 EXISTS 或 NOT EXISTS 用法

    项目中遇到这么个情况: t1表 和 t2表  都是150w条数据,600M的样子,都不算大. 但是这样一句查询 ↓ select * from t1 where phone not in (selec ...

  8. 提升Spring Boot项目中API接口并发能力的一个注解,效果明显

    异步调用几乎是处理高并发Web应用性能问题的万金油,那么什么是"异步调用"?"异步调用"对应的是"同步调用",同步调用指程序按照定义顺序依次 ...

  9. 实践:Linux下安装mysql8.0

    镜像下载.域名解析.时间同步请点击 阿里云开源镜像站 一.下载mysql8.0安装包 1.在local创建mysql文件夹 cd /usr/local mkdir mysql cd mysql 2.使 ...

  10. DHCP协议简析

    推荐这篇文章,原理及抓包都分析的很好: **推荐这篇文章,原理及抓包都分析的很好:** https://blog.csdn.net/andy_93/article/details/78238931 简 ...