As a quick aside, I'll note here that most colorwork is done on a stockinette ground. The reason for this is the part of the stitch that shows for knit stitches versus purl stitches. Knit stitches emerge from the front of the stitch below, so that only the loop which actually forms the stitch is visible on the right side of the fabric, and if another knit stitch emerges from the top, only the two legs of the stitch remain visible. Purl stitches, however, emerge from the back, which means that the top of the loop below and the strand of yarn between stitches are both visible. This leads to a dotted or dashed appearance at the transition; if you've never observed this in your own knitting, go look at the inside of a commercially knit sweater with horizontal stripes.
This mixing of the colors, which is inherent in the structure of the stitches, is unavoidable, and is the reason most colorwork is done in stockinette, so that the transitions between colors is crisp and clean. There are some exceptions to the all-stockinette rule, but you'll find that they're generally done in a way that takes this effect into account, and minimizes its appearance. As an example, when knitting a striped ribbed sweater, it's common to knit the entire first row of the new color. This disrupts the ribbing only in the purl valleys, as the knit ribs would have been knitted anyway, and is remarkably unobtrusive, as the knit stitches tend to recede into the purls, just as a single purl row on stockinette will pop forward.