CSS는 HTML과 달리 문법에 엄격하다.
구두점 하나만 빼먹는 실수를 해도 전체 CSS파일의 로딩에 실패한다. 따라서 CSS를 편집할 때는 코드의 무결성을 검증해줄 수 있는 IDE나 코드 에디터를 사용하는 게 좋다.
또한 단일 객체에 대해 여러 개의 CSS 문법이 물려 있을 경우 가장 나중에 서술된 문법을 따른다(애시당초 CSS의 본말이 Cascading Style Sheet ─ 내리꾸미기 서식─ 이다). 물론 우선적으로 적용되어야 하는 문법에 !important 키워드를 넣어 제어할 수는 있다.
CSS를 어떤 식으로 불러오는가에 따라서도 우선순위가 달라지는데,


CSS는 HTML과 달리 문법에 엄격하다. 구두점 하나만 빼먹는 실수를 해도 전체 CSS파일의 로딩에 실패한다. 따라서 CSS를 편집할 때는 코드의 무결성을 검증해줄 수 있는 IDE나 코드 에디터를 사용하는 게 좋다. 또한 단일 객체에 대해 여러 개의 CSS 문법이 물려 있을 경우 가장 나중에 서술된 문법을 따른다(애시당초 CSS의 본말이 Cascading Style Sheet ─ 내리꾸미기 서식─ 이다). 물론 우선적으로 적용되어야 하는 문법에 !important 키워드를 넣어 제어할 수는 있다.

CSS는 HTML과 달리 문법에 엄격하다. 구두점 하나만 빼먹는 실수를 해도 전체 CSS파일의 로딩에 실패한다. 따라서 CSS를 편집할 때는 코드의 무결성을 검증해줄 수 있는 IDE나 코드 에디터를 사용하는 게 좋다. 또한 단일 객체에 대해 여러 개의 CSS 문법이 물려 있을 경우 가장 나중에 서술된 문법을 따른다(애시당초 CSS의 본말이 Cascading Style Sheet ─ 내리꾸미기 서식─ 이다). 물론 우선적으로 적용되어야 하는 문법에 !important 키워드를 넣어 제어할 수는 있다. CSS를 어떤 식으로 불러오는가에 따라서도 우선순위가 달라지는데, 보통 개별 태그의 style="..." 속성, style 태그, link 태그 순으로 우선순위가 정해진다. 그러나 웹 브라우저나 네트워크 환경에 따라 호이스팅[6]이 발생할 수 있기 때문에 반드시 웹 브라우저에서 확인해야 한다.

과거에는 HTML에 디자인적 요소를 포함하여 작성하는 것이 일반적이었다. 다시 말해서 온갖 레이아웃, 디자인 정보를 HTML 안에 욱여넣다 보니 HTML의 본연의 목적인 구조화된 문서가 아닌 디자인을 위한 문서로 전락하고 말았다. 표를 작성해야 하는 table 태그가 레이아웃을 구성하는 용도로 쓰이는 등으로 인해 HTML 소스코드만 보면 이 문서가 어떤 문서인지 전문가조차 알기 힘든 상황이었다.[2]

이에 따라 W3C에서는 "디자인적 요소를 HTML과 완전히 분리시켜 구조화된 HTML을 만들어보자!" 라는 목적으로 CSS를 발표했다. 거기에 따라 bgcolor 등과 같이 HTML에서 디자인에 관련된 요소들은 전부 사용하지 말 것을 권고하고 있다. CSS 발표 이후로 HTML문서의 구조화를 도와주는 div, span, section 등의 새로운 태그가 도입되고 strike, font 등의 스타일 태그는 비권장 태그로 전환되다가 HTML5에서는 아예 삭제되었다. table은 표 형태의 데이터를 표현하는 용도에만 쓰도록 권고하면서 표의 구조화를 도와줄 thead, tbody태그가 새로 소개되었다.


구조화된 HTML은 HTML 태그를 본연의 용도에 맞게 사용하는 것이다. 예를 들어 최상위 제목을 뜻하는 h1 태그는 문서의 제목 수준으로 쓰이며, 본문 문단은 p 태그로 나눈다. 이렇게 하면 디자인적 요소가 대부분 배제되기 때문에 HTML을 알아보기 훨씬 쉽다. 여기서 '알아보기 쉽다'에는 사람(프로그래머)뿐만 아니라 기계(웹 브라우저)역시 포함된다. 기계가 이해하기 쉬운 HTML은 다양한 포맷으로 출력 형식을 바꾸기 용이하고(CSS파일을 모바일용, PC용 등으로 각자 준비해 교체하는 방식으로 적용한다), 문서의 해독(파싱)속도가 빨라지며 동적인 기능을 구현하기가 더 쉬워진다. 그리고 대부분의 경우 구조화된 HTML이 과거의 비구조화 HTML보다 문서 크기가 상대적으로 작다.


이렇게 하면 디자인에 필요한 부분은 CSS가 전담하기 때문에 웹디자이너와 웹프로그래머 간의 협업이 훨씬 용이해진다. 게다가 CSS는 HTML문서에 style 태그 안에 삽입할 수도 있지만 별도의 파일로 분리하는 것도 가능해서 다른 HTML에서도 동일한 CSS를 사용할 수 있다. 즉 웹페이지를 제작할 경우 글꼴 등의 웹페이지의 스타일을 저장해두면 웹페이지의 한가지 요소만 변경해도 관련되는 전체 페이지의 내용을 한꺼번에 변경할수 있어 일관성을 유지하고 작업시간도 줄이고 트래픽을 줄이는 효과도 있다. 트래픽은 모바일 환경에서 더더욱 장점으로 작용하는데, 인터넷 무제한 요금제(정액제)가 아닌 이상 패킷을 최대한 적게 쓰는 것이 요금폭탄을 피하는 최선의 방법이다. 또한 로딩 속도가 빨라지는 장점도 있다.


단, CSS는 HTML을 완벽하게 습득한 상태라 할지라도 그 용법이나 문법에 상이한 차이를 가지고 있기 때문에 상당 시간의 연습과 실전 경험이 필요하다. 특히 인터넷 익스플로러 구버전(6~7)[3]에서는 자신의 의도와는 다른 결과물을 출력하는 경우가 많다. 이 때문에 IE 6, 7을 지원하기 위해 작업하다 보면 CSS에 각종 핵[4]이 우후죽순으로 들어서는 것을 볼 수 있다. CSS 최신 표준안(버전 2.1)의 지원이 IE8에서야 제대로 이루어졌기 때문에 발생하는 일이다. 2010년대에는 이 자리를 Safari가 꿰찼다(...).[5]