How To Shrink A From A Max-height To A Min-height Over The Size Decrease Of The Viewport Width?
Solution 1:
I'm assuming the wording in the question is what is required, i.e. the left element is to have a min value of 400px, a max value of 500px and is to increase in size from the min starting at body width 1300px and stopping at 1920px.
left therefore needs to be set to have a min-width: 400px
and max-width: 500px
We need to calculate what the width will be to increase by 100px between the given start and end body width values. The formula for this is:
s + (i / d) * (a - b)
where s = starting width of left element (400) i = increase in left width (100) d = difference between start and end body widths (1620) a = actual body width now (100%) b = starting body width (1300)
The right element is to take up the remaining space so needs to be given flex: auto;
In this snippet the various dimensions have been set using CSS variables so as to make it easier to change them.
.full{
background-color: lightblue;
width: 100%;
height: 50px;
}
.half{
width: 50%;
height: 50px;
background-color:grey;
}
#flex{
display: flex;
}
.right{
height: 50px;
background-color: lightgreen;
flex: auto;
}
.left{
height:50px;
background-color:lightpink;
/* SET THESE 4 VARIABLES TO WHAT YOU WANT */--startb: 1300; /* width of the body after which left starts to get bigger */--endb: 1920; /* width of the body after which left stops getting bigger */--startleft: 400; /* the start (hence minimum) width of the left element */--incw: 100; /* the increase in the left's width when have reached the end body width *//* we calculate some interim values just to make it a bit easier to see what's happening */--startbw: calc(var(--startb) * 1px);
--endbw: calc(var(--endb) * 1px);
--incb: calc(var(--endb) - var(--startb));
--startw: calc(var(--startleft) * 1px);
width: calc(var(--startw) + calc(calc(var(--incw) / var(--incb)) * calc(100% - var(--startbw))));
min-width: var(--startw);
max-width: calc(var(--startw) + calc(var(--incw) * 1px));
}
<divclass="full"></div><divclass="half"></div><divid="flex"><divclass="left"></div><divclass="right"></div></div>
Post a Comment for "How To Shrink A From A Max-height To A Min-height Over The Size Decrease Of The Viewport Width?"