圣杯布局-flex

一.参考文献:

  1.Flex 布局教程:语法篇(http://www.ruanyifeng.com/blog/2015/07/flex-grammar.html)

  2.Flex 布局教程:实例篇(http://www.ruanyifeng.com/blog/2015/07/flex-examples.html)

二.圣杯布局中用到的属性:

  1.盒子属性:

    (1).flex-direction:用于确定元素的排列顺序

      (a).row(默认值):元素以水平方向,从左至右排列。

      (b).row-reverse:元素以水平方向,从右至左排列。

      (c).column:元素以垂直方向,从上至下排列。

      (d).column-reverse:元素以垂直方向,从下至上排列。

  2.元素属性:

    (1).flex-grow:元素的放大比例。(默认0)如果全部元素的值都为1,那么将均分剩余空间;如果一个元素的值为2,其他元素的值都为1,那么这个元素所占的剩余空间比其他元素多一倍。

    (2).flex-shrink:元素的缩小比例。(默认1)当剩余空间小于元素空间,那么元素会被缩小。设置为0时,表示元素不会被缩小。

    (3).flex-basis:在分配剩余控件之前,元素占据主轴的空间。(默认auto)类似和width、height属性一样设置值。

    (4).flex:flex-grow、flex-shrink、flex-basis的简写属性,推荐使用简写属性。顺序依次是flex-grow flex-shrink flex-basis。例如:flex:0 0 100px,即元素不被放大和缩小,主轴空间为100像素。

    (5).order:元素的排序序号,类似z-index。数值越大,越靠后。(默认0)

三.总结:

  flex布局的优点在于很轻松的能完成元素的对齐(垂直居中也变得轻而易举)、多栏的布局(等分或固定长度)。在用flex模仿圣杯布局时,只使用了很少的几个属性,就达到了以往复杂的float的布局效果。

四.界面截图:

五.代码:

  1 <!DOCTYPE html>
  2 <html lang="en">
  3
  4 <head>
  5   <meta charset="UTF-8">
  6   <meta name="viewport" content="width=device-width, initial-scale=1.0">
  7   <meta http-equiv="X-UA-Compatible" content="ie=edge">
  8   <title>Document</title>
  9   <style>
 10     * {
 11       margin: 0px;
 12       padding: 0px;
 13     }
 14
 15     ul {
 16       list-style: none;
 17     }
 18
 19     body {
 20       display: flex;
 21       flex-direction: column;
 22       height: 100vh;
 23       min-width: 800px;
 24     }
 25
 26     header,
 27     footer {
 28       background: deeppink;
 29     }
 30
 31     .container {
 32       flex: 1;
 33       display: flex;
 34     }
 35
 36     .container>.left {
 37       order: -1;
 38       flex: 0 0 220px;
 39       background: yellowgreen;
 40     }
 41
 42     .container>.main {
 43       flex: 1;
 44     }
 45
 46     .container>.right {
 47       flex: 0 0 150px;
 48       background: yellowgreen;
 49     }
 50   </style>
 51 </head>
 52
 53 <body>
 54   <header>this is header</header>
 55   <div class="container">
 56     <main class="main">
 57       this is main content
 58       <section>
 59         float block
 60       </section>
 61     </main>
 62     <nav class="left">
 63       <ul>
 64         <li>
 65           <a href="#">link1</a>
 66         </li>
 67         <li>
 68           <a href="#">link2</a>
 69         </li>
 70         <li>
 71           <a href="#">link3</a>
 72         </li>
 73         <li>
 74           <a href="#">link4</a>
 75         </li>
 76         <li>
 77           <a href="#">link5</a>
 78         </li>
 79       </ul>
 80     </nav>
 81     <aside class="right">
 82       <ul>
 83         <li>
 84           <a href="#">link1</a>
 85         </li>
 86         <li>
 87           <a href="#">link2</a>
 88         </li>
 89         <li>
 90           <a href="#">link3</a>
 91         </li>
 92         <li>
 93           <a href="#">link4</a>
 94         </li>
 95         <li>
 96           <a href="#">link5</a>
 97         </li>
 98       </ul>
 99     </aside>
100   </div>
101   <footer>
102     this is footer.
103   </footer>
104 </body>
105
106 </html>
时间: 2024-12-24 08:21:25

圣杯布局-flex的相关文章

css——圣杯布局

圣杯布局要求 header和footer各自占领屏幕所有宽度,高度固定 中间dontainer部分为左中右三栏式布局 三栏布局中左右两侧宽度固定,中间部分自动填充 实现方式 1.浮动 先定义header和footer的样式,使其宽度撑满,高度随意 container中三列设置为浮动和相对定位,且center部分放在最起那么,对footer设置clear:both;清除浮动 三列中的左右定宽200px,中间设置100% 由于浮动关系,center会撑满container,左右会被挤下去,给left

圣杯布局之 css3 calc和 flex

圣杯布局的实现,有很多种. 大致都是借助 padding, margin, float之类的,当然这是传统的实现方式.更多的参考方式圣杯布局小结. 这里说的是用css3 cal 和flex来实现,因为css有限,有不当或者错误之处,敬请指出. css3 cal 的支持情况,总体 93%. flex布局的支持情况, 总体97% 为了增加复杂度 1. 块之间有间距 2. 有 border 3. 都采用了 box-sizing: content-box 先看 calc的实现 <!DOCTYPE htm

flex做的圣杯布局

now,给大家分享一个用flex写的圣杯布局,大家可以参考一下子 首先圣杯布局是两列固定宽度,中间自适应. 我直接说一下步骤,上图,上图 1.步骤1 2.步骤2 上面就是基本的步骤,下面我把代码给大家,大家感兴趣自己拿回去偷偷的撸就可以 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport&

CSS布局-圣杯布局

圣杯布局 圣杯布局很完美(兼容所有浏览器,包括IE6),但是使用了相对定位,布局有局限性,宽度控制要改的地方也多. 第一种方法公用部分: .lgyz, .lzrg, .lrzcg, .lcgrz, .lzcrg {margin:10px 0; min-width:400px;text-align: center;color:#ffffff; } .left {background-color: #4DBCB0; padding:20px 0;} .aside, .center, .right {

【CSS-flex】圣杯布局(Holy Grail Layout)、输入框的布局、悬挂式布局、固定的底栏

1.圣杯布局(Holy Grail Layout) 其指的是一种最常见的网站布局.页面从上到下,分成三个部分:头部(header),躯干(body),尾部(footer).其中躯干又水平分成三栏,从左到右为:导航.主栏.副栏. 2.输入框布局 3.悬挂布局 4.固定的底栏 有时,页面内容太少,无法占满一屏的高度,底栏就会抬高到页面的中间.这时可以采用Flex布局,让底栏总是出现在页面的底部. vh单位:vh等于viewport高度的1/100.例如,如果浏览器的高是900px,1vh求得的值为9

圣杯布局(定宽与自适应)

圣杯布局小结 阅读目录 1. 从2个实际的需求说起 2. 圣杯布局的传统实现方法 3. 圣杯布局传统实现方法的一种变体 4. 圣杯布局的纯浮动实现 5. 圣杯布局的flex实现 7. 结束语 圣杯布局,很久之前就听过,但是一直都没详细了解过,最近因为做了一个项目,借鉴了薪人薪事这个公司的产品页面,才第一次用到这种布局方式.于是就花了点时间,测了下它实现常见分栏布局的代码,每段代码都非常简单,但布局效果很完美,比我以前用的方式好用不少.本文是对它实现方式的一些总结,希望可以把这种技术推荐给跟我之前

float详解、圣杯布局

一.开始 虽然现在有了flex弹性盒子模型,很多布局效果都可以通过flex盒子来实现,但由于flex盒子模型的兼容性不容乐观 ie至少要10才能支持flex,所以还是很有必要学习float流式布局的 二.实例 正常的块级元素的布局是这样的:(文字代表元素的float属性) 对于float布局要记住: 1.如果浮动元素的上一个元素也是浮动,那么该元素会与上一个元素排列在同一行,如果行宽不够,后面的元素会被挤到下一行 2.如果浮动元素的上一个元素不是浮动,那么该元素仍然处于上一个元素的下方,根据浮动

双飞翼布局和圣杯布局

双飞翼布局: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta charset="utf-

css 圣杯布局三种方式

所谓的圣杯布局就是左右两边大小固定不变,中间宽度自适应.我们可以用浮动.定位以及flex这三种方式来实现 一般这种布局方式适用于各种移动端顶部搜索部分,这是最常见的,如京东手机版主页面顶部搜索: 可以看到左边有个菜单按钮,中间是搜索框,右边是登录两个文字,左右大小是固定的,而中间部分则是随着手机屏幕尺寸的大小而自适应.   第一种方法 float实现: 1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 &