CSS 입문 | CSS3 확장 | 사용자 인터페이스
사용자 인터페이스(user interface, UI)
CSS3에서는 새로운 사용자 인터페이스를 이용하여, 사용자가 요소의 크기나 아웃라인 등을 마음대로 변경할 수 있게 해준다.
사용자 인터페이스(user interface)를 위해 제공되는 속성은 다음과 같다.
- resize
- outline-offset
- box-sizing
- nav-index
- nav-left
- nav-right
- nav-up
- nav-down
CSS3 사용자 인터페이스(user Interface) 지원 버전
CSS3 사용자 인터페이스(user Interface)를 지원하는 주요 웹 브라우저의 버전은 다음과 같다.
브라우저별로 벤더 프리픽스(vendor prefix)를 이용해 이 기능을 최초로 지원한 버전도 같이 표기했다.
속성 | ie | chrome | firefox | safari | opera |
---|---|---|---|---|---|
resize | 지원하지 않음 | 4.0 | 5.0 / 4.0 -moz- | 4.0 | 15.0 |
outline-offset | 지원하지 않음 | 4.0 | 5.0 / 4.0 -moz- | 4.0 | 9.5 |
box-sizing | 8.0 | 10.0 / 4.0 -webkit- | 29.0 / 2.0 -moz- | 5.1 / 3.2 -webkit- | 9.5 |
resize 속성
resize 속성은 사용자가 해당 요소의 높이나 너비를 변경할 수 있게 해준다.
<style>
#width { resize: horizontal; }
#height { resize: vertical; }
#both { resize: both; }
</style>
위의 예제처럼 resize 속성이 설정된 요소에는 오른쪽 하단에 크기 조절 핸들이 생긴다.
이 핸들을 마우스로 드래그해서 사용자가 직접 요소의 크기를 조절할 수 있다.
resize 속성은 익스플로러에서 지원하지 않습니다.
outline-offset 속성
outline-offset 속성은 해당 요소의 테두리(border)와 아웃라인(outline) 사이에 공간(offset)을 추가해 준다.
아웃라인(outline)과 테두리(border)의 차이는 다음과 같다.
- 아웃라인은 테두리의 바깥쪽에서 요소를 둘러싸고 있는 라인이다.
- 아웃라인은 HTML 요소의 크기에 포함되지 않는다.
- 아웃라인은 사각형이 아닐 수도 있다.
다음 예제는 outline-offset 속성을 이용하여 아웃라인과 테두리를 확인하는 예제이다.
<style>
div {
border: 1px solid black;
outline: 1px solid red;
outline-offset: 20px;
}
</style>
outline-offset 속성은 익스플로러에서 지원하지 않는다.
box-sizing 속성
box-sizing 속성은 해당 요소의 너비(width)와 높이(height)에 패딩(padding)과 테두리(border)의 크기까지 포함시킨다.
<style>
#no_border_box { border: 10px solid green; padding: 20px; }
#border_box { border: 10px solid red; padding: 20px; box-sizing: border-box; }
</style>
CSS 박스 모델에서 살펴본 HTML 요소의 전체 너비를 구하는 공식은 다음과 같다.
width + left padding + right padding + left border + right border + left margin + right margin
따라서 위의 예제에서 첫 번째 div 요소의 전체 너비는 다음과 같이 설정된다.
350px + 20px + 20px + 10px + 10px + 10px + 10px = 430px
하지만 box-sizing 속성의 속성값을 border-box로 설정하면, 해당 요소의 총 너비와 높이에 패딩과 테두리의 크기까지 포함해서 설정한다.
따라서 위의 예제에서 두 번째 div 요소의 전체 너비는 다음과 같이 설정될 것이다.
350px + 10px + 10px = 370px
CSS3 사용자 인터페이스(user Interface) 속성
속성 | 설명 |
---|---|
resize | 사용자가 해당 요소의 높이나 너비를 변경할 수 있게 설정함. |
outline-offset | 해당 요소의 테두리(border)와 아웃라인(outline) 사이에 공간(offset)을 추가함. |
box-sizing | 해당 요소의 총 너비와 높이에 패딩(padding)과 테두리(border)의 너비도 포함시킴. |
nav-index | 해당 요소에 대한 순차적인 탐색 순서를 설정함. |
nav-left | 화살표 왼쪽 방향키를 누를 때 어디를 탐색할지 설정함. |
nav-right | 화살표 오른쪽 방향키를 누를 때 어디를 탐색할지 설정함. |
nav-up | 화살표 위쪽 방향키를 누를 때 어디를 탐색할지 설정함. |
nav-down | 화살표 아래쪽 방향키를 누를 때 어디를 탐색할지 설정함. |