2014-02-18 6 views
0

나는 이것을 얼마나 잘 말할 수 있을지 모르겠다.px 대신 em을 사용하여 jQuery를 얻으십시오.

jQuery를 기반으로하는 웹 사이트가 있습니다. 그 내용의 대부분이 jQuery에 의해 설정되고 측정 된 &이라는 것을 의미합니다.

이러한 모든 측정 값은 px입니다. 나는 그들을 em로 변환하거나, 바람직하게는 나를 위해 변환 할 함수를 생성해야한다. 모든 글꼴 크기가 16px (또는 100 %)이면 쉽게 될 수 있습니다. 그러나 이것은 사실이 아닙니다. 컨테이너의 글자 크기를 알아 내려면 &이 필요합니다.

불만을 제기하는 것이 사과합니다. 이 감각을 만들 수 있다면 & 나를 도와주세요. 그것이 가능하다고 생각하지 않는다면, 회신하지 마십시오. 무엇이든 가능합니다. 그것은 당신이 얼마나 기꺼이 노력을 기울여야하는지에 대한 것입니다.

+0

정말 답할 코드가 필요합니다. CSS 클래스를 사용하는 것은 작업을 수행하고 jQuery는 코드를 보지 않고 HTML에 클래스를 추가한다고 생각합니다. 이것이 진행 방법인지 여부는 알 수 없습니다. –

+0

표시 할 코드가 너무 많습니다. & 그게 작동하지 않을 것입니다. 나는 동적으로 요소와 스타일을 만들고 있습니다. 저는 무언가의 너비와 같은 측정 값을 감지하고 var로 설정하고 다른 요소의 위치를 ​​설정합니다. 예를 들어 var. 명확히하는 데 도움이되기를 바랍니다. –

+0

클래스를 동적으로 만들어야하는 이유가 있습니까? css 파일에 포함시킬 수 없으며 jQuery에서 dom 요소의 클래스 만 변경할 수 있습니까? –

답변

0

나는 그것을 알아 냈다. 코드 here을 볼 수 있습니다.

  function px_to_em(px_value, container) { 
      //////////////////////////////// 
      // Detect Contianer Font Size // 
      //////////////////////////////// 

      //Prepend a span tag to the container for testing 
      $(container).prepend("<span id='wraping_span_to_test'></span>"); 

      //Set the span to height 1em and then save the pixel height to the container_ft_sz variable 
      container_ft_size = $("#wraping_span_to_test").css({ 
       "font-family": "inherit", 
        "font-size": "inherit", 
        "font-style": "inherit", 
        "font-variant": "inherit", 
        "font-weight": "inherit", 
        "line-height": "inherit", 
        "margin": "0 !important", 
        "padding": "0 !important", 
        "border": "0 !important", 
        "outline": "0 !important", 
        "background-color": "aqua", 
        "height": "1em", 
        "width": " 1em", 
        "display": "block" 
      }).height(); 

      //Remove the testing span 
      $("#wraping_span_to_test").remove(); 

      //Use values to convert to ems 
      var round_to = 1000; 
      return Math.round((px_value/container_ft_size) * round_to)/round_to; 
     } 

이것은 당신이 & 간단한 함수를 호출하여 그들을 측정으로 변환 픽셀로 측정 jQuery로 측정을 찾을 수 있도록해야합니다.

0

이것은 쉽지 않습니다. 그것에 대해 생각하면 일시적으로 너비가 1em 인 내용을 삽입하고 폭을 px로 측정 한 다음 필요한만큼을 계산할 수 있습니다.

+1

나는이 솔루션이 글꼴 크기에 기반한 em으로 필요한 결과를 어떻게 얻을 수 있는지를 보지 못했습니다. 더 자세히 설명하거나 예제를 주시겠습니까? –