2011-08-13 4 views
3

기존 프로젝트에서 TinyMCE를 사용하기 시작했습니다. 불행히도이 프로젝트는 디자이너가 잘못된 결정 인 셀렉터 #content td에 대한 CSS 규칙을 선언하는 스타일 시트를 사용합니다. 이 규칙은 TinyMCE 테마를 위반하고 있습니다. 그러나 규칙은 프로젝트에서 매우 자주 적용됩니다. 따라서, 그들을 대체하는 것은 너무 많은 노력이 될 것입니다.TinyMCE : 링크 태그를 사용하여 수동으로 스타일 시트로드하기

#content td 규칙은 TinyMCE가 자바 스크립트에서 CSS 규칙을로드하기 전에로드되기 때문에 우선 순위가 높습니다. <link> 태그를 사용하여 TinyMCE CSS를로드 할 수 있다면 프로젝트의 스타일 시트 앞에 TinyMCE 스타일 시트를로드하여 문제를 해결할 수 있습니다.

  • 가정은 맞습니까?
  • link-tag를 통해 수동으로 tinyMCE 스타일 시트를로드 할 수 있습니까?
  • 다른 아이디어가 있습니까?

답변

1

링크 특수 태그와 자바 스크립트를 사용하여 tinyMCE의 스타일을로드하는 것은 문제가 CSS 특수성에 있기 때문에 문제를 해결하지 못합니다.

가장 높은 특이성을 가진 마지막 유효 규칙이 우선하는 CSS 규칙이 있습니다.

TinyMCE의 테이블 규칙은 0,1,1의 특이성을 갖는 .mceitemtable td 형태입니다. #content td 규칙은 ID가 1,0,1의 특수성으로 시작됩니다.

따라서 ID 규칙은로드되는 순서에 관계없이 tinyMCE의 클래스 기반 규칙에서 항상 승리합니다.

CSS 특이성에 대한 자세한 내용은 http://www.stuffandnonsense.co.uk/archives/css_specificity_wars.html을 참조하십시오.

(Aside : 나는 TinyMCE가 CSS를 자바 스크립트를 통해로드했다고 생각하지 않았다. tinyMCE의 기본 동작은 iframe에서 편집기를로드하고 iframe에서 <link> 태그를 통해 자체 CSS를로드하는 것으로 표시된다는 것입니다.)

+0

구체적으로 자세히 설명해 주셔서 감사합니다. 아직 알지 못했습니다. TinyMCE는 iframe에로드되지 않지만 위대한 것입니다. 옵션이 있습니까? 나는 그것에 관한 정보를 찾을 수 없다 ... – fishbone

+0

Tinymce는 contenteditable iframe을 만들고 기본 요소 (div, textarea)를 숨 깁니다. 그런 다음 iframe을 사용하여 콘텐츠를 수정하고 스타일을 적용합니다. – Thariama

+0

제 경우에는 그렇지 않습니다. 방화 광을 사용하여 DOM 트리를 살펴본 결과 iframe을 볼 수 없습니다. TinyMCE가 iframe 안에 있다면, 스타일링에 전혀 문제가 없을 것입니다. iframe 동작을 구성 할 수 있습니까? – fishbone

0

기본 주석 시트를 덮어 쓰려면 스타일 시트를로드 할 수 있습니다. 주석 설정에 대해 살펴 보겠습니다. content_css.

+0

TinyMCE CSS를 덮어 쓰는 것은 "청결한"해결책 인 "#content td"규칙을 바꾸는 것뿐만 아니라 너무 많은 노력이 될 것이라고 생각합니다. – fishbone

+0

이것은 tinymce 편집기의 권장 방법입니다. – Thariama

관련 문제