2011-02-26 4 views
3

저는 Wordpress 플러그인을 만드는 데 사용할 PHP 클래스를 작성하고 있지만 다른 환경에서도 사용할 수 있습니다. 스크립트 자체를 테스트 한 후에도 모두 잘된 것처럼 보였습니다.하지만 WP 플러그인을 만들 때 예상했던 CSS 충돌이있었습니다. 나는 처음에는 이들을 해결하기 위해 특이성을 사용할 것을 계획했지만 항상 그렇게 할 수는 없다. 이것은 기본 WP 테마에 : 나는 패딩이 없다하는 TD를 지정하려고하면 차라리 클래스보다, 내 테이블에 ID를 추가하지 않는 한, 그것은 작동하지 않습니다CSS! 중요한 규칙 사용, 특이성

#content tr td { 
    border-top: 1px solid #E7E7E7; 
    padding: 6px 24px; 
} 

. 특이성을 위해 ID를 사용하는 대신 모든 CSS 속성에 중요한 규칙을 구현 한 인기있는 플러그인을 보았습니다. 어느 것이 가장 좋습니까? 나는 중요한 규칙을 간과해서는 안되지만 내 ID를 추가하는 것은 동일한 ID를 가진이 테이블의 인스턴스가 여러 개 있기 때문에 의미에 어긋나는 것 같다.

문서의 ID 속성 언어를 사용하면 작성자는 문서 트리의 한 요소 인스턴스에 식별자를 할당 할 수 있습니다.

http://www.w3.org/TR/CSS2/selector.html#id-selectors

편집 :는 대안은 또한 ID와 사업부에 모든 것을 포장 할 수 있지만 규칙 #content #main TD 또는 유사한이 존재하는 경우, 그것은 여전히 ​​이상 지배하게 될 것이다 내 # 일이지. 또한 아래에 설명 된 것처럼 동일한 ID를 공유하는 두 개의 요소가있는 것은 유효하지 않지만 작동 할 수는 있습니다. 내가 코멘트에 말했듯

+1

왜 '클래스'를 사용하지 않으시겠습니까? '# content'가 테이블의 부모 인 컨테이너 요소라고 가정하면,'#content .mytables tr td'는 여전히 원래의 선택자보다 더 구체적 일 것입니다. –

+0

네, 역시 가능 하겠지만, 어떤 것도 추가하고 싶지는 않습니다. PHP 클래스는 모든 PHP 환경에서 작동 할 수 있으며 WP 특정 #content ID를 지정하지 않으므로 이에 대한 추가 제한이 있습니다. –

답변

3

, 당신은 경우#content이 래퍼 요소입니다 원래의 스타일을 재정의하는 클래스와 함께 당신의 선택에 #content 규칙을 포함 할 수 있습니다 (그리고 추가되는 경우 이후가되어야한다 모든 테이블 요소는 WordPress 게시물에 하나 이상의 테이블을 추가 할 방법이 없을 것입니다. 여러 요소 id의 추가, 당신의 특성에 !important를 사용하여 선택할 수이 경우

어쨌든, 나는 여러에게 id의 추가, !important 동안 스타일이 이상 유지할 할 수 있다는 단순한 이유 !important을 사용 할 수있다 또한 페이지에 사용 된 모든 JavaScript를 손상 시키므로 모든 브라우저에서 id selector 구현이 동일한 id을 가진 여러 요소를 수용 할 수 있다고 보장 할 수 없으므로 그 결과가 더욱 심각합니다.

기본적으로 고도로 수정되지 않은 - 그러나 - 그렇지 않으면 - 유효한 연습과 유효하지 않은, 정의되지 않은 동작 중 하나를 선택하십시오.

+0

플러그인의 여러 인스턴스에 충돌이있을 수 있다는 것을 알았 기 때문에 각 루트 DIV에 대해 고유 한 ID를 사용하기로 결정했습니다. 그런 식으로 각 인스턴스가 별도의 인스턴스라는 것을 알았습니다. 그러나 동일한 ID를 가진 두 개의 요소가 약간 이상하다고 생각합니다. 그래서 나는 중요한 규칙을 추가하는 것만으로도 (거의) 내 CSS 규칙을 어길 수 없음을 확인할 수있는 유일한 방법 일 수 있다고 생각합니다. –

+1

@AramKocharyan 그것은 '조금 이상한 것이 아니라'실제로 잘못된 HTML입니다. 그리고 유효하지 않은 HTML 브라우저를 사용하면 이상하고 멋진 방법으로 깨지기 때문에 이것을 원하면 마음에 두십시오.또 다른 방법은 여기에 두 개의 선택자를 사용하는 것입니다 :'.mytables, #content .mytable', WP에 대해 더 구체적이고 다른 사람들을 덜 구체화하는 것 –

+0

제안은! importort 규칙을 사용하는 것보다 훨씬 실용적이라고 생각합니다. 다른 방법이 없다면. 나는 그것을 시험해 볼 것이다, 환호! –