请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

正在回答 回答被采纳积分+3

2回答

西门老舅 2021-08-15 20:15:24

同学你好,这个收缩比例如果是小数,也是按照我视频中说的方式进行换算。

具体以你给的代码进行换算如下:

  1. 溢出部分大小 ->  300 + 400 - 500  ->   200

  2. 由于一个占0.3,一个占0.5,因此不能完全收缩,收缩的部分为 溢出大小即上面的200 * (0.3 + 0.5) -> 160

  3. 因此有200 - 160 >  40 个像素会溢出盒子

  4. 现在来观察两个子项的比例,400 是 0. 3 , 300 是 0.5 ,所以根据视频中的换算比例为 1200 比 1500 ,及12 :  15

  5. 第一个子项的最终宽度为:400 - 12/27 * 160 -> 328.8888888888889

  6. 第二个子项的最终宽度为:300 - 15/27 * 160 -> 211.11111111111111

祝您学习愉快~


0 回复 有任何疑惑可以回复我~
  • 提问者 怒焰狂暴 #1
    如果一个值为小数,另外一个值为整数的时候,又该如何计算呢?
    回复 有任何疑惑可以回复我~ 2021-08-15 21:07:40
  • 提问者 怒焰狂暴 #2
    比例的问题有些混乱
    回复 有任何疑惑可以回复我~ 2021-08-15 21:08:05
  • 西门老舅 回复 提问者 怒焰狂暴 #3
    其实还好,首先记住累加大于等于1就不会有溢出空间,即完全收缩,这样就可以知道收缩的总和大小是多少啦。
    下面就是按比例进行分配收缩总和的大小。比如你说的小数和1,该多少就多少,假设0.5和1那就是1:2,还有考虑他们的大小,所以比例是由收缩和宽这两个值共同决定的,具体算法我的回复已经阐述过了。
    回复 有任何疑惑可以回复我~ 2021-08-15 21:22:44
提问者 怒焰狂暴 2021-08-15 15:57:46

<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <meta http-equiv="X-UA-Compatible" content="IE=edge">

    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <title>Document</title>

    <style>

        .main{

            width:500px;

            height:500px;

            background:skyblue;

            display:flex;

        }

        .main div:nth-child(1){

            width:400px;

            height:100px;

            background:tomato;

            flex-shrink:0.3;   

        }     

        .main div:nth-child(2){

            width:300px;

            height:100px;

            background:tomato;

            flex-shrink:0.5;   

        }

    </style>

</head>

<body>

    <div class="main">

        <div>1</div>

        <div>2</div>

    </div>

</body>

</html>



0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信