2014-04-22 2 views
1

유티 앱에서 특정 경로/페이지에 대한 일부 페이지 배경 CSS 설정을 조정하려고합니다. 사람이 할 수있는 더 좋은 방법을 알고 있다면특정 페이지/경로에 대해 Meteor로 'html, body'CSS 설정 지정

Template.template.rendered = function() { 
    $('html, body').css({ 
    "background-color": "#fdfdfd", 
    ...additional css properties 
    }; 
}; 

Template.template.destroyed = function() { 
    $('html, body').css({ 
    "background": "none" 
    }; 
}; 

가 궁금 : 템플릿이과 같이, 렌더링되면 나는 CSS를 주입하는 Template.template.rendered/파괴의 jQuery 선택기를 사용하여 그렇게 할 수 있었다 이. 조금 느린 것처럼 보이고 브라우저에서 뒤로 버튼을 사용하여 페이지로 돌아 가면 페이지가 약 5 초 동안 멈춰있는 것처럼 보입니다. 이전에 철제 라우터를 사용하고 있습니까? 나는 그들에게 익숙하지 않지만, 느린 것은 브라우저 문제로 보인다. 내 생각은 이전/후크가이 문제를 해결하는 데 도움이 될 것입니다. 이 두 가지 방법 외에 다른 옵션이 있습니까? 감사.

답변

2

당신이 이 정말, 정말 특정 페이지에 특정 방식으로 htmlbody 요소에 직접 스타일을 부착해야하지 않는 한, 나는 강하게 width: 100vw;height: 100vh;과 함께 사업부의 각 페이지 전체를 감싸는 권 해드립니다 적절한 id을 입력 한 다음 CSS를 사용하여 직접 스타일을 지정하십시오.

당신이 htmlbody 요소에 직접 부착 할 필요성을 경우, 당신은 철 - 라우터의 onAfterAction 훅이 작업을 수행하려고 있나요? 스타일을 라우트에 의존한다는 점을 감안할 때 더 나은 장소 인 것 같습니다. (블레이즈는 당신이하고있는 일에서 벗어날 수 있음을 의미합니다).

+0

이 문제는 모든 CSS가 글로벌 인 Meteor의 템플릿 시스템을 사용하여 한 페이지의 스타일을 다른 스타일과 완전히 다르게 할 때 문제가 발생합니다. 일반적인 layoutTemplate을 사용하고 싶었지만이를 구현하는 방법을 실제로 볼 수 없었기 때문에 제안한 div와 함께 새로운 레이아웃을 만들었습니다. – bgmaster

+0

공통 레이아웃을 사용할 수 있지만 렌더링 할 경로에 따라 템플릿 도우미를 사용하여 클래스를 전역 컨테이너 div에 추가 할 수 있습니다. 그런 다음 사용자 정의 스타일을 해당 클래스에 적용 할 수 있습니다. 예제가 필요하면 나중에 알려 주시면 나중에 알려 드리겠습니다. – richsilv

+0

감사합니다. 그러나 이것은 사이트의 전체 섹션에서 이루어질 것입니다. 따라서 실제로는 여러 페이지가 될 것입니다 (결국). 내가 layoutTemplate을 사용하여 생각하고 각 경로에 철 - 라우터에서 지정하는 것이 가장 깨끗합니다. – bgmaster