책 소개
소스 파일은 아래 깃허브 페이지에서 내려 받으실 수 있습니다.
(https://github.com/AcornPublishing/css-mastery-2e)
요약
웹을 만들기 위해서는 뼈대가 되는 마크업과 표현을 하는 CSS를 이해하고 제대로 사용할 줄 알아야 한다. 모바일 시대로 넘어가면서 웹을 점점 덜 사용한다고 생각할 수도 있지만, 모바일 시대에서 웹킷(webkit) 기반의 브라우저 환경은 CSS를 사용한 다양한 표현을 하기 더 좋은 환경이 되었다. 모바일 웹이든 PC웹이든 웹을 제대로 만들기 위해 필요한 마크업과 CSS은 이 책을 통해 제대로 익힐 수 있다.
이 책에서 다루는 내용
이 책은 기본적인 HTML과 CSS를 알고 있다면 누구에게나 도움이 될 수 있습니다. CSS 디자인에 이제 막 발을 들여놓았는지, CSS 사이트 개발 경력이 몇 년인지에 관계 없이 이 책이 도움이 될 것입니다. CSS 개발 경험이 있다면 대부분 내용을 이해할 수 있을 것입니다. 하지만 독자가 아직 전문가는 아니라고 가정하고 진행합니다. 이 책은 실용적이고 실제 경험에서 비롯된 조언과 예제를 정리하고 있어서 최신 CSS 디자인을 마스터할 수 있게 도울 것입니다.
이 책의 구성
먼저 기본적인 CSS 개념, 실전 사례를 쉽게 설명하는 것에서 시작합니다. 코드 구성 방법과 주석 다는 방법, CSS 포지셔닝 모델, 플로팅과 플로팅 해제 방법 등을 배울 것입니다. 이런 내용을 이미 알고 있을지 모르겠습니다. 하지만 이 내용을 통해 새롭게 알게 되거나 그동안 잘못 알고 있었던 내용을 발견할 것입니다. 따라서 첫 3개의 장은 CSS 기본에 대한 핵심 정리이기도 하면서, 이미 알고 있었던 내용을 다시 한 번 상기하는 역할도 해줄 것입니다. 이렇게 기본기를 갖춘 후에 나오는 5개의 장은, 이미지, 링크, 리스트 처리나 폼, 데이터 테이블 같은 핵심적인 CSS 기법을 다룹니다. 각 장은 간단한 설명으로 시작해서 점점 더 복잡한 예제를 발전시켜 나갑니다. 이 부분에서는 모서리가 둥근 상자를 만드는 방법, 투명 그림자 효과 사용 방법, 탭형 내비게이션바를 만드는 방법, 플리커 스타일의 이미지맵 만드는 방법 등을 예제로 설명합니다. 예제 코드는 웹 사이트(www.cssmastery.com나 www.acornpub.co.kr/book/css-mastery-2e)에서 다운로드할 수 있습니다. 브라우저 버그 때문에 CSS 개발자들이 많은 고생을 합니다. 그렇기 때문에 이 책의 예제들에서는 여러 브라우저에서 잘 동작할 수 있게 하는 기법에도 신경을 썼습니다. 뿐만 아니라 하나의 장을 할애해서 버그와 버그를 수정하는 방법에 대해서도 다룹니다. 그 장에서는 버그를 발견할 수 있는 기술과 고칠 수 있는 방법을 알아봅니다. 또 마이크로소프트 인터넷 익스플로러에서 CSS 버그가 나타나는 이유에 대해서도 배울 것입니다. 마지막 두 개의 장에서는 유명한 CSS 디자이너인 사이먼 콜리슨과 캐머론 몰이 이 책에 나온 기법을 종합해 직접 만든 환상적인 적용 사례를 설명합니다. 따라서 각 기법의 동작 방식뿐만 아니라 실제 웹 프로젝트에서 활용하는 방법에 대해 배우게 될 것입니다.
이 책은 처음부터 시작해서 차례대로 읽어도 되고, 컴퓨터 옆에 놔두고 필요할 때마다 팁이나 기법을 찾아보는 방식으로 활용하셔도 됩니다. 원하는 대로 활용하세요.
추천의 글
웹 디자인의 세계는 놀랍습니다. 똑같은 모양을 만들기 위한 방법이 어림잡아 3,647가지나 됩니다. 그나마도 새로운 방법이 계속 나오고 있어서 이 숫자도 정확하지는 않습니다. 특정 문제를 바로잡는 방법은 한 가지가 아니라 여러 웹 디자이너들이 발견한 수많은 방법들을 이용할 수 있습니다. 이런 방법들을 선택할 수 있기에 웹 디자인은 재미있고 흥미로운 동시에, 너무나 많은 정보 때문에 정신이 없기도 하죠. 이 책은 지나치게 많은 정보에 파묻힌 사람들에게 확실한 안내를 해줄 것입니다. 앤디 버드는 지난 몇 년간 웹 표준 디자인을 위한 많은 글과 디자인을 발표했습니다. 명확하고도 쉽게 따라 해볼 수 있는 핵심적인 CSS 기법의 설명이 녹아 있는 이런 책을 접할 수 있다는 건 정말 행운입니다. 우리 같은 웹 전문가에게는 없어서는 안될 모든 해법과 팁을 한눈에 볼 수 있게 이 책에 정리해 놓았습니다.
저는 항상 목표를 달성하기 위해 한 가지 방법만을 추천하는 식의 책들을 그리 좋게 보지 않았습니다. 앤디 버드는 그런 방식과 완전히 반대의 접근 방법으로 다양한 방식을 설명합니다. 예를 들어 링크 스타일을 꾸민다든지, 탭 내비게이션을 만든다든지 할 때 여러 가지 방법이 있다고 설명하고 CSS3 방식으로 빠르게 해결할 수 있는 방법을 사용하거나 레이아웃을 만들 때도 고정형(fixed), 화면 비례형(fluid), 글자 비례형(elastic)의 여러 가지 방법을 사용합니다. 또 CSS를 사용해서 디자인할 때 부딪힐 수 있는 각종 브라우저 버그를 해결하는 방법에 대한 도움도 설명합니다. 동일한 일반적인 엘리먼트라도 다양한 방법과 기법들을 사용할 수 있게 되면 필요한 곳에 가장 적당하다고 생각하는 방식을 도입할 수 있을 것입니다.
이뿐만 아니라, 디자이너 두 명의 도움을 받아 이 책에서 설명한 기법을 종합해서 사이트를 만드는 방법까지 다루었습니다. 저는 오래 전부터 캐머론과 사이먼 작업의 팬이었습니다. 이 두 사람이 만든 적용 사례를 통해 유동적이고 방탄웹적인 유연한 스타일 해법을 볼 수 있다는 건 정말 대단한 혜택이 아닐 수 없습니다. 자, 그럼 여러분 스스로 3,647가지 방법을 직접 실행해보면서 CSS를 마스터하시기 바랍니다.
- 댄 씨더홈(Dan Cederholm) / 『(개정판) 웹 2.0을 이끄는 방탄웹』, 『Web Standards Solution Special Edition 한국어판』 저자
목차
목차
- 1장 기초 다지기
- 구조가 탄탄한 코드 만들기
- 마크업의 역사
- 의미의 중요성
- ID와 클래스 이름 짓기
- 엘리먼트 이름
- ID 또는 클래스 사용
- div와 span
- 마이크로포맷
- HTML과 CSS 버전
- 문서 유형, DOCTYPE 전환, 브라우저 모드
- 유효성 검사
- 브라우저 모드
- DOCTYPE 전환
- 마크업의 역사
- 요약
- 구조가 탄탄한 코드 만들기
- 2장 스타일을 꾸밀 대상 선택하기
- 선택자 활용 기초
- 유사 클래스 선택자
- 전체 선택자
- 고급 선택자
- 자식 선택자, 인접 형제 선택자
- 속성 선택자
- 캐스케이드 효과와 적용 순서
- 지정 순위
- 스타일시트에서 지정 순위 활용하기
- body 태그에 클래스나 ID 지정하기
- 스타일시트를 계획 구성 관리하는 방법
- 문서에 스타일 적용하기
- 구조 표시를 위한 주석
- 작업 기록을 위한 주석
- 주석을 제거하고 스타일시트 최적화하기
- 스타일 가이드
- 요약
- 선택자 활용 기초
- 3장 화면 표시를 위한 모델 완벽 정리
- 박스 모델 완벽 정리
- 인터넷 익스플로러의 박스 모델
- 마진 겹침 현상
- 포지셔닝 완벽 정리
- 화면 표시 모델
- 상대 위치
- 절대 위치
- 고정 위치
- 플로팅
- 라인 박스와 플로트 해제 방법
- 요약
- 박스 모델 완벽 정리
- 4장 배경 이미지와 이미지 대치 기법
- 배경 이미지 기초 다지기
- 고정폭 둥근 모서리 상자
- 둥근 모서리 상자 모양 만들기
- 유동폭 둥근 모서리 상자
- 마운틴탑 코너
- 복수 배경 이미지
- border-radius
- border-image
- 그림자 효과
- 간단한 그림자 효과 내기
- Clagnut 스타일 그림자 효과
- Box-shadow
- CSS 투명도
- 투명도
- RGBa
- PNG 투명도
- 시점차를 활용한 움직이는 배경 기법
- 이미지 대치 기법
- FIR 방법
- 파크 방법
- sIFR 방법
- 요약
- 배경 이미지 기초 다지기
- 5장 링크 모양 꾸미기
- 링크 스타일 기초
- 밑줄 치며 놀기
- 기본 링크 꾸미기
- 예쁜 링크 밑줄 만들기
- 방문했던 링크 스타일
- 링크 대상에 스타일 입히기
- 링크 유형별로 스타일 지정하기
- 문서나 뉴스 피드 다운로드용 링크 꾸미기
- 버튼처럼 보이는 링크
- 롤오버 기초
- 이미지를 사용한 롤오버 효과
- 픽시 방법을 이용한 롤오버 효과
- CSS 스프라이트
- CSS3를 사용한 롤오버
- CSS로만 만드는 툴팁
- 요약
- 6장 리스트 스타일과 내비게이션
- 리스트 스타일 기초
- 세로형 내비게이션바 만들기
- 내비게이션바에서 현재 페이지 표시하기
- 단순한 가로형 내비게이션바
- 이미지를 사용한 내비게이션바
- 슬라이딩 도어 효과의 탭 내비게이션바 만들기
- CSS 드롭다운
- CSS 이미지맵 만들기
- 플리커 스타일의 이미지맵 만들기
- 리모트 롤오버 만들기
- 정의 리스트
- 요약
- 7장 접근성 높은 폼과 테이블 만들기
- 데이터 테이블 스타일 꾸미기
- 테이블 관련 엘리먼트 소개
- 써머리와 캡션
- thead, tbody, tfoot
- col, colgroup
- 데이터 테이블 마크업 만들기
- 테이블 스타일 꾸미기
- 화면 모양 만들기
- 테이블 관련 엘리먼트 소개
- 간단한 폼 레이아웃 만들기
- 유용한 폼 엘리먼트
- 폼 레이블
- 기본 레이아웃
- 기타 엘리먼트 처리 방법
- 장식 마무리
- 필수 입력 항목
- 복잡한 폼 레이아웃 만들기
- 접근성을 고려한 데이터 입력 방식
- 다단 레이아웃의 체크 박스
- 서브밋 버튼
- 폼 에러 메시지 만들기
- 요약
- 데이터 테이블 스타일 꾸미기
- 8장 레이아웃
- 레이아웃 계획 수립
- 기반 구조 정의
- 가운데 레이아웃 만들기
- 플로트 기반의 레이아웃
- 플로트를 이용한 2단 레이아웃
- 플로트를 이용한 3단 레이아웃
- 고정 레이아웃, 유동 레이아웃
- 화면 비례형 레이아웃
- 글자 비례형 레이아웃
- 글자와 화면 크기에 따라 늘어나는 이미지
- 가짜 단 모양 만들기
- 동일 높이 다단 구조
- CSS3 컬럼
- CSS 프레임워크 vs CSS 시스템
- 요약
- 9장 브라우저 버그 해결하기
- 흔히 발생하는 CSS 문제
- 버그 잡기
- 지정 순위와 정렬 방법 오류
- 마진 겹침 현상
- 버그 잡기 기초
- 처음부터 버그 만들지 않기
- 문제 분리하기
- 테스트 범위 최소화하기
- 증상이 아닌 문제 원인 바로 잡기
- 도움 요청
- 레이아웃
- 레이아웃이란
- 레이아웃 때문에 생기는 효과
- 문제 해결
- 인터넷 익스플로러 조건 주석문
- 핵과 필터 사용에 대한 경고
- 핵 사용 시 유의점
- 밴드 패스 필터
- 별표 HTML 필터
- 자식 선택자 핵
- 더블 마진 플로트 버그
- 흔히 발생하는 버그 해결 방법
- 텍스트 주변에 3픽셀 공간 표시 버그
- IE 6의 문자 중복 표시 버그
- IE 6의 피커부 버그
- 상대 좌표 컨테이너에서 절대 좌표 지정
- 인터넷 익스플로러 관련 이야기
- 단계적 브라우저 지원
- 요약
- 흔히 발생하는 CSS 문제
- 10장 케이스 스터디: 로마 이탈리아
- 케이스 스터디 개요
- 기반 구조
- HTML5 미리 보기
- reset.css
- 1080 레이아웃과 그리드
- 웹 디자인과 그리드
- 고급 CSS2와 CSS3 기능들
- Dowebsitesneedtolookexactlythesameineverybrowser.com
- 속성 선택자
- Box-shadow, RGBa, text-overflow
- 1999년식 font-size 지정
- 폰트 연결과 더 나은 웹 타이포그래피
- 꾸밈 구두점
- 다단 구조 텍스트 레이아웃
- @font-face
- Cufon, @font-face로의 중간 과정
- AJAX와 jQuery를 사용한 인터랙션
- AJAX
- jQuery
- AJAX와 jQuery 검색 사용
- 요약
- 11장 케이스 스터디: 클라임 더 마운틴스
- 케이스 스터디 개요
- 스타일시트 구성 및 규칙
- 제일 많이 사용하는 screen.css
- 설명 붙이기
- 초기화
- 조건 주석을 사용한 인터넷 익스플로러용 스타일시트
- 자유로운 그리드 사용
- 예제 사이트의 레이아웃
- 클래스를 사용한 내비게이션
- 현재 페이지 하이라이트
- 인용구 표시
- 엘리먼트 타깃팅
- 하위 선택자
- :first-child 의사 선택자
- 인접 형제 선택자
- 투명도, 그림자, 둥근 모서리
- 목표
- 설명 이미지 겹침 표현 및 RGBa 투명도
- 클래스 결합
- border-radius
- box-shadow
- 목록 위치/구성 및 콘텐트 표현
- 동근 모서리
- 등고선 차트 표현
- 요약