우선 direction에 대해서 알아보자.
우리나라에서 사용하는 모든 페이지들은 기본값으로 direction: ltr; 로 설정이 되어있습니다.
direction는 페이지의 기본적인 언어 배열을 왼쪽에서 오른쪽(ltr : left to right) 또는, 오른쪽에서 왼쪽(rtl : right to left) 으로 할지
설정해주는 속성인데요.
direction의 필요성은 아랍권 같은 언어배열이 오른쪽부터 시작하는 국가에 적용할때 사용되고 있습니다.
1. position의 재정의
#all { position: relative; border: 1px solid gray; width: 300px; height: 70px; }
.red { position: absolute; left: 10px; top: 10px; background: red; float: left; width:50px; height: 50px; }
.red { right: 50px; }
<div id="all">
<div class="red"></div>
</div>

(.red) class에 right: 50px; 라는 값을 재정의 했음에도 불구하고 left: 10px; 값이 그대로 적용되어있는걸 볼 수 있습니다.
//이번에는 반대로 적용해보자.
.red { position: absolute; right: 10px; top: 10px; background: red; float: left; width:50px; height: 50px; }
.red { left: 50px; }

(.red) class에 left: 50px; 값으로 재정의가 된걸 확인할 수 있습니다.
이 같은 현상이 일어나는 이유는 우리나라 페이지들의 기본값이 direction: ltr; 로 설정되어있는데에서 비롯됩니다.
해결방법으로, 기존에 설정되어 있는 left: 10px이라는 값을 초기화 하는 방법이 있습니다.
.red { position: absolute; left: 10px; top: 10px; background: red; float: left; width:50px; height: 50px; }
.red { left: auto; right: 50px; }

2. direction과의 관계
또 다른 방법으로 direction을 사용하여 언어배열을 rtl로 바꾸는 방법이 있는데요.
간단하게 예를들면,
#all { position: relative; border: 1px solid gray; width: 300px; height: 70px; direction: rtl; }
.red { position: absolute; left: 10px; top: 10px; background: red; float: left; width:50px; height: 50px; }
.red { right: 50px; }
direction을 사용하였을시 위에서 언급한 내용이 반전되는걸 볼 수 있습니다.
결과를 보면 right: 50px;가 그대로 적용된걸 볼수있는데요. left: auto; 값을 적어 초기화할 필요가 없는거죠.
하지만,
#all { position: relative; border: 1px solid gray; width: 300px; height: 70px; direction: rtl; }
.red { position: absolute; right: 10px; top: 10px; background: red; float: left; width:50px; height: 50px; }
.red { left: 50px; }
이렇게 작성하면 적용이 되질 않습니다. 왜냐하면 direction으로 인해서 언어배열이 오른쪽부터 시작하는걸로 바껴서 그런데요.
위에서 나온 예제들을 (모니터에서 등을 지고 거울로 반사해서 바라본다고 생각)하고 이해하면 빠를 것 같습니다.
언어배열이 바낀걸로 인해 그안에서 사용되어지는 속성들의 의미도 미묘하게 반전되는 것인데,
여기에 관련되어서는 추후에 새로 다루거나 여기에 내용을 새로 추가할 생각입니다.
[#.(어떻게)가 아니라 (왜)인지 알고 이해하자.]
우리나라에서 사용하는 모든 페이지들은 기본값으로 direction: ltr; 로 설정이 되어있습니다.
direction는 페이지의 기본적인 언어 배열을 왼쪽에서 오른쪽(ltr : left to right) 또는, 오른쪽에서 왼쪽(rtl : right to left) 으로 할지
설정해주는 속성인데요.
direction의 필요성은 아랍권 같은 언어배열이 오른쪽부터 시작하는 국가에 적용할때 사용되고 있습니다.
1. position의 재정의
#all { position: relative; border: 1px solid gray; width: 300px; height: 70px; }
.red { position: absolute; left: 10px; top: 10px; background: red; float: left; width:50px; height: 50px; }
.red { right: 50px; }
<div id="all">
<div class="red"></div>
</div>
(.red) class에 right: 50px; 라는 값을 재정의 했음에도 불구하고 left: 10px; 값이 그대로 적용되어있는걸 볼 수 있습니다.
//이번에는 반대로 적용해보자.
.red { position: absolute; right: 10px; top: 10px; background: red; float: left; width:50px; height: 50px; }
.red { left: 50px; }
(.red) class에 left: 50px; 값으로 재정의가 된걸 확인할 수 있습니다.
이 같은 현상이 일어나는 이유는 우리나라 페이지들의 기본값이 direction: ltr; 로 설정되어있는데에서 비롯됩니다.
해결방법으로, 기존에 설정되어 있는 left: 10px이라는 값을 초기화 하는 방법이 있습니다.
.red { position: absolute; left: 10px; top: 10px; background: red; float: left; width:50px; height: 50px; }
.red { left: auto; right: 50px; }
2. direction과의 관계
또 다른 방법으로 direction을 사용하여 언어배열을 rtl로 바꾸는 방법이 있는데요.
간단하게 예를들면,
#all { position: relative; border: 1px solid gray; width: 300px; height: 70px; direction: rtl; }
.red { position: absolute; left: 10px; top: 10px; background: red; float: left; width:50px; height: 50px; }
.red { right: 50px; }
direction을 사용하였을시 위에서 언급한 내용이 반전되는걸 볼 수 있습니다.
결과를 보면 right: 50px;가 그대로 적용된걸 볼수있는데요. left: auto; 값을 적어 초기화할 필요가 없는거죠.
하지만,
#all { position: relative; border: 1px solid gray; width: 300px; height: 70px; direction: rtl; }
.red { position: absolute; right: 10px; top: 10px; background: red; float: left; width:50px; height: 50px; }
.red { left: 50px; }
이렇게 작성하면 적용이 되질 않습니다. 왜냐하면 direction으로 인해서 언어배열이 오른쪽부터 시작하는걸로 바껴서 그런데요.
위에서 나온 예제들을 (모니터에서 등을 지고 거울로 반사해서 바라본다고 생각)하고 이해하면 빠를 것 같습니다.
언어배열이 바낀걸로 인해 그안에서 사용되어지는 속성들의 의미도 미묘하게 반전되는 것인데,
여기에 관련되어서는 추후에 새로 다루거나 여기에 내용을 새로 추가할 생각입니다.
[#.(어떻게)가 아니라 (왜)인지 알고 이해하자.]
'웹표준' 카테고리의 다른 글
| position값 재정의와 direction과의 관계 (0) | 2011/09/25 |
|---|---|
| position의 index 값에 대한 이해 (0) | 2011/09/24 |
| 이제 시작합니다. (0) | 2011/09/23 |
