前言:css
年前公司招进来一个高级前端,最近闲谈中聊到了他以前找工做面试时的状况。
在对大佬油然起敬的同时,深感本身的不足。便产生了再次写博客的想法。
写博文一方面巩固之前的知识,另外一方面记录和督促学习新的知识内容。
复制代码
flex 是 flexible 的缩写,意思为弹性布局,用来为盒模型提供最大的灵活性。
任何一个容器均可以指定为 flex 布局( 包括行内元素 ):html
div { display: flex}
复制代码
元素设置 flex 属性后,其具备的 float clear vertical-align 都将失效前端
常规布局:面试
flex 布局bash
成为 flex 容器的元素默认有两条轴:水平主轴(main axis)和垂直交叉轴(cross axis),单个项目占据的主轴空间称为 main size,交叉轴为 cross size,下面这张图很好的说明了:ide
能够利用 flex 实现筛子的排布,同时也锻炼了对 flex 的属性的使用布局
<style> /* 使用 flex 进行布局 */ .wrap { display: flex; justify-content: center; align-items: center; height: 400px; width: 100%; border-bottom: 1px solid black; } .box { height: 200px; width: 200px; background: red; } </style>
<body>
<div class="wrap">
<div class="box"></div>
</div>
</body>
复制代码
<style> * { margin: 0; padding: 0; } body, html { height: 100%; } body { display: flex; flex-direction: column; } header { flex: 0 0 100px; background: #cecece; } .content { flex: 1; background: yellow; display: flex; } aside { background: pink; flex: 0 1 25%; } section { flex: 1; } footer { flex-basis: 70px; background: red; } </style>
</head>
<body>
<header>
header
</header>
<div class="content">
<aside></aside>
<section></section>
</div>
<footer>
footer
</footer>
</body>
复制代码
熟练使用 flex 相比于使用 float 更加快捷和方便,但其对 IE 低版本兼容性不是很好。有 IE 需求的状况下仍是推荐使用 float 布局。学习