1、基本网格布局

分情况讨论:

(1)如果所有的项目有相同的结构

<!DOCTYPE html>
<html><head><meta charset="utf-8"><title>flex-shrink压缩</title><style>.container{padding-top:20px;display: flex;width: 500px;/*当容器container的宽度200<项目item的宽度150*2  */height: 400px;background-color:#fff;border: 2px solid #ddd;}.item{height: 30px;flex-grow: 1;flex-basis: 50%;}.item1{background-color: #ccc;}.item2{background-color: #999;}</style></head><body><pre>希望两个项目的宽度是相同的,评分整个容器的宽度。</pre><div class="container"><div class="item item1">1</div><div class="item item2">2</div><div class="item item2">2</div></div></body>
</html>

在上述案例代码中,由于item1,item2的flex-grow均为默认值,所以三个均平分。

2、百分比布局

作用:希望多个项目的宽度的比例是固定的。

若为3个:item1、item2、item3

item1——flex:1 1 auto;

item2——flex:2 1 auto;

item3——flex:3 1 auto;

该布局主要是以改变flex-grow的值,作为瓜分容器container宽度的标准。

实例代码如下所示(仅修改上述style部分代码):

         .item{height: 30px;}.item1{background-color: #ccc;flex-grow:1;}.item2{background-color: #999;flex-grow:2;}.item3{background-color: #eee;flex-grow:3;}

3、一侧固定、一侧自适应

该布局采用的是上述讲的项目属性flex,一个设置为“固定的像素”,一个设置为自适应auto。

         .item{height: 30px;/*flex-grow: 1;flex-basis: 50%;*/}.item1{background-color: #ccc;flex:0 1 100px;}.item2{background-color: #999;flex:1 1 auto;}.item3{background-color: #ccc;flex:0 1 200px;}

4、导航两端对齐

A.正常情况,即没有使用flex弹性布局时,布局方式主要通过“margin:auto”来实现。

(1)“Auto”计算过程,即实现原理:

对于块状元素而言,要独占一行(再不给width情况下,它会充满一整行);

如果给该元素设置了width,但在水平方向上,还有剩余的空间(它的宽度比外部容器的宽度小),这个空     间就会被用来计算。

(2)当一侧固定一侧自适应时,auto就是整个剩余空间,另一侧是固定值

(3)当两侧都是auto时,即会平均分配剩余空间。

思考:为什么不能垂直方向居中呢?

对于元素而言,如果不设置布局,即在垂直方向上,它不会铺满整个列,因此,垂直方向上,没有多余的列      赋予该元素。

例1:普通案例如下,即使用的是display:block,只能实现水平方向上的居中——

     <style>.container{width: 500px;height: 400px;border: 2px solid #ddd;
             display:block;}.item{width: 50px;height: 50px;background:#ccc;margin:0 auto;/*只能实现水平居中*/}</style>
        <div class="container"><div class="item">居中</div></div>

例2:使用flex进行弹性布局时,

采用margin:auto,既可以实现四个方向上的正中间。

(1)即在container中,使用display:flex 代替 display:block;

(2)在item中,使用“margin:auto;”,即实现了四个方向居中。

5、媒体查询

当页面的宽度<=600px时,样式会产生效果,

(1)把主轴方向从默认的水平改为垂直方向;

(2)把项目在主轴方向排列位置关系,将“jusity-content:space-around”改为“jusity-content:flex-start

         .container{padding-top: 20px;display: flex;width: 500px;height: 400px;background-color: #fff;border: 2px solid #ddd;justify-content: space-around;  /*容器两端对齐*/}/*媒体查询*/@media(max-width:600px){.container{flex-direction: column;  /*水平变垂直*/justify-content: flex-start;}}

6、圣杯布局

<!DOCTYPE html>
<html><head><meta charset="utf-8"><title>flex-shrink压缩</title><style>body{display: flex;flex-flow: column nowrap;}body >*{text-align: center;color:#fff;font-size: 30px;}header,footer{background: #333;height: 50px;}section{display: flex;}nav{width: 100px;background: #aaa;flex:0 1 100px;}.main{width: 500px;background: #ccc;flex: 1 1 auto;}.sliderbar{width: 150px;background: #eee;flex:0 1 150px;order:-1;   /*注意:用于调整次序*/}</style></head><body><header>头部</header><section><nav>导航</nav><div class="main">主体部分<p>item1</p><p>item1</p><p>item1</p><p>item1</p></div><div class="sliderbar">侧边栏</div></section><footer>尾部</footer></body>
</html>

7、图文混排

(1)搭建结构

(2)设置样式

flex与布局(基本网格布局、百分比布局、一侧固定一侧自适应、圣杯布局)相关推荐

  1. html如何左侧固定div,详解左右宽度固定中间自适应html布局解决方案

    原标题:详解左右宽度固定中间自适应html布局解决方案 本文介绍了详解左右宽度固定中间自适应html布局解决方案,分享给大家,具体如下: a.使用浮动布局 html结构如下 left right ce ...

  2. div固定在浏览器顶部_手写几种常见的css布局,1垂直两栏左边固定右边自适应,垂直3栏左右固定中间自适应...

    1垂直两栏右边固定左边自适应的四种写法 <!DOCTYPE html> <html lang="en"><head><meta chars ...

  3. 双飞翼布局内容不换行_web前端入门到实战:圣杯布局和双飞翼布局

    稍微了解前端的人都知道,圣杯布局和双飞翼布局是前端面试时必问的问题,因为它既能体现你懂HTML结构又能体现出你对DIV+CSS布局的掌握,毕竟我们学习CSS主要就是为了更好地布局带来最好的用户体验嘛~ ...

  4. 移动端开发注意事项、需要注意的问题、特殊属性、精灵图、座固定有自适应的布局

    一.移动端开发注意事项 网址:移动端开发注意事项 二.关于meta (一).常用的公共meta属性 1.viewport <meta name="viewport"conte ...

  5. 经典的三栏布局:圣杯布局,双飞翼布局,flex布局

    需求: 两边栏固定宽度,中间宽度自适应,一般左边栏为导航,右边栏为广告,中间栏为主要内容的展示,div块上中间栏放在第一位,重要的东西放在文档流前面可以优先渲染. 圣杯布局和双飞翼布局的共同特点都是利 ...

  6. 使用flex实现圣杯布局

    圣杯布局 首先需要了解圣杯布局的概念:圣杯布局是指左右宽度固定中间自适应的布局方式,是一个经典的布局 实现方式 在这里我使用的是flex方式来实现我们的圣杯布局. 布局思路:1,需要有三个盒子上中下排 ...

  7. 在php中页面布局 3列左右侧固定中间自适应居中,css三列布局--两边固定中间自适应和中间固定两边自适应...

    三列布局 本篇讲三列布局,面试常考题,自己总结的,如有什么问题,欢迎指出!我会用红色标注出主要作用部分,都是最精简的写法,,没有多余的修饰. 布局方式一:两边固定中间自适应 1.flex布局 思路:将 ...

  8. 【聊一聊】css中的经典布局——圣杯布局

    什么是圣杯布局? 圣杯布局是三列布局,中间宽度自适应,两边定宽,这样做的优势是重要的东西放在文档流前面可以优先渲染.也就是在html文档中,中间的部分要写在左右布局之前. 当然,这种布局是面向PC端的 ...

  9. 圣杯布局-三种实现方式,css经典布局

    圣杯布局:经典三栏布局,左右两边宽度固定,中间自适应 圣杯布局在前端构建页面是最常见的一种布局方式,也是前端面试中最常被问到的一问题,下面通过三种方式去实现圣杯布局!附代码!可以一对比一下哪种方式最便 ...

最新文章

  1. [记录]calculate age based on date of birth
  2. 关于最佳线程数的计算的准确理解
  3. DebugView的使用[通用汇总]
  4. linux添加php到环境,Linux系统为已编译的PHP环境添加扩展
  5. java string查找_查找输出程序(Java String类)
  6. 不需要登陆的灵感笔记私人版正式上线,迭代优化中。
  7. Spring4-自动装配Beans-按属性的数据类型自动装配Bean
  8. BZOJ2243[SDOI2011] 染色
  9. tcp/ip IP数据报头详解
  10. 【代码重构】拒绝继承的遗赠(Refused Bequest)--如何处理子类无需使用到父类中的某些方法和变量的情况?
  11. pip指定网址下载安装(清华源)
  12. phpmail通过qq发邮箱失败_请问phpmailer发送Gmail总是失败是什么原因,qq邮件可以发送出去...
  13. 计算机有线传播介质,有线传输介质有那些?
  14. 程序员需要的日常(收费)软件(都免费)
  15. vuejs中v-if和v-show的区别以及v-show不起作用
  16. 小学生计算机清除键是mc,我的世界一键清除指令 | 手游网游页游攻略大全
  17. 全球及中国单相固态继电器行业规模预测及产值分析报告2022~2027年
  18. 基于HTML+CSS+JavaScript制作学生网页——龙猫 -宫崎骏 5页 带轮播 带js校验
  19. Cisco(十二)—配置小型企业网络
  20. 荣耀v20能转成鸿蒙系统吗,升级快讯:又一批华为手机可以升级到“鸿蒙系统”了!...

热门文章

  1. php数组去重的函数,php数组去重函数的简单示例
  2. [转载]茶话之四:政和工夫英伦打李鬼
  3. 寒假来了,读什么书?推荐书籍列表
  4. 今天的知识付费是贩卖焦虑?还是缓解焦虑?
  5. Generating project in Batch mode很慢问题
  6. 建议收藏!最有效率的python数据分析入门书单
  7. 我依然爱你,我只是不喜欢你了
  8. python在人工智能应用锁_干货 | Python人工智能在贪吃蛇游戏中的应用探索(上)...
  9. Matlab与外部接口:MAT文件基础
  10. 걸까비동기를걸까걸까?