There are tons of ways to make a buttonhole in knitting, but I usually end up making the same one every time: Margaret Fisher's. It's relatively easy to do, although it can be a bit fiddly (because I'm a pretty tight knitter).

Of all my knitting books (and I've got quite a few!), Margaret Fisher's Seven Things is one of my favourites. It explains seven techniques you need for sweater knitting in a very clear way, well illustrated with photos. There's a pattern for a sweet little baby cardigan that incorporates the seven techniques. I've actually knit that cardi and it came out beautifully.

My buttonhole shorthand

  • Knit to start buttonhole
  • Slip next stitch with yarn in front
  • Bring yarn to back and drop
  • Slip next stitch from left to right and start binding off. Bind off X stitches
  • Slip last bound off stitch from right to left
  • Turn work
  • Cable cast on X stitches (remember to twist new stitch before placing on left needle)
  • Cast on one more, BUT, before placing on left needle, bring yarn to front
  • Turn work
  • With yarn in back, slip one stitch left to right, then pass second stitch on right needle over
  • Carry on!

Placement

By the way: to calculate where to place the buttonholes, use the "pattern repeat" technique (the same way you do when calculating decreases).

The pattern repeat in this case is a buttonhole plus the following stitches. But you don't want to end with a full pattrep, just with a buttonhole, so you'll need one less pattrep than your number of buttons. The size of a pattrep is approximately [number of stitches in the row] divided by [number of pattreps].

You'll need one or two stitches before the first buttonhole and after the last one, so you'll be using up the pattreps, plus the last buttonhole, plus those extra stitches at beginning and end.
If that turns out to be more than the total number of stitches in the buttonband, make the pattrep one stitch smaller, and place the now remaining stitches manually...

Note: when counting out the placement, remember that the last psso of the buttonhole is actually the first of the stitches that follow the buttonhole!