a

날나리 강좌. ㅋ 기본 속성? display

· 14년 전 · 2108
기본 속성이라는 말은 어디를 찾아봐도 없는 말일 것입니다. 아니 있다면 제가 쓰는 말과 다를 것이고요. 그저 제가 이름을 붙였습니다. 요소를 다루는데 그것이 어떠한 흐름에 따라 위치하는 것인지를 알아두는 것이 먼저 입니다. 레이아웃을 짜기 전에 각 요속의 특성에 따라  성격이 다르기에 이것에 따라 나름 '기본 속성'이라 붙여봤습니다. 

기본속성은 각 요소의 display 속성의 값을 말합니다. 본래 요소의 초기값이 block이나 inline인 경우로 나눠봅니다. 대표적으로 block 속성인 것은 div가 있으며, ul, li, p 등 많이 있습니다. 또한 inline 속성인 경우는 span, b, font, i, embed, img, iframe 등이 있습니다. 

블록 속성의 기본적인 특징은 문서의 좌우를 혼자서 꽉채우려고 합니다. wiidth를 변경하여도 다른 것들이 옆에 붙으러 하지 않고 혼자서 모두 차지합니다. 

인라인 속성은 서로간의 어울려 좌에서 우로 쌓이며, 모두 채울 경우 아래로 넘어옵니다. 인라인 속성은 좀더 자세히 볼 필요가 있습니다. 인라인 속성은 외부의 다른 리소스를 불러와서 크기를 결정하는 것들이 있으며 그렇지 않은 그저 텍스트를 담아 결정된 크기로 사용하는 것들이 있습니다. 

전자인 경우는 보통 img, embed, object, iframe 같은 것들입니다. 후자인 경우는 span, b, i, font 같은 요소들입니다. 이들의 구별 실익은 자리를 차지하는데 수직에 관련된 border, height, margin, padding의 설정과 관계가 깊습니다. 

편의상 전자인 경우는 비록 기본 display 속성의 값이 inline이나 inline-block처럼 작동합니다. inline-block은 나름의 블록적 성격을 그대로 가지고 있어서 수직에 관련된 height, border, paddng, margin이 보통의 블록요소처럼 값에 따라 적용이 됩니다. 

그러나 그렇지 않은 후자의 인라인 요소는 수직 padding, margin 사용에 반응하지 않습니다. 인라인 요소인 span에 padding-top을 백만 px을 주어도 꿈쩍하지 않습니다. border도 수직에 생기긴 하나 보통 block과의 처리와는 달라 다른 행의 높이에 영향을 주지 않습니다. 

여기서 텍스트 처리를 보려면 좀더 복잡합니다. 이건 나중에 따로 목차를 잡고 설명하고 일단 레이아웃을 짜기 위해필요한 것만 간단히 건드려 봅니다. 

이런 기본 display 속성 값은 사용자가 변경하할 수 있습니다. 단 이때 IE7이하는 블록속성인 요소에 관하여 inline-block으로 변경시 변경되지 않고 여전히 block으로 남아 있습니다. 

이를 해결하기 위해서는 CSS 핵을 사용하여 

;display:inline-block;*display:inline;*zoom:1;

로  작성하면 모두 해결됩니다. 

또한 블록 속성인 요소도 css의 float 속성을 받으면 인라인 요소처럼 작동하여 더이상 좌우로 꽉 채우려 하지 않고 옆에 다른 요소들과 어울리는 것이 가능해집니다. (단, 자바스크립트로 현재 계산된 display 속성값을 받으면 여전히 block 입니다.)

---

(float 관련 내용 삭제, 레이아웃에서 다시 설명)



--- 한줄 팁

css에서 color는 글자 색상만이 아닌 전경색을 의미합니다. border의 지정된 색이 없다면 color 값을 사용합니다. 
|
댓글을 작성하시려면 로그인이 필요합니다.

프로그램

+
제목 글쓴이 날짜 조회
14년 전 조회 1,492
14년 전 조회 1,447
14년 전 조회 1,325
14년 전 조회 3,963
14년 전 조회 1,883
14년 전 조회 1,348
14년 전 조회 1,412
14년 전 조회 1,394
14년 전 조회 1,475
14년 전 조회 1,254
14년 전 조회 1,355
14년 전 조회 1,963
14년 전 조회 3,843
14년 전 조회 2,277
14년 전 조회 1,332
14년 전 조회 1,314
14년 전 조회 1,430
14년 전 조회 1,315
14년 전 조회 1,414
14년 전 조회 1,527
14년 전 조회 1,231
14년 전 조회 3,724
14년 전 조회 3,617
14년 전 조회 1,440
14년 전 조회 1,938
14년 전 조회 1,552
14년 전 조회 1,403
14년 전 조회 3,899
14년 전 조회 2,895
14년 전 조회 2,489
14년 전 조회 2,403
14년 전 조회 1,193
14년 전 조회 1,962
14년 전 조회 1,184
14년 전 조회 1,196
14년 전 조회 1,250
14년 전 조회 1,678
14년 전 조회 1,695
14년 전 조회 2,337
14년 전 조회 1,498
14년 전 조회 1,719
14년 전 조회 1,882
14년 전 조회 1,871
14년 전 조회 1,260
14년 전 조회 2,438
14년 전 조회 1,609
14년 전 조회 1,910
14년 전 조회 1,667
14년 전 조회 2,010
14년 전 조회 2,109
14년 전 조회 1,531
14년 전 조회 1,779
14년 전 조회 2,022
14년 전 조회 2,139
14년 전 조회 1,482
14년 전 조회 1,659
14년 전 조회 2,321
14년 전 조회 3,452
14년 전 조회 2,680
14년 전 조회 2,753
14년 전 조회 2,190
14년 전 조회 1,974
14년 전 조회 1,879
14년 전 조회 1,642
14년 전 조회 1,118
14년 전 조회 2,061
14년 전 조회 5,138
14년 전 조회 2,049
14년 전 조회 1,821
14년 전 조회 1,312
14년 전 조회 1,549
14년 전 조회 1,341
14년 전 조회 1,230
14년 전 조회 1,303
14년 전 조회 1,316
14년 전 조회 1,276
14년 전 조회 2,116
14년 전 조회 1,445
14년 전 조회 1,302
14년 전 조회 1,232
14년 전 조회 1,285
14년 전 조회 1,622
14년 전 조회 1,521
14년 전 조회 2,134
14년 전 조회 1,729
14년 전 조회 4,189
14년 전 조회 1,410
14년 전 조회 2,011
14년 전 조회 1,710
14년 전 조회 3,471
14년 전 조회 3,082
14년 전 조회 1,262
14년 전 조회 2,268
14년 전 조회 1,290
14년 전 조회 3,056
14년 전 조회 2,629
14년 전 조회 1,210
14년 전 조회 6,352
14년 전 조회 1,606
14년 전 조회 2,126