이미 소장하고 있다면 판매해 보세요.
|
01장 이것만 알면 쉬워지는 CSS
__1.1 체계적인 구성의 디자인 패턴 레시피 __1.2 디자인 패턴 사용법 __1.3 스타일시트 사용법 __1.4 CSS 문법 __1.5 선택자 우선순위 __1.6 우선순위 단순화 __1.7 HTML과 CSS 관련 링크 __1.8 많이 쓰는 CSS 속성 __1.9 모든 브라우저가 지원하는 CSS 속성과 값 __1.10 내용을 위한 CSS 속성과 값 __1.11 레이아웃을 위한 CSS 속성과 값 __1.12 특정 요소에만 적용되는 CSS 속성과 값 __1.13 선택자 __1.14 미디어 쿼리 __1.15 가변 크기 단위 __1.16 고정 크기 단위 __1.17 96dpi 화면의 크기 단위 환산표 __1.18 96dpi 화면의 폰트 크기 단위 환산표 __1.19 전환, 애니메이션, 2D 변형 __1.20 CSS 오류 해결하기 __1.21 스타일시트 표준화 02장 HTML 디자인 패턴 __2.1 HTML 구조 __2.2 XHTML __2.3 DOCTYPE __2.4 헤드 요소 __2.5 조건부 스타일시트 __2.6 구조 블록 요소 __2.7 종결 블록 요소 __2.8 다용도 블록 요소 __2.9 인라인 요소 __2.10 클래스 속성과 아이디 속성 __2.11 HTML 공백 03장 CSS 선택자와 상속 __3.1 요소/클래스/아이디 선택자 __3.2 위치/그룹 선택자 __3.3 속성 선택자 __3.4 가상 요소 선택자 __3.5 가상 클래스 선택자 __3.6 자손 클래스 선택자 __3.7 상속 __3.8 가짜 상속 04장 박스 모델 __4.1 화면 표시 __4.2 박스 모델 __4.3 인라인 박스 __4.4 인라인 블록 박스 __4.5 블록 박스 __4.6 테이블 박스 __4.7 절대 위치 박스 __4.8 플로트 박스 05장 박스 모델 크기 __5.1 너비 __5.2 높이 __5.3 지정 크기 __5.4 자동 축소 __5.5 자동 확대 06장 박스 모델 속성 __6.1 마진 __6.2 테두리 __6.3 패딩 __6.4 배경 __6.5 오버플로우 __6.6 가시성 __6.7 페이지 구분 07장 배치 모델 __7.1 배치 모델 소개 __7.2 배치 속성값 __7.3 기준 요소 __7.4 스택 콘텍스트 __7.5 요소와 내용 묶기 __7.6 정적 배치 __7.7 절대 위치 __7.8 고정 배치 __7.9 상대 위치 __7.10 플로트 지정과 해제 __7.11 상대적 플로트 배치 08장 들여넣기, 간격 띄우기, 정렬하기 __8.1 들여넣기 __8.2 정적 요소 간격 띄우기 __8.3 정적 테이블 간격 띄우기와 들여넣기 __8.4 플로트 요소 간격 띄우기 __8.5 절대 요소와 고정 요소 간격 띄우기 __8.6 상대 요소 간격 띄우기 __8.7 정적 인라인 요소 정렬 __8.8 정적 블록 요소 정렬과 간격 띄우기 __8.9 정적 테이블 정렬과 간격 띄우기 __8.10 절대 요소 정렬과 간격 띄우기 __8.11 절대 요소 중앙 정렬 __8.12 외부 정렬 09장 고급 배치 기법 __9.1 왼쪽 정렬 __9.2 왼쪽 간격 띄우기 __9.3 오른쪽 정렬 __9.4 오른쪽 간격 띄우기 __9.5 세로 중앙 정렬 __9.6 중앙 간격 띄우기 __9.7 상단 정렬 __9.8 상단 간격 띄우기 __9.9 하단 정렬 __9.10 하단 간격 띄우기 __9.11 가로 중앙 정렬 __9.12 중앙 간격 띄우기 10장 글자 스타일 지정 __10.1 폰트 __10.2 형광펜 효과 __10.3 글자 장식 __10.4 글자 그림자 __10.5 글자 대신 이미지 사용 __10.6 캔버스와 VML로 글자 대체 __10.7 폰트 삽입 __10.8 글자 숨기기 __10.9 스크린리더만 인식하는 글 11장 내용에 여백 넣기 __11.1 여백 지정 __11.2 인라인의 블록화 __11.3 줄바꿈 방지 __11.4 공백 유지 __11.5 코드체 __11.6 내용 패딩 __11.7 인라인 여백 요소 __11.8 인라인 장식 요소 __11.9 줄바꿈 __11.10 인라인 가로 구분선 12장 내용 정렬하기 __12.1 들여쓰기 __12.2 내어쓰기 __12.3 내용 가로 정렬 __12.4 내용 세로 정렬 __12.5 내용 세로 간격 띄우기 __12.6 위 첨자와 아래 첨자 __12.7 정렬 콘텍스트 포개기 __12.8 고급 정렬 예제 13장 블록 __13.1 구조적 의미 __13.2 구조 시각화 __13.3 섹션 __13.4 리스트 __13.5 배경 불릿 __13.6 블록의 인라인화 __13.7 마진 병합 __13.8 런인 __13.9 블록 가로 구분선 __13.10 블록 여백 요소 __13.11 블록 여백 제거 요소 __13.12 왼쪽 마진 __13.13 오른쪽 마진 14장 이미지 __14.1 이미지 __14.2 이미지 맵 __14.3 페이드아웃 __14.4 반투명 효과 __14.5 글자 대신 이미지 사용 __14.6 이미지 위에 내용 표시 __14.7 배경 이미지 위에 내용 표시 __14.8 CSS 스프라이트 __14.9 이미지에 그림자 넣기 __14.10 이미지에 그림자 넣기 응용 __14.11 둥근 모서리 __14.12 종합 예제: 이미지 15장 테이블 __15.1 테이블 __15.2 행 그룹과 열 그룹 __15.3 테이블 선택자 __15.4 테두리 분리 __15.5 테두리 병합 __15.6 병합 테두리 스타일 __15.7 셀 감춤과 셀 삭제 __15.8 행/열 감춤과 삭제 __15.9 데이터 세로 정렬 __15.10 다용도 블록 요소 __15.11 일반 요소로 테이블/행/셀 표현 __15.12 테이블 레이아웃 16장 테이블 열 레이아웃 __16.1 열 너비 __16.2 자동 축소 열 __16.3 지정 크기 열 __16.4 내용 비례 열 __16.5 크기 비례 열 __16.6 백분율 비례 열 __16.7 반비례 열 __16.8 자동 축소 균등 열 __16.9 너비 등분 열 __16.10 너비 미달 열 __16.11 가변 너비 열 __16.12 종합 예제: 열 레이아웃 혼용 17장 각종 레이아웃 기법 __17.1 유동 레이아웃 기초 __17.2 내부 박스 __17.3 플로트 섹션 __17.4 플로트 구분선 __17.5 유동 레이아웃 __17.6 좌우 플로트 요소 __17.7 이벤트 스타일 지정 __17.8 롤업 __17.9 탭 메뉴 __17.10 탭 __17.11 드롭다운 메뉴 __17.12 버튼 __17.13 레이아웃 링크 __17.14 다단 레이아웃 __17.15 템플릿 레이아웃 __17.16 종합 예제: 레이아웃 18장 드롭캡 __18.1 정렬 드롭캡 __18.2 first-letter 드롭캡 __18.3 내어쓰기 드롭캡 __18.4 패딩 드롭캡 __18.5 플로트 드롭캡 __18.6 플로트 그림 드롭캡 __18.7 마진 드롭캡 __18.8 마진 그림 드롭캡 19장 콜아웃과 인용 __19.1 왼쪽 플로트 콜아웃 __19.2 오른쪽 플로트 콜아웃 __19.3 중앙 콜아웃 __19.4 왼쪽 마진 콜아웃 __19.5 오른쪽 마진 콜아웃 __19.6 블록 인용 __19.7 인라인 블록 인용 __19.8 인라인 인용 20장 경고 __20.1 자바스크립트 경고창 __20.2 툴팁 경고창 __20.3 팝업 경고창 __20.4 경고문 __20.5 인라인 경고문 __20.6 내어쓰기 경고문 __20.7 그림 경고문 __20.8 런인 경고문 __20.9 플로트 경고문 __20.10 왼쪽 마진 경고문 __20.11 오른쪽 마진 경고문 __20.12 폼 유효성 검사 경고문 |
|
소프트웨어 설계 분야에서는 이미 오래 전부터 디자인 패턴이 정립되어 널리 사용되고 있다. 디자인 패턴은 더욱 효율적이며 사용성이 높고 유지보수하기 쉬운 프로그램을 바랬던 많은 이의 노력과 경험의 산물이다. 웹 기술의 기본이 되는 마크업과 스타일시트도 마찬가지다. ‘이런 디자인이나 레이아웃이 필요할 때는 이렇게 하면 된다’는 공식 같은 체계가 존재한다면 손쉬운 적용이 가능해져 웹 개발이 한결 편리해질 것이다.
하지만 마크업과 스타일시트 영역에는 그러한 패턴을 누구도 체계적으로 정리한 유례가 없었다. 따라서 개발자의 필요에 따라 재사용이 불가능한 수작업 코딩을 매번 하든지 웹 디자인 도구를 이용한 유연하지 못한 개발을 하는 수밖에 없었다. HTML5와 CSS3는 많은 부분이 정해졌지만 지금도 계속해서 발전하고 있으니 어떠한 패턴을 찾는다는 것은 쉽지 않아 보였다. 그러나 이 책의 저자는 놀랍도록 섬세한 분류를 통해 각 특성마다 몇 가지 패턴을 만들어냈다. 나는 이 책을 번역하기에 앞서 전체적인 구성을 훑어보면서 상당히 충격을 받았다. 처음에 CSS를 본격적으로 학습할 때 봤던 책들처럼 일일이 설명을 나열하는 방식과는 근본적으로 달랐다. 나처럼 CSS에 대한 지식을 갖춘 사람이 아니더라도 이 책을 보면 HTML이나 CSS를 부담 없이 배울 수 있고 쉽게 적용할 수 있겠다는 생각이 들었다. 이 책을 보면 이젠 이런 식으로 패턴화하는 것이 가능하다는 생각을 누구나 할 수도 있다. 그러나 이 책이 나오기 전까지는 이런 식으로 각 특성의 분류를 통해 조립해 쓸 수 있게 패턴으로 만든다는 생각을 누구도 하지 못했거나 실천으로 옮기지 못했을 것이다. 다시 말해, 이렇게 패턴화한 작업도 무척 대단하지만 패턴화 자체가 더욱 대단하고 참신하다. 이 책의 또 한 가지 장점은 설명하는 내용을 한눈에 보면서 이해할 수 있는 예제 그림이다. 번역을 하는 내내 마크업과 스타일시트를 한글에 맞게 조금 수정하거나 위치를 조정한 후 브라우저에서 열어 결과를 보면서 ‘이 좋은 책이 왜 이제서야’ 하는 생각이 들었다. 이런 패턴이 진작에 나와서 나도 이런 방식으로 CSS를 공부했다면 상황마다 어떤 것을 어떻게 적용해야 할지 잊어버리지 않고 체계적인 방식으로 더욱 쉽게 쓸 수 있었을 것이다. 이 책은 Cookbook과는 조금 다르다. 웹 개발자나 디자이너가 필요한 상황을 찾아서 거기 나온 패턴을 적용할 수 있다는 점에서 형식은 Cookbook과 비슷하다. 그러나 패턴의 특성상 원하는 요건이 여러 가지일 땐 그 요건을 구현하기 위해 각 패턴을 일렬로 나열하여 사용하거나 이름으로 부를 수 있는 조립적 성질이 있다는 점이 다르다. 말 그대로 어떤 요소 안에 글자를 왼쪽 정렬로 배치하면서 글자 대신 그림을 표시하고 싶다면, 글자를 왼쪽 정렬하는 패턴과 글자 대신 그림으로 표시하는 패턴을 동시에 적용하면 된다. 이 책의 각 절은 패턴의 이름이다. 패턴마다 부르기 쉬운 짧은 이름이 있어서 여러 요건을 동시에 구현해야 한다고 가정할 때, 각 패턴명을 쭉 나열해 부름으로써 토의나 대화가 가능하다. 그렇게 패턴명을 나열해서 이야기하는 것만으로 듣는 상대방은 어떤 구현이 필요한지 길게 설명하지 않아도 바로 이해하고 즉시 필요한 다수의 패턴을 적용할 수 있다. 이것이 패턴의 궁극적인 목적이다. 나아가 패턴명을 그대로 마크업 요소의 클래스명이나 아이디명으로 사용하면 더욱 개발이 쉬워진다. 개발할 때마다 각 패턴에 대한 자신만의 애용하는 이름을 정해두고 사용한다면, 마치 기계로 찍어내듯이 신속하고 빠른 개발이 가능해진다. 웹을 포함한 모든 소프트웨어 분야에서 템플릿이나 패턴이 중요한 이유가 바로 이 때문이다. 공식 같은 틀이 있고 거기에 간결한 명칭이 있다면 그것을 사용할수록 더욱 편해진다. 이 책의 몇몇 용어가 생소할 수도 있을 텐데 그 점에 대해서 읽는 분들의 양해를 구한다. 패턴이라는 특성상 그 과정에서 저자가 이 책을 쓴 의도와 지향점이 있고 패턴만의 특수한 용도가 있다 보니 생소한 표현이 있다. 그러나 그것들은 알기 쉬운 예제 코드와 캡처 그림을 보면서 손쉽게 습득할 수 있고 실전 개발이나 디자인에 3회 이상 적용하다보면 자연히 몸에 베어 기억하기 어렵지 않을 것이다. 어떠한 것이든 처음 생겨난 개념이나 체계는 낯설고 학습이 필요하지만 한 번만 해놓고 나면 습관처럼 편해지는 법이니 거부감을 갖기보단 먼저 한 번 직접 보고 실습해본 후 평가하길 바란다. 이 책은 웹 개발자나 웹 디자이너에겐 가히 혁신이라고 생각한다. 번역 과정에서 용어를 조율하는 등의 문제로 인해 많은 어려움에 부딪혔지만 분명히 많은 이에게 엄청난 도움을 줄 것이라고 믿는다. 또한 이 책을 읽은 사람과 그렇지 않은 사람은 분명히 작업 효율과 이해의 깊이에 커다란 차이가 있게 되리라는 확신이 든다. 그만큼 나는 처음부터 이 책의 내용에 충격을 받았고 패턴화 방식과 활용도를 높이 평가하며 결과적으로 이 책에 대한 애착도 크다. 쏟아지는 업무량에도 이 책의 편집과 고된 수정 작업을 끝까지 책임져주시고 지속적인 피드백을 해주신 박민아 편집자님께 깊은 감사를 전하며 이 글을 맺는다. 옮긴이_김지원 ---「옮긴이의 말」 중에서 이 책은 CSS3로 HTML5를 꾸미는 각종 기법을 주제로 한다. 어디에든 바로 사용할 수 있는 350여가지 디자인 패턴이 수록되어 있는데, 각 디자인 패턴은 모듈식이며 맞춤화가 가능하므로 여러 패턴을 조합해서 무궁무진한 디자인을 만들 수 있다. 각 디자인 패턴은 철저히 테스트한 후 크롬, 파이어폭스, 인터넷 익스플로러, 오페라, 사파리를 비롯한 주요 웹 브라우저에서 작동하는지 검증했다. 이 책만 있으면 개발자는 이제 더 이상 편법, 눈속임, 끝없는 테스트, 하나의 수정사항을 여러 브라우저에서 잘 돌아가게 조정하는 등 귀찮은 일은 하지 않아도 된다. 디자인 패턴을 활용하기란 코드를 복사해서 붙여 넣고 몇몇 값을 수정하는 것만큼이나 쉽다. 어느 값을 수정할 수 있는지, 그 값 수정으로 인해 결과에 어떤 영향이 미치는지 바로 알 수 있어서 제대로 돌아갈지 염려할 필요 없이 자신이 의도한 정확한 스타일과 레이아웃을 작성할 수 있다. 또한 단순한 레시피에 그치지 않고, CSS의 유용한 여러 기능을 체계적으로 설명하고 그런 기능을 HTML에 연동하여 재사용 가능하도록 패턴화했다. 각 패턴마다 직관적 이름을 부여해서 찾아보거나 말하기 쉽게 했다. 접근성과 모범 사례를 각각 디자인 패턴, 실습 예제, 소스코드로 발전시켰다. 이 책은 참고서처럼 처음부터 끝까지 순서대로 읽으면서 자신에게 필요한 해법을 찾을 수 있다. 각 예제마다 화면 캡처를 비롯해 관련 HTML 코드와 CSS 코드를 수록해 놓아 각 디자인 패턴이 어떠한 원리인지를 손쉽게 알 수 있다. 각 디자인 패턴에 대한 설명도 곁들여 놓았으므로 패턴의 원리를 읽으면서 해당 예제 코드를 연구하기도 간편하다. 각 디자인 패턴은 주제별로 정리해 놓았으며, 사용 가능한 모든 CSS 명령은 다른 책과 차별화된 문맥으로 깊이 있게 다루었다. 모든 디자인 패턴은 접근성이 높고 모범 사례를 따르기에, 이 책의 모든 페이지는 읽을 가치가 있으며 설계하고 코딩하는 동안 개발자에게 있어 훌륭한 참고 자료가 된다. 지은이_ 미셸 바우어, 디오니시오스 시노디노스, 빅터 섬너 ---「지은이의 말」 중에서 |
|
HTML5와 CSS3를 활용해서 웹을 디자인할 수 있는 350여 가지의 디자인 패턴을 제시한다. 디자이너, 개발자는 350여 가지 디자인 패턴을 활용해서 마치 레고 블록을 조립하듯 웹 페이지를 쉽게 디자인할 수 있다.
이 책의 특징과 장점 -. 350여 가지 디자인 패턴을 사전식으로 구성해서 레퍼런스로 빠르게 찾아볼 수 있다. -. IE, 크롬, 파이어폭스, 오페라, 사파리 등 브라우저를 망라하여 데스크톱과 모바일에서 검증했다. -. 재사용과 모듈식 조합이 가능한 코드를 자세히 설명한다. -. 패턴에 직관적 이름을 붙여 패턴명을 만들고 이를 책의 각 절제목으로 구성하였다. 따라서 독자는 절제목만으로도 패턴의 기능을 정확하게 파악하며 쉽게 학습할 수 있다. -. 화면 캡처만 살펴보고도 필요한 해결책을 찾을 수 있는 간편한 문제 해결서다. 어떤 독자를 위한 책인가? -. HTML5, CSS3의 최신 웹 기술을 익히고자 하는 웹 퍼블리셔 -. HTML5, CSS3의 웹 기술을 사전식으로 일목 요연하게 정리한 책을 레퍼런스로 삼고자 하는 웹 디자이너, 개발자 -. CSS 기술을 더 높은 수준으로 향상시키고자 하는 현업의 웹 디자이너, 개발자 전문가 그룹 |