电脑基础 · 2023年3月11日

刚刚学完CSS :display float,flex flow 傻傻分不清了

目录

描述

示例:

CSS 中的 display

CSS 中的 float

CSS 中的 flex


描述

刚刚学完CSS ,导致浮动(float),弹性布局(display:flex)好几个字段配置属性已经分不清了。

display float 就同层级别,都是布局的配置项目。

flex是display一个可选值。  

flow :不存在这个值或者配置项。但是由它组成单词倒是有仨:

text-overflow: inherit; //文本溢出如何显示
display: flow-root; //开启BFC, 解决塌陷问题
overflow: hidden; //内容溢出时的设置

示例:

display: flex;     //实现弹性盒子

float: right;        //靠右浮动

在CSS布局中,flex、grid以及float属性的差别是flex属性适用于小的UI元素,grid属性适合用于为网站整体进行布局而float属性适合在较大的文本文章中设置图像。

CSS 中的 display

display 是CSS一个布局的配置项,他可使用值如下:

/* precomposed values */
display: block;
display: inline;
display: inline-block;
display: flex;
display: inline-flex;
display: grid;
display: inline-grid;
display: flow-root;
/* box generation */
display: none;
display: contents;
/* multi-keyword syntax */
display: block flow;
display: inline flow;
display: inline flow-root;
display: block flex;
display: inline flex;
display: block grid;
display: inline grid;
display: block flow-root;
/* other values */
display: table;
display: table-row; /* all table elements have an equivalent CSS display value */
display: list-item;
/* Global values */
display: inherit;
display: initial;
display: revert;
display: revert-layer;
display: unset;

和 float 都可以使元素在同一行,但是也各有缺点。

display:元素方向不可能控制

float:浮动起来的话会脱离标准文档流,所以要解决父级边框塌陷的问题

CSS 中的 float

float 是CSS一个针对子元素布局的配置项,它可使用的值:
right,left,top,bottom

不需要配合display使用。不需要对父元素设置
/*
 float:浮动是一种传统网页的布局方式
  通过浮动脱离文档而横向排列
  None:默认不浮动
    */

 float示例:

 .box2 {
            width: 400px;
            height: 300px;
            border: 10px solid #eee8d5;
        }
        .box3 {
            width: 290px;
            height: 100px;
            background-color: #e0c46c;
            float: right;
            /*margin:0 auto;*/
        }
//...
<body>
<div class="box2">
    <div class="box3">
    </div> </div>
</div>
</body>

CSS 中的 flex

flex呢,是display配置项一个可选值,实现弹性盒子:

display: flex;

/*弹性容器
display: flex; 块级
display:inline-block;行内弹性容器
容器里的所有子元素都自动变成 弹性项
主轴: 元素排列方向
     flex-direction:
            row:自右向右
            column:自上向下
            row-reverse:自右向左
            column-reverse:自下向上
侧轴: 与主轴垂直方向
flex-wap:设置是否自动换行
        none 不换行
        wrap 按侧轴换行
*/
display: flex;

 flex 示例:


 <style>
        ul {
            list-style: none
        }
        ul {
            width: 900px;
            background-color: #eeeeee;
            border: 10px solid red;
            /*弹性盒子*/
            display: flex;
            /*    修改容器子元素方向*/
            flex-flow: row;
        }
        li {
            width: 200px;
            line-height: 50px;
            font-size: 30px;
            color: white;
            /*弹性盒子控制子元素填充,根据当前主轴长度,均匀放大或者缩小*/
            flex-basis: auto;
            /*当总长度超出主轴时,根据主轴长度进行等比缩小
                0: 不缩小
                1:等比缩小
             */
            flex-shrink: 0;
        }
 </style>
//...
<ul>
    <li>1</li>
    <li>2</li>
</ul>