Why do field labels in Event Registration forms not display correctly
This is specifically a problem with Bootstrap.  In its infinite wisdom, it has laid claim to the class "label" to display an element like it's a tag or label.  Unfortunately, you just have to add the following CSS, which overrides everything that Bootstrap adds:

.crm-container .label {
  display: inherit;
  padding: inherit;
  font-size: inherit;
  font-weight: inherit;
  line-height: inherit;
  color: inherit;
  text-align: inherit;
  white-space: inherit;
  vertical-align: inherit;
  border-radius: inherit;
}


Big picture, this is a deep-seated problem with Bootstrap: the class names it uses are way too broad and common.  Other UI frameworks play much more nicely and prefix their magical classes with something that'll avoid this kind of namespace clash.