前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >flex-shrink计算公式

flex-shrink计算公式

作者头像
贵哥的编程之路
发布于 2020-10-28 06:55:40
发布于 2020-10-28 06:55:40
83400
代码可运行
举报
运行总次数:0
代码可运行
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<!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 type="text/css">
		 *{
            margin: 0;
            padding: 0;
        }
        ul{
            list-style: none;
            width: 600px;
            height: 600px;
            border: 1px solid #000;
            margin: 100px auto;
            display: flex;
        }
        ul>li{
            width: 300px;
            height: 100px;
            line-height: 100px;
            text-align: center;
            font-size: 30px;
            background: red;
        }
        ul>li:nth-child(1){
        	 /*
            在伸缩项中有一个flex-shrink属性, 用于控制当所有伸缩项的宽度总和大于伸缩容器宽度的时候如何缩小自己, 以便于所有伸缩项宽度的总和能够填满整个伸缩容器
            默认情况下flex-shrink的取值是1, 表示当所有伸缩项宽度的总和大于伸缩容器宽度的时候等比缩小自己
            注意点:
            只有当所有伸缩项的宽度总和大于伸缩容器宽度的时候flex-shrink这个属性才有效


            flex-shrink扩充的公式
            1.利用所有伸缩项的宽度总和 - 伸缩容器宽度 = 溢出的宽度
            900 - 600 = 300
            2.计算权重值
            利用每一个伸缩项需要的份数 * 当前伸缩项的宽度 然后再相加
            1 * 300 + 4 * 300 + 8 * 300 = 3900
            3.计算每个伸缩项需要缩小的范围
            溢出的宽度 * 当前伸缩项的宽度 * 当前伸缩项需要的份数 / 权重值
            300 * 300 * 1 / 3900 = 23.07
            第一个伸缩项宽度 = 300 - 23.07 = 276.9
            300 * 300 * 4 / 3900 = 92.3
            第二个伸缩项宽度 = 300 - 92.3 = 207.6
            */
            flex-shrink: 1;
        }
        ul>li:nth-child(2){
            background: green;
            flex-shrink: 4;
        }
        ul>li:nth-child(3){
            background: blue;
            flex-shrink: 8;
        }
	</style>
</head>
<body>
<ul>
    <li>1</li>
    <li>2</li>
    <li>3</li>
</ul>
</body>
</html>
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020/09/18 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
flex-grow计算公式
<!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 type="text/css"> *{ margin: 0; padding: 0;
贵哥的编程之路
2020/10/28
8820
flex-grow flex-shrink注意点
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>131-伸缩布局</title> <style> *{ margin: 0; padding: 0; } ul{ list-style: none; width: 600px; h
贵哥的编程之路
2020/10/28
2640
CSS 布局_2 Flex弹性盒
弹性盒,是一种布局方式,当页面需要适应不同的屏幕大小以及设备类型时,它依然能确保元素拥有更恰当的排布行为,弹性盒属于 CSS 3 部分,IE9 以下不支持,现代浏览器指的就是 IE9 及以上的浏览器
Nian糕
2018/08/21
1.5K0
CSS 布局_2 Flex弹性盒
Flex布局
Flex 是 Flexible Box 的缩写, 用来为盒状模型提供最大的灵活性,也被称为”伸缩布局”,”弹性布局”,”伸缩盒布局”,”弹性盒布局”。
赤蓝紫
2023/01/01
1.1K0
Flex布局
CSS6:flex布局
display inline-block主要用来做横向的布局。 用分离负maigin用来产生位移。
代码之风
2019/03/14
8090
CSS6:flex布局
display:flex
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <style> *{padding: 0px;margin: 0px;} ul { list-style: none; width: 600px; border: 1px solid red; margin: 100px auto; display: flex; } ul>li
贵哥的编程之路
2020/10/28
1.2K0
display:flex
flex:1的各种算法看CSS精通精通那里面有
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>131-伸缩布局</title> <style> *{ margin: 0; padding: 0; } ul{ list-style: none; width: 600px; h
贵哥的编程之路
2020/10/28
3090
flex-basis
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>131-伸缩布局</title> </head> <style> *{ margin: 0; padding: 0; } ul{ list-style: none; width: 600px; height: 600px; border
贵哥的编程之路
2020/10/28
2750
你不知道的flex
只需把主轴方向设置成column,并且子项flex-grow和flex-shrink属性为1即可
玖柒的小窝
2021/10/06
1860
你不知道的flex
flex-wrap align-content详解
<!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 type="text/css"> *{ margin: 0; padding: 0;
贵哥的编程之路
2020/10/28
6720
css伸缩布局 (中),讲解的到位。哈哈哈。
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <style> * { margin: 0px;padding: 0px; } ul { list-style: none; width: 600px;
贵哥的编程之路
2020/10/28
5070
CSS3盒子模型
给父级设置一个display:flex属性,子元素设置flex相关属性才可以自动分配宽高。
踏浪
2019/07/31
1.1K0
css属性为 { flex: 1 }时表示的意思
flex属性是 flex-grow + flex-shrink + flex-basis 的缩写
ZEHAN
2020/10/16
1.5K0
30分钟彻底弄懂flex布局
在这篇文章里,想说说flex布局的属性语法及其细节。那么网上也有不少flex布局的教程,为什么又要再写一篇?
elson
2018/10/13
11.1K5
30分钟彻底弄懂flex布局
Flex布局
注:设为 Flex 布局以后,子元素的float、clear和vertical-align属性将失效。
且陶陶
2023/04/12
1.5K0
Flex布局
flex-direction
<!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 type="text/css"> *{ margin: 0; padding: 0;
贵哥的编程之路
2020/10/28
2150
css基础教程之flex布局
二、flex-direction 该属性通过定义flex容器的主轴方向来决定felx子项在flex容器中的位置
老雷PHP全栈开发
2020/07/02
5830
CSS Flex 布局
给元素添加display: flex,该元素变成了一个弹性容器(flex container),它的直接子元素变成了弹性子元素(flex item)。
Cellinlab
2023/05/17
1.3K0
CSS Flex 布局
order排序
<!DOCTYPE html> <html> <head> <title></title> <style type="text/css"> *{ margin: 0; padding: 0; } ul{ list-style: none; width: 600px; height: 600px; bor
贵哥的编程之路
2020/10/28
4930
Flex弹性布局
取值:row(默认) | row-reverse | column | column-reverse
ymktchic
2022/01/18
1.5K0
Flex弹性布局
相关推荐
flex-grow计算公式
更多 >
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文