CSS/CSS3

CSS3 font-size-adjust 대채폰트의 크기조절 x-height, Aspect Value

샷타이거 2012. 2. 22. 18:15

CSS3 font-size-adjust 
대채폰트의 크기조절 x-height, Aspect Value

일단 참조할 것

타이포그래피(Typography ) 각 폰트별 x-height 크기 도표  http://blog.naver.com/siatiger
w3c css3 font 소개 :http://www.w3.org/TR/css3-fonts/
웹폰트 Aspect Value http://www.barrypearson.co.uk/articles/text/aspect_values.htm

adjust 란 단어는 “조정하다”란 뜻으로 말 그대로 폰트 크기를 조정해주는 역할을 하는 속성이 font-size-adjust 이다. 영어는 대소문자가 구별되는 언어이고 그 때문에 폰트의 종류에 따라 특히 소문자의 크기가 다르게 표현된다.예를 들어 Verdana 의 대문자가 1 이라면 소문자 크기는 0.58(Aspect Value) 의 크기인 것이다.

주의)아이폰에서 텍스트크기를 정하는 -webkit-text-size-adjust와 혼동하지말것!

이러한 이유 때문에 브라우저에서 만약 첫 번째 font 를 사용할 수 없게 될 경우 두 번째로 지정된 폰트를 랜더링하는데 글자 크기가 같은 px 라도 들쭉날쭉하게 보여지는 것이다.


다른 폰트라면 같은 크기라도 글자크기가 다른것은 당연하다
사진은 대문자지만 적용은 x-height이므로 소문자임을 주의

이런 것을 방지하기 위해 font-size-adjust 속성을 사용하게 되면 서로 다른 폰트 종류라도 소문자의 처음 지정된 폰트의 크기로 유지할 수 있고 가독성을 높일 수 있다..  하지만 현재 Firefox 에서만 지원한다

1. Aspect Value 확인해보기
W3C에서 보여주는 값은 다음과 같다. http://www.barrypearson.co.uk/articles/text/aspect_values.htm
글자크기에 따라 치수변동이 조금있다.

Family name Stated aspect value Measured aspect value
These are in the W3C order. These are values quoted by W3C. These use the actual x-height at 100px.
Verdana 0.58 0.55
Comic Sans MS 0.54 0.56
Trebuchet MS 0.53 0.52
Georgia 0.50 0.48
Myriad Web 0.48 0.48
Minion Web 0.47 (This was only ever supplied by MS as part of the IE 4 supplemental font pack add-on, and is not on my PC).
Times New Roman 0.46 0.45
Gill Sans 0.46 (Not on my PC).
Bernhard Modern 0.4 (Not on my PC).
Caflisch Script Web 0.37 (Not on my PC).
Flemish Script 0.28 (Not on my PC).


font-size-adjust가 적용될때  공식은 다음과 같다

c = (a/a’)s (c=조정될 글꼴 크기, a=font-size-adjust 에 지정된 숫자, a’=현재 지정된 글꼴의 소문자 비율)이다. 예를 들어, 14pt Verdana의 font-size-adjust를 1로 지정하면(Verdana의 소문자 높이 비율 기본값은 0.58) 14*1/0.58pt의 크기(약 24pt)로 표시된다.

에제로는 Times New Roman를 선택했다. 0.46 이다.  font-size-adjust에  0.46을 주면 공식에서 나누어 떨어지므로 font-size-adjust를 설정하지않은 것과 똑같이 나와야 한다

<p><span id="num1">Aa</span><span id="num2">Aa</span></p>

body{font-size:400px;}
p{     margin:100px;}/*가운데 보기위한 정렬*/
span{  border:solid 1px green; }/*크기비교위한 테두리*/
#num1{ font-family:Times New Roman ;}
#num2{ font-family:Times New Roman; 
       font-size-adjust:0.46; 
}


http://sianasiatiger.cafe24.com/study/font-size-adjust-01.html

그림과 같이 문자가 크다보니 약간의 차이가 있다 직접 조절해본 결과는  0.447

#num2{ font-family:Times New Roman; 
       font-size-adjust:0.447; 
}

http://sianasiatiger.cafe24.com/study/font-size-adjust-02.html
이건 조절한결과


2. 다른 폰트의 같은 크기의  x-height 조절
폰트는 Verdana 와 Times New Roman을 선택했다
위에서 확인 해봤듯이 400px에서 값은 0.447이였다.

그러면 Verdana에 0.447을 정해주면 된다.

body{font-size:400px;}
#num1{ font-family:Times New Roman; }
#num2{ font-family:Verdana; 
       font-size-adjust:0.447; 
}


최종결과 폰트특성상 아주 약간 차이날뿐 같게 된것을 볼 수 있다.
http://sianasiatiger.cafe24.com/study/font-size-adjust-03.html


앞서 말했지만 역시 문제는 아직 파이어폭스만 지원한다는 점