DIV CSS의 구조
CSS 레이아웃을 배우고 계시나요? 아직도 순수한 CSS 레이아웃을 완전히 마스터할 수 없습니까? 일반적으로 학습을 방해하는 두 가지 상황이 있습니다.
첫 번째 가능성은 CSS 처리 페이지의 원리를 아직 이해하지 못한 것입니다. 페이지의 전반적인 성능을 고려하기 전에 먼저 콘텐츠의 의미와 구조를 고려한 다음 의미와 구조에 CSS를 추가해야 합니다. 이 기사에서는 HTML을 구성하는 방법을 설명합니다.
또 다른 이유는 매우 친숙한 프레젠테이션 레이어 속성(예: cellpadding, hspace, align="left" 등)이 무엇인지 모르고 이를 어떤 CSS 문으로 변환해야 할지 모르기 때문입니다. 첫 번째 문제를 해결하고 HTML을 구성하는 방법을 알게 되면 원래 프레젠테이션 속성을 대체하는 데 사용할 CSS에 대해 자세히 설명하는 목록을 제공하겠습니다.
구조화된 HTML
우리는 웹페이지 제작을 처음 배울 때 항상 그림, 글꼴, 색상, 레이아웃 계획 등을 고려하여 어떻게 디자인할지 먼저 고민합니다. 그런 다음 Photoshop이나 Fireworks를 사용하여 그림을 그리고 작은 그림으로 자릅니다. 마지막으로 HTML을 편집하여 모든 디자인을 페이지에 복원합니다.
HTML 페이지를 CSS(CSS 친화적)로 레이아웃하려면 먼저 돌아가서 다시 시작해야 합니다. 먼저 "외관"을 생각하지 말고 먼저 의미와 구조를 생각하세요. 귀하의 페이지 콘텐츠.
외모가 가장 중요한 것은 아닙니다. 잘 구조화된 HTML 페이지는 어떤 모습으로든 표시될 수 있으며 CSS Zen Garden이 전형적인 예입니다. CSS Zen Garden은 우리가 마침내 CSS의 힘을 깨닫도록 도와줍니다.
HTML은 단지 컴퓨터 화면에서 읽기 위한 것이 아닙니다. Photoshop에서 세심하게 디자인한 이미지는 PDA, 휴대폰, 화면 판독기에서는 표시되지 않을 수 있습니다. 그러나 잘 구조화된 HTML 페이지는 다양한 CSS 정의를 통해 어느 네트워크 장치에서나 어디서나 표시될 수 있습니다.
생각하기
우선 "구조"가 무엇인지 알아야 합니다. 일부 작가들은 이를 "의미론"이라고 부르기도 합니다. 이 용어가 의미하는 바는 콘텐츠 블록과 각 콘텐츠가 제공하는 목적을 분석한 다음 이러한 콘텐츠 목적을 기반으로 해당 HTML 구조를 구축해야 한다는 것입니다.
페이지 구조를 신중하게 분석하고 계획하면 다음과 같은 몇 가지 조각이 나올 수 있습니다.
로고 및 사이트 이름
메인 페이지 콘텐츠
사이트 탐색(메인 메뉴)
하위 메뉴
검색 상자
기능 영역(예: 장바구니, 결제)
바닥글(저작권 및 관련 법적 고지)
일반적으로 DIV 요소를 사용하여 다음과 유사하게 이러한 구조를 정의합니다. 🎜>
이것은 레이아웃이 아니라 구조입니다. 이는 콘텐츠 블록에 대한 의미론적 설명입니다. 구조를 이해하면 해당 ID를 DIV에 추가할 수 있습니다. 모든 콘텐츠 블록은 DIV 컨테이너 내에 포함될 수 있으며 다른 DIV는 그 안에 중첩될 수 있습니다. 콘텐츠 블록에는 제목, 단락, 이미지, 표, 목록 등 모든 HTML 요소가 포함될 수 있습니다.
위 내용을 바탕으로 HTML을 구성하는 방법을 이미 알고 계셨으니 이제 레이아웃과 스타일을 정의하실 수 있습니다. 각 콘텐츠 블록은 페이지의 어느 위치에나 배치할 수 있으며 블록의 색상, 글꼴, 테두리, 배경, 정렬 속성 등을 지정할 수 있습니다.
선택기를 사용하는 것은 멋진 일입니다
ID의 이름은 특정 콘텐츠 블록을 제어하는 수단입니다. 이 콘텐츠 블록을 DIV로 둘러싸고 고유 ID를 추가하면 CSS 선택기를 사용하여 제목, 목록, 그림, 링크 또는 단락 등을 포함한 각 페이지 요소의 모양 예를 들어 #header에 대한 CSS 규칙을 작성하면 #content의 이미지 규칙과 완전히 다를 수 있습니다.
또 다른 예는 다양한 규칙을 통해 다양한 콘텐츠 블록의 링크 스타일을 정의할 수 있다는 것입니다. 다음과 같습니다: #globalnav a:link 또는 #subnava:link 또는 #content a:link. 다양한 콘텐츠 블록의 동일한 요소에 대해 다양한 스타일을 정의할 수도 있습니다. 예를 들어, #content p와 #footerp를 각각 통해 #content와 #footer에서 p의 스타일을 정의합니다. 구조적으로 말하면 귀하의 페이지는 사진, 링크, 목록, 단락 등으로 구성됩니다. 이러한 요소 자체는 표시되는 네트워크 장치(PDA, 휴대폰 또는 인터넷 TV)에 영향을 미치지 않습니다.
신중하게 구성된 HTML 페이지는 매우 간단하며 모든 요소는 구조적 목적으로 사용됩니다. 단락을 들여쓰려면 blockquote 태그를 사용할 필요가 없습니다. p 태그를 사용하고 p에 CSS 여백 규칙을 추가하면 들여쓰기 목적이 달성됩니다. p는 구조화된 태그이고 margin은 표시 속성입니다. 전자는 HTML에 속하고 후자는 CSS에 속합니다. (구조와 표현의 분리입니다.)
잘 구성된 HTML 페이지에는 속성을 표현하는 태그가 거의 없습니다. 코드가 매우 깔끔하고 간결합니다. 예를 들어 원본 코드
는 이제 을 HTML로만 작성할 수 있으며 성능을 제어하는 모든 항목은 CSS로 작성됩니다. . 구조화된 HTML에서 테이블은 테이블이지 다른 것이 아닙니다(예: 레이아웃 및 위치 지정에 사용됨).
스스로 구조화하는 연습
위에서 언급한 내용은 가장 기본적인 구조일 뿐이며 실제 적용에서는 필요에 따라 콘텐츠 블록을 조정할 수 있습니다. DIV는 종종 중첩되어 있으며 "컨테이너" 레이어에 다음과 유사한 구조를 가진 다른 레이어가 있는 것을 볼 수 있습니다:
중첩된 div 요소를 사용하면 더 많은 CSS 규칙을 정의하여 성능을 제어할 수 있습니다. 예를 들어 #navcontainer에 목록을 오른쪽 중앙에 배치하는 규칙을 지정한 다음 #globalnav에 중앙에 규칙을 제공할 수 있습니다. 왼쪽의 목록을 #subnav의 목록에 완전히 다른 모습으로 보여주세요.
기존 메소드를 CSS로 대체
다음 목록은 기존 메소드를 CSS로 대체하는 데 도움이 됩니다.
HTML 속성 및 해당 CSS 메소드
HTML 속성
CSS 메소드 설명
align= " left"
align="right" float: left;
float: right; CSS를 사용하여 그림, 단락, div, 제목, 표, 목록 등 모든 요소를 플로팅합니다.
float를 사용할 때 attribute 에서는 이 부동 요소에 대한 너비를 정의해야 합니다.
marginwidth="0"leftmargin="0" marginheight="0" topmargin="0" margin: 0; CSS를 사용하면 body 요소뿐만 아니라 모든 요소에 여백을 설정할 수 있습니다. 위쪽, 오른쪽, 아래쪽, 왼쪽 요소의 여백 값을 각각 지정합니다.
vlink="#333399" alink="#000000" link="#3333FF" a:link #3ff
a:visited: #339; a:hover: #999; a:active: #00f;
HTML에서는 링크의 색상이 본문의 속성값으로 정의됩니다. 링크 스타일은 페이지 전체에서 동일합니다. CSS 선택기를 사용하면 페이지의 여러 부분에서 링크 스타일이 다를 수 있습니다.
bgcolor="#FFFFFF" background-color: #fff; CSS에서는 본문 및 테이블 요소뿐만 아니라 모든 요소에 대해 배경색을 정의할 수 있습니다.
Bordercolor="#FFFFFF" border-color: #fff; 모든 요소는 테두리(boeder)를 설정할 수 있으며 위쪽, 오른쪽, 아래쪽 및 왼쪽을 각각 정의할 수 있습니다.
border="3" cellpacing="3" border-width: 3px; CSS를 사용하면 테이블의 테두리를 통일된 스타일로 정의하거나 위쪽, 오른쪽, 아래쪽 및 왼쪽 테두리의 색상, 크기, 스타일을 각각 정의할 수 있습니다.
테이블, td 또는 th 선택기를 사용할 수 있습니다.
테두리 없는 효과를 설정해야 하는 경우 CSS 정의를 사용할 수 있습니다. border-collapse:collapse
클리어: 왼쪽;
클리어: 오른쪽
클리어: 둘 다
다수의 열; float 속성을 사용하여 위치를 지정합니다. 플로팅 레이어에 배경색이나 배경 이미지를 정의하는 경우
cellpadding="3"
vspace="3"
hspace="3" padding: 3px; CSS에서는 모든 요소가 패딩 속성을 설정할 수 있습니다. 마찬가지로 패딩은 각각 위쪽, 오른쪽, 아래쪽 및 왼쪽으로 설정할 수 있습니다. 패딩은 투명합니다.
align="center" text-align: center;
margin-right: auto; margin-left: auto
텍스트 정렬은 텍스트에만 적용됩니다.
레벨 margin-right: auto; 및 margin-left: auto;를 통해 수평으로 중앙에 배치할 수 있습니다.
일부 아쉬운 기술 및 작업 환경
CSS에 대한 불완전한 브라우저 지원으로 인해 때때로 일부 기술(해킹)을 취해야 합니다. 환경(해결 방법)을 만들면 CSS가 기존 방법과 동일한 효과를 얻을 수 있습니다. 예를 들어, 블록 수준 요소는 수평 센터링 기술, 상자 모델 버그 기술 등을 사용해야 하는 경우가 있습니다. 이러한 모든 기술은 Molly Holzschlag의 기사 통합 웹 디자인: 장기 CSS HackManagement 전략에 자세히 설명되어 있습니다.
CSS 기술에 대한 또 다른 훌륭한 리소스는 Big John과 Holly Bergevin의 "Position is Everything"입니다.
부동 동작 이해
Eric Meyer의 "Containing Floats"는 레이아웃에 부동 속성을 사용하는 방법을 익히는 데 도움이 됩니다. 플로트 요소를 지워야 하는 경우가 있습니다. "구조적 마크업 없이 플로트를 지우는 방법"을 읽어보면 매우 도움이 됩니다.