Confession: despite my extensive experience sewing with woven fabrics since I was only 11, I was incredibly ignorant about knit fabrics when I started using them about three years ago. Case in point: I thought all knits were stretch knits.
Now, it is true that all knits do stretch, at least a little bit, due to the nature of how they’re made – threads are literally knitted together, as they are in a scarf. This allows some stretch across the fabric but not with the grain. Depending on exactly HOW those threads are knitted and what the threads are made of, a knit fabric could have as little as 10% crosswise stretch and no vertical stretch or as much as 100%+ stretch in both directions (meaning a 12″ square could stretch to more than 24″).
For anything that is stretched when worn (has negative ease), you want a 4-way stretch knit (which means you can stretch it both horizontally and vertically AND it bounces back on its own in both directions, leading to four ways total). This requires some spandex content (also called elastene or the brand name Lycra).
I made this shirt 2.5 years ago out of a 100% cotton jersey. It has about 25% crosswise stretch and no vertical stretch. So, this shirt is pulled EXTREMELY tight across the bust but otherwise looks good on me when I pull everything in place, but it doesn’t move with me throughout the day, rides up due to lack of vertical stretch, and digs into my armpits/shortens at the sleeves. I originally intended it as a maternity shirt, but there’s no way it would stretch over a fuller bust or allow too much additional space for a belly.