css 'ex'단위의 가치는 무엇입니까?
( 인기있는 .Net 단위 테스트 라이브러리 인 Xunit 과 혼동하지 마십시오 .)
오늘은 지루함 속에 Gmail DOM을 검사하기 시작했습니다 (예, 매우 지루했습니다).
특정 요소의 너비에 대한 흥미로운 사양을 발견하기 전까지는 모든 것이 매우 간단 해 보였습니다. 저명한 Googlites는 희귀 한 'ex'유닛을 사용하여 여러 테이블 열을 지정했습니다.
width: 22ex;
처음에 나는 당황 스러웠고 ( "ex '는 무엇인가?") 다시 나에게 돌아왔다. 내가 처음 CSS에 대해 배웠을 때 몇 년 전의 무언가를 기억하는 것 같다. CSS3 사양에서 :
[ ex 단위 는] 사용 가능한 첫 번째 글꼴 의 사용 된 x- 높이와 같습니다 . x-height는 종종 소문자 "x"의 높이와 같기 때문에 그렇게 불립니다. 그러나 'x'가 포함되지 않은 글꼴에 대해서도 'ex'가 정의됩니다.
좋아요. 그러나 나는 실제로 전에 사용하는 것을 본 적이 없습니다 (훨씬 덜 사용했습니다). 나는 ems를 아주 일반적으로 사용하고 그들의 가치를 높이 평가하지만 왜 "ex"인가? em보다 표준 측정이 훨씬 덜하고 유용하지 않습니다.
이 주제에 대해 내가 찾은 몇 페이지 중 하나는 Stephen Poley의 http://www.xs4all.nl/~sbpoley/webmatters/emex.html 입니다. 스티븐은 좋은 지적을하지만 그의 토론은 결론이 나지 않는 것 같습니다.
그래서 내 질문은 : 'ex'단위가 웹 디자인에 어떤 가치를 제공합니까?
(이 질문은 주관적으로 태그가 지정 될 수 있지만 그 결정은 나보다 경험 많은 SO'er에게 맡길 것입니다.)
텍스트의 소문자 높이와 관련하여 크기를 조정할 때 유용합니다. 예를 들어 다음과 같은 디자인 작업을 상상해보십시오.
디자인의 활자체 차원에서 문자의 높이는 나머지 요소와 중요한 공간 관계를 갖습니다. 위의 소스 이미지의 줄은 텍스트의 x 높이를 가리키는 데 도움이되지만 해당 텍스트를 중심으로 디자인 할 때 가이드 라인이있는 위치도 보여줍니다.
Jonathan이 주석에서 지적했듯이 ex는 단순히 em (너비)의 높이 버전입니다.
질문에 답하기 위해 한 가지 용도는 위첨자와 아래 첨자입니다. 예:
sup {
font-size: 75%;
height: 0;
line-height: 0;
position: relative;
vertical-align: baseline;
bottom: 1ex;
}
여기서 고려해야 할 또 다른 사항은 사용자가 글꼴 크기를 늘리거나 줄일 때 페이지 크기가 조정되는 방식입니다 (아마도 Ctrl + 마우스 휠 (Windows) 사용).
나는 em을 사용했다 .. padding-left : 2 em; padding-right : 2 em;
그리고 ex with padding-bottom : 2 ex; padding-top : 2 ex;
따라서 수직 크기 조정 속성에는 수직 측정 단위를 사용하고 수평 크기 조정 속성에는 수평 측정 단위를 사용합니다.
의 값 CSS의 사양에 그것을 가지고는, 즉 당신이 정말로 요구하는지 무엇인지, 정확히 안에 유닛을 가지고있는 값과 같습니다.
글꼴을 상대적 크기 로 설정할 수 있습니다 .
내 기본 글꼴 크기가 무엇인지 모릅니다. 따라서 웹 디자인을위한 좋은 전략 중 하나는 절대적이 아닌 상대적인 글꼴 크기를 설정하는 것입니다. "10 픽셀"과 같은 고정 된 크기가 아니라 "보통 크기의 두 배"또는 "보통 크기보다 약간 작음"에 해당합니다.
"단일 / 이중 줄 간격"과 같은 용어는 실제로 em에 의해 측정 된 두 인접 줄 사이의 오프셋을 의미합니다 . 따라서 "이중 줄 간격"은 각 줄의 높이가 2 em 임을 의미합니다 .
따라서 "선"에 비례하는 수직 거리를 지정하려면 em을 사용하십시오. 소문자의 실제 높이를 원하는 경우에만 ex를 사용하십시오. 즉, 훨씬 드문 경우입니다.
참고 URL : https://stackoverflow.com/questions/918612/what-is-the-value-of-the-css-ex-unit
'Program Tip' 카테고리의 다른 글
모든 가상 함수를 파생 클래스에서 구현해야합니까? (0) | 2020.10.05 |
---|---|
URL이 작동 중일 때 "java.net.ConnectException : Connection timed out"예외가 발생하는 이유는 무엇입니까? (0) | 2020.10.05 |
sed 또는 awk로 패턴을 포함하는 줄 끝에 추가하는 방법은 무엇입니까? (0) | 2020.10.04 |
Backbone.js 및 jQuery (0) | 2020.10.04 |
Python의 순환 목록 반복기 (0) | 2020.10.04 |