I know there must be better ways of doing this. What are your techniques?
It's common to have for example, 2 versions of a button and use CSS breakpoints to hide one on mobile, un-hide a different one for the desktop etc. If you feel like you're re-writing the whole site sometimes you might go back and take a look at what you're really doing. In complex designs this can sometimes be the only real option but thats rare in my experience (if you're using Data Tables all bets are off ).
If you're not yet super experienced in this kind of thing nows a great time to learn it at a fundamental level. If you're just trying to get something done and shipped so to speak, about any predefined CSS ( Bootstrap etc ) is going to get you there faster.
This is a good place to start if you're going the CSS-myself route:
https://www.w3schools.com/howto/howto_css_media_query_breakp...