首页 > 其他分享 >flex布局

flex布局

时间:2023-11-08 19:24:50浏览次数:38  
标签:flex align 布局 content nav background local

flex布局

flex使用后部分行内和块级元素,均可设置宽高

div {
            display: flex;
            width: 400px;
            height: 400px;
            background-color: orange;
        }

        span {
            width: 100px;
            height: 50px;
            background-color: purple;
            margin-left: 10px;
        }

任何一个容器均可指定flex布局

当父盒子设为flex后,子盒子的float、clear和vertical-align将失效

父元素-容器

子元素-项目

父项常见属性(6)

注意:主轴和侧轴

flex-direction-设置主轴方向(项目的排列顺序)

/* 默认主轴是X轴 ,则y轴为侧轴 */
flex-direction: row;
/* 翻转,从右至左 */
flex-direction: row-reverse; 
/* 主轴为y轴 */
flex-direction: column;

justify-content-设置主轴上子元素的排列方式

 /* 默认从头部开始,若主轴为X,则从左到右 */
            /* justify-content: flex-start; */
/* 从尾部开始排列,若主为X,则靠右对齐 */
            /* justify-content: flex-end; */
/* 在主轴居中对齐 */
            /* justify-content: center; */
/* 平分剩余空间 */
            /* justify-content: space-around; */
 /* 先两边贴边,再平分剩余空间 */
            justify-content: space-between;

space-between

flex-wrap-设置子元素是否换行

默认不换行,若装不开,则将子盒子缩小

/* 默认不换行 */
            /* flex-wrap: nowrap; */
/* 换行 */
            flex-wrap: wrap;

align-items-设置侧轴上子元素排列属性(单行)

			/* align-items: flex-start; */
            /* align-items: flex-end; */
/* 居中*/
            /* align-items: center; */
/* 拉伸(默认值),但是子盒子不给高度*/
             align-items: stretch;

适用于单行显示的属性

align-content-设置侧轴上子元素排列属性(多行)

只能用于子项出现换行的情况

			/* align-content: flex-start; */
            /* align-content: flex-end; */
            /* align-content: center; */
            /* align-content: space-around; */
/* 先贴边,再平分 */       
            align-content: space-between;
/* 子项元素平分父元素高度 */
            /* align-content: stretch; */

flex-flow-设置主轴方向和是否换行简写

flex-flow:row wrap;

子项常见属性(3)

flex-子项目占的份数

子项目分配剩余空间

/* 左右两侧固定,中间自适应 */		
		span:nth-child(1) {
            width: 100px;
            height: 50px;
            background-color: blue;
        }

        span:nth-child(2) {
            flex: 1;
            background-color: rgb(32, 152, 161);
        }

        span:nth-child(3) {
            width: 100px;
            height: 50px;
            background-color: rgb(197, 41, 96);
        }

与分蛋糕相似

flex: number

/* 平均分成3等份 */
        div span {
            flex: 3;
            background-color: purple;
        }

align-self-控制子项自己在侧轴的排列方式

单个项目与其他项目不同,覆盖掉align-items

span:nth-child(2) {
            flex: 1;
            align-self: flex-end;
            background-color: rgb(32, 152, 161);
        }

order-子项目排列顺序(前后)

span:nth-child(2) {
            flex: 1;
            align-self: flex-end;
            order: -1;
            background-color: rgb(32, 152, 161);
        }

默认为0,-1比0小,所以在前

index是图层属性

案例

局部导航栏——一行放置5个

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        * {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
        }

        ul {
            list-style: none;

        }

        a {
            text-decoration: none;
            color: #222;
            font-size: 12px;
        }

        .local-nav {
            display: flex;
            height: 65px;
            background-color: aqua;
            border-radius: 8px;
            margin: 3px 4px;
        }

        .local-nav li {
            flex: 1;
        }

        .local-nav li [class^="local-nav-icon"] {
            display: flex;
            flex-direction: column;
            align-items: center;
        }

        .local-nav li [class^="local-nav-icon"]::before {
            content: '';
            display: block;
            width: 50px;
            height: 50px;
            background: url(icons.png) no-repeat -253px -3px;
        }

        /* 利用属性选择器更换背景色 */
        .local-nav li .local-nav-icon-icon2::before {
            background-position: -253px -55px;
        }

        .local-nav li .local-nav-icon-icon3::before {
            background-position: -257px -106px;
        }

        .local-nav li .local-nav-icon-icon4::before {
            background-position: -253px -55px;
        }

        .local-nav li .local-nav-icon-icon5::before {
            background-position: -253px -55px;
        }
    </style>
</head>

<body>
    <ul class="local-nav">
        <li>
            <a href="#" title="景点玩乐" class="local-nav-icon-icon1">
                景点 玩乐
            </a>
        </li>
        <li>
            <a href="#" title="景点玩乐" class="local-nav-icon-icon2">
                景点 玩乐
            </a>
        </li>
        <li>
            <a href="#" title="景点玩乐" class="local-nav-icon-icon3">
                景点 玩乐
            </a>
        </li>
        <li>
            <a href="#" title="景点玩乐" class="local-nav-icon-icon4">
                景点 玩乐
            </a>
        </li>
        <li>
            <a href="#" title="景点玩乐" class="local-nav-icon-icon5">
                景点 玩乐
            </a>
        </li>
    </ul>
</body>

</html>

选择前两个盒子-

.local-nav:nth-child(-n+2)

上有老下有小-

.local-nav li {
            /* 不冲突 */
            flex: 1;
            display: flex;
        }

文字阴影

text-shadow:1px 1px 1px rgba(0,0,0,.3)

水平阴影,垂直阴影,模糊度,颜色

图片缩放

background-size:112px auto;

linear-gradient-背景渐变(线性)(必须添加私有前缀)

/* 从左至右,颜色由橘色变为紫色 */
background: -webkit-linear-gradient(left, orange, purple);

起始方向度数或者方位,默认为top

标签:flex,align,布局,content,nav,background,local
From: https://www.cnblogs.com/Z2201210269/p/17818096.html

相关文章

  • 弹性盒子flex布局轻松实现瀑布流
    这里介绍下简单实现瀑布流的方法,适合一次性加载完的数据列表。如果是分页加载那就需要更复杂的计算了,但也可以在本案例的基础上进行扩展。关键代码:js部分:letcolumCount=2letgoodsList=this.properties.goodsList//创建跟列数相同的新列表letwaterFallArr=newArr......
  • 通过 SAP UI5 IconTabBar 控件结合 FlexibleColumnLayout 实现多页面 Master-Detail
    本文也是来源于网络上一位朋友的咨询,这是这位朋友实际项目中的真实需求。本文介绍了一个实际项目中开发需求的详细实现过程。通过使用SAPUI5IconTabBar控件,我们可以让逻辑上属于不同业务范畴的界面,通过点击对应的Icon,以切换的方式,在同一块屏幕区域显示出来。IconTabBar结......
  • flex布局
    常见属性display:定义一个元素是否为弹性容器。display:flex:将元素设置为弹性容器。display:inline-flex:将元素设置为内联弹性容器。flex-direction:指定弹性容器的主轴方向。flex-direction:row:主轴水平,项目从左到右排列。flex-direction:row-reverse:主轴水平,项目......
  • 记录--Vue3基于Grid布局简单实现一个瀑布流组件
    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助前言在学习Grid布局之时,我发现其是CSS中的一种强大的布局方案,它将网页划分成一个个网格,可以任意组合不同的网格,做出各种各样的布局,在刷某书和某宝首页时,我们发现其展示方式就是一种瀑布流,是一种流行的网站页面布局......
  • 优雅设计之美:实现Vue应用程序的时尚布局
    前言页面布局是减少代码重复和创建可维护且具有专业外观的应用程序的基本模式。如果使用的是Nuxt,则可以提供开箱即用的优雅解决方案。然而,令人遗憾的是,在Vue中,这些问题并未得到官方文档的解决。经过多次尝试,小编得出了一个运行良好且可扩展而不会令人头疼的架构的模式。下面用一......
  • Slint 中的元素定位 (Positioning) 和布局 (Layout)
    基本逻辑Slint当中进行元素定位的基本逻辑是这样的:所有的可见元素都需要放置在窗口(window)中,每个元素都有x和y属性,这两个属性表示当前元素相对父元素的位置偏移。Slint计算某个元素在整个窗口中的位置时,会按照层级关系,一级一级将这个x和y的值进行累加,最终得到元素......
  • flutter开发应用报RenderFlex children have non-zero flex but incoming height cons
    错误RenderFlexchildrenhavenon-zeroflexbutincomingheightconstraintsareunbounded.错误原因"RenderFlexchildrenhavenon-zeroflexbutincomingheightconstraintsareunbounded."错误通常是因为在使用Flex布局(例如Column、Row或Flex)时,子部件的某些子......
  • Grid 网格布局
    <template><div><!--<divclass="container"><divclass="itemitem1"style="grid-area:2/2/3/4;">1</div><divclass="itemitem2">2</div><divclass=......
  • Flex布局
    1弹性盒子概述1.1概述使用弹性盒子布局,元素可以,拉伸以填充额外的空间,收缩以适应更小的空间。1.2弹性盒子可以解决如下问题元素垂直居中元素间隙的平均分配自动占据剩余空间1.3弹性盒子组成弹性盒子:是一种一维的布局方式,只能按行水平布局或按列垂直布局。弹性盒子......
  • 刘铭诚:11.2美元黄金、期货原油行情走势分析及日内交易策略布局
    昨夜黄金受美元指数上涨导致下跌,低点给到1969.7一线,刘铭诚给出的防守1973-1970区域多单目前拿到1987一线,思路策略精准无误!今日周四,白盘黄金价格还是关注1992以及2000关口阻力,另外4小时布林带中轨与MA30均线粘合承压位置在1990一线,而SAR停损转向指标向下发展至1995位置,日内这两......