CSS is used to separate document structure from presentation in HTML. There are three main ways to apply CSS - inline with the style attribute, embedded in the <head> with <style> tags, and externally in a .css file linked via <link>. External is preferred as it is most reusable and separates content from presentation per HTML's goals. CSS uses selectors to target elements and various properties to style them. The box model accounts for sizing of elements, and positioning can make elements static, relative, absolute or fixed. Specificity determines which styles take precedence in conflicts.