HTML 위젯을위한 CSS 선택기를 만드는 가장 좋은 전략은 무엇입니까? 이러한 선택자는 하위 요소 나 가능한 일반 선택자와 충돌해서는 안됩니다. 나는 내-첫 위젯 안에 내 초 - 위젯 (하지만 내-첫 위젯 .item 이내), 항목을 삽입하는 경우CSS 규칙 간의 충돌을 방지하는 방법
- : 위의 코드와
/* this item class it is already done, has no relation with my widgets´ items and i can´t modify it*/ .item { color:red; } .my-first-widget{...} .my-first-widget .item { color: blue; font-size:16px;} .my-second-widget{...} .my-second-widget .item { font-size:14px;}
문제 제 2 위젯의 파란색은 파란색으로 표시됩니다 (부모로부터 색상을 물려 받기를 원합니다).
- 규칙이 .item으로 정의 된 프로젝트 내에 my-second-widget을 삽입하면 my-second-widget의 항목이 빨간색으로 표시됩니다 (관련없는 일반 항목이 아닌 해당 항목의 부모로부터 색상을 상속 받기를 원합니다). 항목의 클래스).
내보낼 수있는 위젯의 스타일을 지정하는 가장 좋은 해결책은 무엇입니까?
해결 방법 1 (사용 상위 클래스 접두어)
.my-first-widget{...}
.my-first-widget-item { color: blue; font-size:16px;}
.my-second-widget{}
.my-second-widget-item { font-size:14px;}
해결 방법 2 (이용 아동 선택기)를 solution2와
.my-first-widget{...}
.my-first-widget > .item { color: blue; font-size:16px;}
.my-second-widget{ color: black;}
.my-second-widget > .item { font-size:14px;}
가 난 여전히 일반과 충돌이있다. 항목 선택기 ...
다른 아이디어?
감사합니다. 코드가 작동하지만 테두리, 배경 등과 같은 일반 .item 클래스에서 다른 규칙의 영향을 방지하려면 어떻게해야합니까? 그들 모두를 상속하는 글쓰기가 좋은 것 같지 않습니다. – PsychoJohn
이 문제에 대한 마법의 총알이 두렵습니다. 위젯 CSS 규칙을 가능한 한 자체 포함 된 것으로 유지해야합니다. 즉, 디자인에 중요한 모든 속성을 지정해야하며 'float : none','position : static' 및 등등이 명시 적으로 설정됩니다. 외부 제 3 자 스타일 시트에있을 수있는 것에 대해서는 아무 것도 가정 할 수 없습니다. 사실, 일부 위젯은 인라인 스타일을 사용하여 위젯 레이아웃 (예 : Constant Contact 전자 메일 등록)을 파괴 할 수 없도록합니다. –
개 소식에 설명 된 해결책 1에 대해 어떻게 생각하십니까? 나는이 솔루션을 태그 선택기 (예 : 모든 중요 속성을 지정)와 조합하여 "라고 생각합니다.나의 위젯 a "는 좋은 전략이 될 수있다 – PsychoJohn