There are three types of style sheets in HTML - external, internal, and inline. External style sheets are recommended when styles will be used across multiple pages by linking the style sheet to each page. Internal style sheets use the <style> tag and suit pages that need unique styles. Inline styles are applied directly to elements using the style attribute. CSS can style HTML elements by adding styles in CSS files, the <style> element, or inline using the style attribute.