현재 Nicole Sullivan's OOCSS grids module의 변형을 직시 자손의 레이아웃을 결정하는 데 단일 컨테이너 클래스 만 필요합니다. 나는 이것이 CSS3를 지원하는 브라우저에서만 작동한다는 경고가 있음을 알고있다. 여기 선택기 범위를 변경하지 않고 CSS 선택기의 클래스 수준 특이성을 높이는 가장 쉬운 방법
차이의 예 :바닐라 OOCSS grids 규칙 :
.unit1of4 {
width: 25%;
}
내 reduced grids 규칙 : 또 다른 중요한주의가 요소의 분수의 크기가 결정된다는 가정이
.line > :nth-child(1):nth-last-child(4),
.line > :nth-child(2):nth-last-child(3),
.line > :nth-child(3):nth-last-child(2) {
width:25%;
}
입니다 독점적으로 그 형제 수에 따라 -이 코드의 핵심 포인트인데 (leaner HTML을 사용하려면 외부에 명시 적으로 크기가 명시된 경우), 너비가 불균형 해지려고하는 예외가있을 수 있습니다.
내 선택기의 특수성으로 인해 OOCSS 모듈을 다시 붙일 수는 없습니다. 즉, HTML에서 unitXofY
클래스를 지정하면 구체적으로 기본 가정을 대체 할 수 있지만 실제로는 셀렉터가 강해서 항상 지정된 클래스를 오버라이드 (override)합니다.
제가 찾고있는 것은의 실질적인 효과를 제한하지 않고이 선택자를 대체하는 가장 단순한 또는 가장 우아한 방법입니다. . 즉, 클래스가 아닌 선택된 요소에 대해 항상 올바른 것은 아니라는 가정을해서는 안됩니다.
문제는'.size1of4.size1of4.size1of4.size1of4'는 요소가 그 클래스 이름을 선택하도록 요구한다는 것입니다. 내가 할 수있는 한,': nth-child (n)'은 어떤 엘레멘트 (즉, 생각할 수있는 엘레멘트가 그것을 따르는)에 영향을 줄 수있는 가장 가벼운 선택자이다. – Barney
그 점을 이해하지만 혼란 스러울 것은 * 당신 자신의 대답 또한 특정 클래스 이름을 사용하고 있다는 것입니다. 나는 적어도 한 번만 클래스 명을 지정하면 ('.size1of4'처럼) 덜 일반적인 것이 아니라 원하는만큼 추가 시간을 지정할 수 있다고 말하고있다. – Faust
맞아요, 요점을 봅니다 - 당신의 방법은 기본적으로 선별기가 무엇이든 가져 가야하며 필요에 따라 반복하십시오. 나는 세부 사항과 혼동 될 수없는 일반적인 패턴에 대한 선호도가 줄어들 것이라고 생각합니다. 그러나 나는 또한 누군가가 당신의 방법을 훨씬 더 빨리 알아내는 것을 상상할 수 있습니다. (그곳에 앉아서 모든 :'nth-child' 선택자들이 실제로하고있는 것을 해결하려고 노력하는 것보다). – Barney