[css] CSS의 반응 형 글꼴 크기

Zurb Foundation 3 그리드를 사용하여 사이트를 만들었습니다 . 각 페이지에는 큰 것이 있습니다 h1.

body {
  font-size: 100%
}

/* Headers */

h1 {
  font-size: 6.2em;
  font-weight: 500;
}
<div class="row">
  <div class="twelve columns text-center">
    <h1> LARGE HEADER TAGLINE </h1>
  </div>
  <!-- End Tagline -->
</div>
<!-- End Row -->

브라우저 크기를 모바일 크기로 조정하면 큰 글꼴이 조정되지 않고 큰 텍스트를 수용하기 위해 브라우저에 가로 스크롤이 포함됩니다.

나는에 Zurb 재단 3 타이포그래피의 예제 페이지 가 압축 및 확장으로, 헤더가 브라우저에 적응.

내가 정말로 명백한 것을 놓치고 있습니까? 어떻게하면 되나요?



답변

font-size브라우저 창 크기를 조정하는 경우 다음과 같이 응답하지 않습니다. 대신 그들은 그러한 누를 경우 같은 브라우저 줌 / 종류 크기 설정, 응답 Ctrl+함께하는 동안 브라우저에서 키보드.

미디어 쿼리

다음을 사용하여보고 할 것 미디어 쿼리를 그것이 당신의 디자인을 깨고 스크롤바를 만드는 시작하는 위치를 일정 간격으로 글꼴 크기를 줄일 수 있습니다.

예를 들어, CSS의 맨 아래에 이것을 추가하여 디자인이 깨지기 시작하는 곳의 너비를 320 픽셀로 변경하십시오.

@media only screen and (max-width: 320px) {

   body {
      font-size: 2em;
   }

}

뷰포트 백분율 길이

당신은 또한 사용할 수있는 뷰포트 비율 길이 등을 vw, vh, vminvmax. 이 상태에 대한 공식 W3C 문서 :

뷰포트 백분율 길이는 초기 포함 블록의 크기를 기준으로합니다. 초기 포함 블록의 높이 또는 너비가 변경되면 그에 따라 크기가 조정됩니다.

다시, 동일한 W3C 문서에서 각 개별 단위를 다음과 같이 정의 할 수 있습니다.

vw 단위-초기 포함 블록 너비의 1 %와 같습니다.

vh 단위-초기 포함 블록 높이의 1 %와 같습니다.

vmin 단위-vw 또는 vh 중 작은 것과 같습니다.

vmax 단위-더 큰 vw 또는 vh와 같습니다.

그리고 다른 CSS 값과 정확히 같은 방식으로 사용됩니다.

.text {
  font-size: 3vw;
}

.other-text {
  font-size: 5vh;
}

여기에서 볼 수 있듯이 호환성은 비교적 좋습니다 . 그러나 일부 Internet Explorer 및 Edge 버전은 vmax를 지원하지 않습니다. 또한 iOS 6 및 7에는 vh 장치에 문제가 있으며 iOS 8에서 수정되었습니다.


답변

ems, pxs 또는 pts 대신 viewport 값을 사용할 수 있습니다.

1vw = 뷰포트 너비의 1 %

1vh = 뷰포트 높이의 1 %

1vmin = 1vw 또는 1vh 중 작은 값

1vmax = 1vw 또는 1vh 중 큰 쪽

h1 {
  font-size: 5.9vw;
}
h2 {
  font-size: 3.0vh;
}
p {
  font-size: 2vmin;
}

CSS-Tricks : 뷰포트 크기의 타이포그래피


답변

나는이 문제를 극복하는 방법을 가지고 놀고 있었고 해결책을 찾았습니다.

Internet Explorer 9 이상 및 CSS calc (), rem 단위 및 vmin 단위를 지원하는 다른 모든 최신 브라우저 용 응용 프로그램을 작성할 수있는 경우 이를 사용하여 미디어 쿼리없이 확장 가능한 텍스트를 얻을 수 있습니다.

body {
  font-size: calc(0.75em + 1vmin);
}

여기에 작동합니다 : http://codepen.io/csuwldcat/pen/qOqVNO


답변

media반응 형 스타일링을 위해 CSS 지정자를 사용하십시오 ([zurb]가 사용하는 것임).

@media only screen and (max-width: 767px) {

   h1 {
      font-size: 3em;
   }

   h2 {
      font-size: 2em;
   }

}


답변

jQuery 솔루션을 사용하지 않으려면 TextFill 플러그인을 사용해보십시오.

jQuery TextFill은 컨테이너에 맞게 텍스트 크기를 조정하고 글꼴 크기를 최대한 크게 만듭니다.

https://github.com/jquery-textfill/jquery-textfill


답변

이를 달성하는 몇 가지 방법이 있습니다.

미디어 쿼리를 사용 하지만 여러 중단 점에 대한 글꼴 크기가 필요합니다.

body
{
    font-size: 22px;
}

h1
{
    font-size: 44px;
}

@media (min-width: 768)
{
    body
    {
        font-size: 17px;
    }
    h1
    {
        font-size: 24px;
    }
}

치수를 % 또는 em로 사용하십시오 . 기본 글꼴 크기 만 변경하면 모든 것이 바뀝니다. 이전 글꼴과 달리 매번 h1이 아닌 body 글꼴을 변경하거나 기본 글꼴 크기를 장치의 기본값으로 설정하고 나머지는 모두 다음과 같이 할 수 있습니다 em.

  1. “Ems”(em) :“em”은 확장 가능한 단위입니다. 예를 들어, 문서의 글꼴 크기가 12pt이면 1em은 12pt와 같습니다. Em은 본질적으로 확장 가능하므로 2 em은 24pt, 0.5 em은 6pt 등입니다.
  2. 퍼센트 (%) : 퍼센트 단위는“em”단위와 매우 유사하며 몇 가지 근본적인 차이점을 제외하고는 절약합니다. 가장 먼저 현재 글꼴 크기는 100 %입니다 (즉, 12pt = 100 %). 퍼센트 단위를 사용하는 동안 텍스트는 모바일 장치 및 접근성을 위해 완벽하게 확장 가능합니다.

kyleschaeffer.com / …. 참조

CSS 3 은 뷰 포트와 관련된 새로운 차원을 지원합니다. 그러나 이것은 Android에서 작동하지 않습니다.

  1. 3.2vw = 뷰포트 너비의 3.2 %
  2. 3.2vh = 뷰포트 높이의 3.2 %
  3. 3.2vmin = 더 작은 3.2vw 또는 3.2vh
  4. 3.2vmax = 더 큰 3.2vw 또는 3.2vh

    body
    {
        font-size: 3.2vw;
    }

CSS-Tricks …를 참조 하고 Can I Use … 도 참조 하십시오.


답변

rem 단위를 사용하여 반응 형 글꼴 크기에 대한 또 다른 접근 방식이 있습니다.

html {
    /* Base font size */
    font-size: 16px;
}

h1 {
    font-size: 1.5rem;
}

h2 {
    font-size: 1.2rem;
}

나중에 미디어 쿼리에서 기본 글꼴 크기를 변경하여 모든 글꼴 크기를 조정할 수 있습니다.

@media screen and (max-width: 767px) {
    html {
      /* Reducing base font size will reduce all rem sizes */
      font-size: 13px;
    }

    /* You can reduce font sizes manually as well */
    h1 {
        font-size: 1.2rem;
    }
    h2 {
        font-size: 1.0rem;
    }
}

Internet Explorer 7 및 Internet Explorer 8에서이 작업을 수행하려면 px 단위로 대체를 추가해야합니다.

h1 {
    font-size: 18px;
    font-size: 1.125rem;
}

Less로 개발하고 있다면 수학을 할 믹스 인을 만들 수 있습니다.

렘 단위 지원-http: //caniuse.com/#feat=rem