CSS flex

文章目录

  • flex 伸缩布局
    • 基本介绍
    • 容器属性
    • 弹性元素属性
    • 导航栏

flex 伸缩布局

  • flex是CSS的一种布局手段,主要来代替浮动完成页面布局。
  • flex可以使元素具有弹性,让元素可以跟随页面的大小的改变而改变。

CSS flex_第1张图片

基本介绍

.box {
    display: flex;
}

默认情况

  • 主轴:水平的主轴(main axis)
  • 交叉轴:垂直的侧轴(cross axis)
  • 方向:默认主轴从左向右,侧轴默认从上到下,主轴和侧轴可以通过flex-direction属性互换

容器属性

属性 说明
flex-direction 主轴方向

row:默认值,主轴为水平方向,弹性元素水平从左向右排列
row-reverse:主轴为水平方向,弹性元素水平从右向左排列
column:主轴为垂直方向,弹性元素垂直从上向下排列
column-reverse:主轴为垂直方向,弹性元素垂直从下向上排列
flex-wrap 弹性元素是否可换行

nowrap:默认值,不换行
wrap:自动换行,第一行在上方
wrap-reverse:反方向换行,第一行在下方
flex-flow flex-direction和flex-wrap的简写
justify-content 弹性元素在主轴上的对齐方式

flex-start:默认值,左对齐
flex-end:右对齐
center :居中
space-around:空白分布在元素两侧
space-between :两端对齐,空白均匀分布在元素间
space-evenly:空白分布在元素的单侧
align-items 弹性元素在交叉轴上的对齐方式

stretch:默认值,元素若没有设置高度,则占满容器高度
flex-start:交叉轴起点对齐
flex-end:交叉轴终点对齐
center:交叉轴中点对齐
baseline:文字基线对齐
align-content 当多条主轴时,弹性元素在交叉轴上的对齐方式,对单行没有效果

stretch:默认值,元素若没有设置高度,则占满交叉轴
flex-start:交叉轴起点对齐
flex-end:交叉轴终点对齐
center:交叉轴中间对齐
space-between:两端对齐,空白均匀分布
space-around:轴线两侧空白均匀分布

弹性元素属性

属性 说明
order 元素在容器中点排列顺序

默认值为0,数值越小越靠前
flex-basis 计算主轴是否有剩余空间

默认值为auto,为元素的原本大小;若设置值后元素的宽度设置会失效;若值为0%则元素为零尺寸
flex-grow 增长系数

默认值为0,等分剩余空间
flex-shrink 缩减系数

默认值为1,当空间不足时,等比例缩小
flex flex-grow,flex-shrink,flex-basis的简写

两个快捷值:auto (1 1 auto) 、 none (0 0 auto)
align-self 单独设置元素的对齐方式
.item{
	flex: 1;
}
.item{
    flex-grow: 1;
    flex-shrink: 1;
    flex-basis: 0%;
}
.item{
    flex: 0;
}
.item{
    flex-grow: 0;
    flex-shrink: 1;
    flex-basis: 0%;
}
.item{
    flex: 0%;
}
.item{
    flex-grow: 1;
    flex-shrink: 1;
    flex-basis: 0%;
}

导航栏

在这里插入图片描述

<style>
    * {
        margin: 0;
        padding: 0;
    }

    ul {
        list-style: none;
    }

    a {
        text-decoration: none;
    }

    .nav {
        width: 1210px;
        height: 48px;
        line-height: 48px;
        background-color: #E8E7E3;
        margin: 50px auto;
        display: flex;
    }

    .nav li {
        flex: 1;
    }

    .nav a {
        display: block;
        color: #808080;
        text-decoration: none;
        font-size: 16px;
        text-align: center;

    }

    .nav a:hover {
        background-color: #636363;
        color: #fff;
    }
style>

<body>
    <ul class="nav">
        <li><a href="#">HTML/CSSa>li>
        <li><a href="#">Browser Sidea>li>
        <li><a href="#">Server Sidea>li>
        <li><a href="#">Programminga>li>
        <li><a href="#">XMLa>li>
        <li><a href="#">Web Buildinga>li>
        <li><a href="#">Referencea>li>
    ul>
body>

你可能感兴趣的:(HTML+CSS)