Button loops are a great way to add buttons without having to knit buttonholes, like in the knitting pattern Baby Ruffle Dress. With button loops you can also decide to sub in a zipper instead (or convert a cardigan with a zipper to buttons easily). They are great if you don't want to have to worry about making perfectly spaced button holes as you go along- with button loops you can decide how many and where you want the buttons as you go along.
Button loops work best with a sturdy yarn- DK and worsted weight work especial well- sock yarns and thinner tend to be too thin, and thicker yarns have larger knots that might show as bumps on the front.
Make button loops: For each button loop cut a 6 inch piece of matching yarn. Tie an overhand loop knot, making a loop just wide enough to easily slip a button through. Tie a second knot right below the first. If using a slippery yarn use fray check, glue, or a dot of nail polish on the knots to keep them from coming loose. Trim ends to just below the knots once glue is dry.
Using a sharp needle and matching thread, sew the button loops on the wrong side opposite the buttons, being sure to stitch securely in place. It works best to sew the loop in several places (each knot and between the knots) to the hem. This prevents the button loop from pulling on and loosening the stitches in one part (preventing a gap in the edge) and makes the button loop line up nice and straight along the edge.
I always like to line up button loops by threading them through the buttons- this makes it easy to see where *exactly* you need to be sewing the loops- both for how far apart and how far in to the hem the loops should be sewn (loops that are a bit longer than others get sewn further in to the hem so that they line up on the edge at the same amount as the other loops). This is also a good test to make sure your loops are big enough!
For thin or delicate yarns you may want to twist several strands of yarn together to make a thicker cord before tying the knots to make the loop more sturdy.
Button loops work best for edges that match up exactly (no or minimal overlap), and in places where the buttons will remain buttoned most of the time, since while minimal, button loops will stick out when not buttoned.