CSS의 writing-mode
는 텍스트가 쓰여지는 방향을 설정한다.
"가나다"를 "다나가" 로 바꿔주는 인라인 방향를 변경하는 것이 아니라 블록 뱡향을 변경한다.
사용 가능한 값으로는 다음과 같다.
horizontal-tb
: 위에서 아래 방향으로 블록이 설정된다.
vertical-rl
: 오른쪽에서 왼쪽으로 블록이 설정된다.
vertical-lr
: 왼쪽에서 오른쪽으로 블록이 설정된다.
수직 모드 ( horizontal-tb
)
수평 모드 ( vertical-rl
, vertical-lr
)
writing-mode
가 가로 모드일 때와 세로모드일 때의 width
는 어떻게 적용될까
다음의 두 박스를 보자.
.box {
width: 150px;
}
.horizontal {
writing-mode: horizontal-tb;
}
.vertical {
writing-mode: vertical-rl;
}
두 박스 모두 화면 기준 가로로 150px가 된다.
텍스트의 방향은 서로 다르지만 width 속성은 화면 방향을 기준으로 가로만 적용된다.
만약 가로 및 세로로 방향을 바꿀때 그 엘리먼트의 가로, 세로, 패딩, 마진 등을 그대로 간직하고 싶다면 Logical properties를 사용한다.
width 의 논리적 속성은 inline-size이다.
height의 논리적 속성은 block-size이다.
다음의 두 박스를 보자.
.box {
inline-size: 150px;
}
.horizontal {
writing-mode: horizontal-tb;
}
.vertical {
writing-mode: vertical-rl;
}
MDN 페이지에서 논리적 속성 및 값에 대한 모든 매핑된 속성을 볼 수 있다.
MDN 논리적 속성과 값
이러한 논리적 속성과 값은 나온지 얼마 되지않았고 최근에야 브라우저에 구현되었다.
여러값의 writing-mode
를 사용하지 않는 경우 물리적 속성을 사용하는 것이 더 좋다.
하지만 플랙스박스 및 그리드와 같은 레이아웃을 다루는 페이지에선 논리적 속성으로 구성하는 것이 더 유리할 것이다.
[참고] : MDN