最近几个月一直用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. 2020.10.6 ThreadLocal

    在多线程环境下,每个线程都有自己的数据.一个线程使用自己的局部变量比使用全局变量要好,因为局部变量不会被其他线程改变. 但是局部变量也存在问题--在函数调用的时候,传递起来很麻烦: def proce ...

  2. Python——条件语句及其循环

    条件语句及其循环 一. 条件语句 在条件语句中可以使用以下所有的运算符: 算术运算符:+.-.*././/.%.** 关系运算符:>.<.==.<=.>=.!= 测试运算符:i ...

  3. CSDN中Markdown编辑器使用方法

    Markdown编辑器 如果想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识. 新的改变 CSDN中Markdown编辑器进行了一些功能拓展与语法支 ...

  4. 基于 vite2 + Vue3 写一个在线帮助文档工具

    提起帮助文档,想必大家都会想到 VuePress等,我也体验了一下,但是感觉和我的思路不太一样,我希望的是那种可以直接在线编辑文档,然后无需编译就可以直接发布的方式,另外可以在线写(修改)代码并且运行 ...

  5. 想了解MQ,读这篇就够了

    一.简介 MQ全称为Message Queue-消息队列,是一种应用程序对应用程序的消息通信,一端只管往队列不断发布信息,另一端只管往队列中读取消息,发布者不需要关心读取消息的谁,读取消息者不需要关心 ...

  6. jq全选、全不选、反选、单删、批量删除

    <!DOCTYPE html><html> <head> <meta charset="utf-8" /> <title> ...

  7. laravel 7 xlsx 数据导入至 数据库

    网址: https://learnku.com/articles/32400 1:安装插件 环境要求 PHP: ^7.0 Laravel: ^5.5 安装方式 composer require maa ...

  8. SuperEdge: 使用WebAssembly扩展边缘计算场景

    作者 SuperEdge 开发者团队 概要 SuperEdge 是 一个开源的分布式边缘计算容器管理系统,用于管理多个云边区域中的计算资源和容器应用. 在当前架构中,这些资源和应用能够作为一个 Kub ...

  9. CF375D题解

    昨天教练布置的莫队作业,然后一看我老早就用 DSU on tree 切了,来补题解( 题意 静态树询问子树中,同一种元素的数量不小于 \(k\) 的元素有多少种. 莫队做法 容易观察到子树在 \(\r ...

  10. DAViCal 跨站请求伪造漏洞

    受影响系统:DAViCal DAViCal <= 1.1.8描述:CVE(CAN) ID: CVE-2019-18346 DAViCal是一款日历共享服务器. DAViCal 1.1.8及之前版 ...