2011-03-27 4 views
2

adf skining에 문제가 있습니다. 내 스타일 시트는 1800 클래스를 넘었습니다. IE에는 4000 개의 스타일 클래스가 있습니다. 렌더링 중에 ADF는 자체 클래스를 추가합니다. 그래서 4000을 넘었고 마지막 시트에서 언급 한 스타일은 IE에서만 작동하지 않습니다. 동일한 애플리케이션에 대해 새로운 스타일 시트를 정의해야합니다.adf 프레임 워크에서 둘 이상의 스타일 시트를 정의하는 방법

adf-faces-config.xml에서 하나 이상의 스킨 패밀리를 추가하려고했습니다. 작동하지 않았다.

도와주세요.

미리 감사드립니다.

답변

1

별도의 CSS를 작성하면 문제가 해결되지만 100 % 확신 할 수는 없으며 여러 CSS 정의에 익숙해지고 특정 페이지의 CSS 만로드하면 고유 한 장점이 있다는 데 동의합니다.

당신이 할 수있는 한 가지 방법은 CSS를 구성하는 것입니다. 1800 개의 클래스를 사용하면 웹 응용 프로그램에 적절한 방법이되지 않을 수 있습니다. 웹 응용 프로그램은 모양과 느낌의 일관성을 유지해야하기 때문입니다.

오라클 포럼에서 특히 현재 뷰에서 el 식 검사를 사용하여 즉시 스킨을 전환하는 데 유용한 토론이 있습니다.

Multiple Skin in the same application

우리는 당신이 styleClasses의 수에 도착하지 않았다하더라도 나는 또한, 피부 또한뿐만 아니라 우리의 응용 프로그램에 대한 피부의 추가 복용에 내 이유를 사용하는 방법에 대한이 포럼에 언급, 우리의 CSS는 이미 구성 요소를위한 600 라인만으로 3k 라인을 치고 있으며 다른 모든 것은 styleClass입니다. 우리는 또한 트리니다 드 스킨이 제공하는 "상속"을 극적으로 사용했습니다. -tr-inherit 이렇게하면 많은 코딩 작업을 절약 할 수 있습니다.

0

확장 속성을 사용하면 동일한 응용 프로그램에 여러 스타일 시트를 사용할 수 있습니다.

트리니다드 skins.xml

<id>skin_1.desktop</id> 
    <family>skin_1</family> 
    <extends>simple.desktop</extends> 
    <render-kit-id>org.apache.myfaces.trinidad.desktop</render-kit-id> 
    <style-sheet-name>css/stylesheet_1.css</style-sheet-name> 
    </skin> 

    <skin> 
    <id>skin_2.desktop</id> 
    <family>skin_2</family> 
    <extends>skin_1.desktop</extends> 
    <render-kit-id>org.apache.myfaces.trinidad.desktop</render-kit-id> 
    <style-sheet-name>css/stylesheet_2.css</style-sheet-name> 
    </skin> 

트리니다드 config.xml의

<trinidad-config xmlns="http://myfaces.apache.org/trinidad/config"> 

    <skin-family>skyros</skin-family> 
    <skin-version>v1</skin-version> 

    <skin-family>skin_2</skin-family> 

</trinidad-config> 
관련 문제