Percentage based no. The way you can do this is min-max px width.
Percentage will always be a static percentage based on what you set it as. You can also min-max with percentage as well, but the issue is if you set it to max of 45% it'll persist at that in mobile as well which I why I suggest the static px method.
I usually use tabs to create a separate code for PC and phone. Phone users can thus switch to the phone code at their leisure. Alternatively or in addition, I usually also have a semi-coded version with only simplified code which always works on any device.