When I remove the individual label tag from each input tag on another html editor (codepen.io) I get the same result, although free code camp gives me an error. (See code).
Q: So what’s the write way to use the tag? Does every single checkbox or radio button option need to come with its own label tag?
Actually, the label tag is the thing in the front, <label for="loving"> … so both of your examples are using a label tag… whats missing in your second example is the closing tag for those labels </label>… that is definitely an error, but html is a very flexible language and can sometimes recover from such errors. Take your last line for example.
<p>My first paragraph.</p> - That is correct… but if you type:
<p>My first paragraph. - That is incorrect… but it will still render seemingly the same.
But rest assured it is incorrect, and as your pages get more complex, those types of mistakes or leaving those out will have undesireable affects and bugs that may ruin your page.