Flex 布局
基本概念
设置 display: flex
或者 display: inline-flex
的元素称为 Flex 容器,容器中的子元素称为 Flex 项目。
display: flex
:保持元素块状特性,宽度默认 100%,不和内联元素一行显示。display: inline-flex
:inline-flex 容器为 inline 特性,因此可以和图片文字一行显示。
大约 7 分钟
设置 display: flex
或者 display: inline-flex
的元素称为 Flex 容器,容器中的子元素称为 Flex 项目。
display: flex
:保持元素块状特性,宽度默认 100%,不和内联元素一行显示。display: inline-flex
:inline-flex 容器为 inline 特性,因此可以和图片文字一行显示。设置 display: grid
或者 display: inline-grid
的元素称为 Grid 容器,容器内部采用网格定位的子元素称为 Grid 项目。
display: grid
:保持元素块状特性,宽度默认 100%,不和内联元素一行显示。display: inline-grid
:inline-grid 容器为 inline 特性,因此可以和图片文字一行显示。display: subgrid
:如果网格容器本身就是一个嵌套网格,可以使用该属性来表示从它的父节点取得它的行/列的大小,而不是指定它自己的大小。把内容部分最小高度设为100%,再利用内容部分的负底部外边距值来达到当高度不满时,页脚保持在窗口底部,当高度超出则随之推出的效果。
<body>
<div class="wrapper">
content
<div class="push"></div>
</div>
<footer class="footer"></footer>
</body>
<style>
html, body {
height: 100%;
margin: 0;
}
.wrapper {
min-height: 100%;
margin-bottom: -50px; /* 等于footer的高度 */
}
.footer, .push {
height: 50px;
}
</style>
/*生成栅格系统*/
@media screen and (max-width: 768px) {
.generate-columns(12); /*此处设置生成列数*/
.generate-columns(@n, @i: 1) when (@i <= @n) {
.column-xs-@{i} {
width: (@i * 100% / @n);
}
.generate-columns(@n, (@i+1));
}
}
@media screen and (min-width: 768px) {
.generate-columns(12); /*此处设置生成列数*/
.generate-columns(@n, @i: 1) when (@i <= @n) {
.column-sm-@{i} {
width: (@i * 100% / @n);
}
.generate-columns(@n, (@i+1));
}
}
div[class^="column-xs-"] {
float: left;
}
div[class^="column-sm-"] {
float: left;
}
text-align:center
针对行内内容,必须将子元素设置为 display: inline;
或者 display: inline-block;
margin: 0 auto;
flex
,简单方便,灵活并且功能强大