flex 布局

653 阅读2分钟

flex(弹性盒)布局的定义

  • display:flex; 代表的是块级
  • display:inline-flex; 代表的是行内块

flex的属性

flex-direction:设置主轴方向(容器的)

默认是row
/ 水平轴为主轴 从从左到右/
flex-direction: row;
/ 水平轴为主轴 从右到左/
flex-direction: row-reverse;
/ 垂直轴为主轴 从上到下/
flex-direction: column;
/ 垂直轴为主轴 从下到上/
flex-direction: column-reverse;

flex-warp设置是否换行(容器的)

  • nowrap 默认不换行
  • wrap是换行

上俩的复合属性

/* 复合属性
第一个值是flex-direction
第二个值是flex-warp
*/
flex-wrap: wrap;
flex-flow: row nowrap;

justify-content:控制项目在主轴上的对齐方式(容器的)

justify-content: space-around;环绕

justify-content: space-between;两端对齐

justify-content: space-evenly;完全均等

控制项目在侧轴上的对齐方式(容器的)

align-items

align-items: flex-start; 对齐到顶部
align-items: flex-end;对齐到底部
align-items: center;居中对齐
项目在侧轴上所占的比例不写(width/height)或者写成auto,就会占满整个侧轴:
align-items: stretch;(默认值)

产生多跟轴线 用align-content:

必须结合着flex-wrap:wrap;

flex:1均分

写了几 就代表占总体的几份
如果所有的都是一个值 也是均分。不论1还是2还是几
flex属性是flex-grow, flex-shrink 和 flex-basis的简写

aline-self: 控制某个项目在侧轴上的对齐方式

给一个盒子设置display:fix;这个盒子就变成了容器,里面的项目也可以变成容器。

设置头和尾,无论内容多少,头和尾都会固定在头或尾。

内容占满剩余屏幕

 <style>
        *{
            margin: 0;
            padding: 0;
        }
        html,body{
            height: 100%;
            width: 100%;
        }
        body{
          display: flex;
          flex-direction: column;
            
        }
        header,footer{
            /* width: 500px; */
            height: 100px;
            background-color: lightcoral;            
            line-height: 100px;
        }
        main{
            flex: 1;
            overflow: auto;
        }
    </style>


<body>
    <header>
        tou
    </header>
    <main>main
        </main>
    <footer>footer</footer>
</body>

\


文字超出隐藏

单行显示...

<style>
    p{
        width: 100px;
        overflow: hidden;
        /* 文字溢出裁剪用... 的形式*/
        text-overflow:ellipsis;
        /* 强制不换行 */
        white-space: nowrap;
        
    }
</style>

多行显示...

<style>
    p{
    width: 100px;
    overflow: hidden;
    /* 文字溢出裁剪用... 的形式*/
    text-overflow:ellipsis;
    /* 强制不换行 */
    display: -webkit-box;
    /* 控制让哪一行显示... */
   -webkit-line-clamp: 3;
    /* 控制主轴方向 */
    -webkit-box-orient: vertical;
    }
</style>

禁止用户复制文字

body{
        /* 禁止用户选中 */
        user-select: none;
    }

控制文字间的距离

/* 字符与字符之间的距离 */
        letter-spacing: 10px;
 /* 单词与单词之间的距离(空格) */
        word-spacing: 10px;

filter:关于照片的相关属性