2016-12-09 3 views

답변

1

나는 이것이 qooxdoo themeing에 의해 현재 처리 될 수 있다고 생각하지 않지만, 글로벌 qooxdoo 스타일 시트에 규칙을 추가하여 해결할 수 있습니다.

필요한 주요 정보는 ::selection 의사 요소입니다. 자세한 내용은 https://developer.mozilla.org/de/docs/Web/CSS/::selection 문서를 참조하고 이에 대한 답변은 stackoverflow https://stackoverflow.com/a/23681913/6255232에서 확인하십시오.

이 정보를 사용하여 CSS 규칙은 모든 선택 가능한 요소에 대해 전체적으로 또는 구체적으로 예를 들어 qx.ui.style.Stylesheet.getInstance().addRule을 통해 추가 할 수 있습니다. 입력 및 텍스트 영역.

될 모든 입력 elments 위해 빨간색으로 선택 배경 색상을 changeing에 대한 기본 예 : 당신은을 주어진 규칙이 현재 브라우저에 적용 할 경우 addRule 방법 검사로

qx.ui.style.Stylesheet.getInstance().addRule(
    "input::selection", 
    "background-color:#ff0000" 
); 

거야 -moz-과 같은 접두사가있는 규칙을 게코 기반이 아닌 브라우저에 추가하려고 할 때 예외입니다. 따라서 브라우저 엔진 스위치를 사용하거나 모든 접두사를 사용하고 예외를 무시하여이 문제를 처리해야합니다.

var rules = [ 
    "input::selection,textarea::selection", 
    "input::-moz-selection,textarea::-moz-selection", 
    "input::-ms-selection,textarea::-ms-selection", 
    "input::-webkit-selection,textarea::-webkit-selection" 
]; 

for(var i=0;i<rules.length;i++) { 
    try { 
    qx.ui.style.Stylesheet.getInstance().addRule(
     rules[i], 
     "background-color:#ff0000"); 
    } 
    catch(ex) {}; 
} 

모든 입력 및 텍스트 영역 요소의 배경색을 빨간색으로 변경해야합니다.

물론 규칙에 color 속성을 추가하여 텍스트 색을 변경할 수도 있습니다.

그리고 모든 요소에 변경 사항을 적용하는 *::selection 규칙을 만들 수 있습니다. 내 이전 대답

+0

이 코드 스 니펫에서 적용된 qooxdoo 테마 색을 이름으로 사용하는 것이 가능합니까? –

+0

좋은 아이디어! 곧 내 대답을 바꿀 것입니다. – level420

0

하나 개 추가 :

당신은

var cssColor = qx.theme.manager.Color.getInstance().resolve('my-theme-color-name'); 

를 통해 색 이름을 해결하여 테마 색상을 사용하고 규칙에 background-color 또는 color 속성을 구성하는 것을 사용할 수 있습니다.

동적 테마 변경을 사용하는 경우 다른 테마 색상을 반영하기 위해 규칙을 다시 적용해야합니다.