flex-shrink的计算和flex-grow是不同的,flex-shrink不同项有权重不同,下面举个例子
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <div style="width: 200px;margin: auto;border: 1px solid #000;display: flex"> <div style="flex-shrink: 2;width: 150px;">one</div> <div style="flex-shrink: 1;width: 100px;">two</div> </div> </body> </html>
总权重:2*150 + 1*100 = 400; one所要减去的长度:50*2*150/400 = 37.5;(多出来的长度乘以此元素所占比例--2*150/400) two所要减去的长度:50*1*100/400 = 12.5; 所以最终one长度为112.5,two长度为87.5;