2010-04-30 9 views
3

카탈로그, 홈페이지, 연락처 페이지, 우리에 관한 페이지 등이 포함 된 고객 프런트 엔드 사이트가 있습니다. 관리 프론트 엔드도 있습니다. 클래스 "admin"을 가진 요소 내의 어떤 요소라도 관리자 스타일 시트에 설정된 속성을 상속하고 고객 스타일 시트에서 상속받은 모든 종류의 계층을 구현하고 싶습니다. 이 기능의 목적은 관리자가 고급 프런트에 액세스 할 수있는 관리자 프런트 엔드에 로그인 할 수 있도록하지만, 기본 작업을 실행할 수있는 고객 프런트 엔드 (예 : 카탈로그 항목 숨기기, 실행 중 고객이 문제를보고하는 경우 디버그 스크립트 등). 고객 프론트 엔드의 모든 관리 도구에 고객 스타일 대신 관리자 스타일 시트에서 가져온 속성이 있어야합니다. 이렇게하면 배경색과 재료가 변경됩니다.CSS - 클래스 계층 구조?

예를 들어, 일을 간단하게 네임 스페이스처럼 설정할 수있는 쉬운 방법이 있나요 : 난 그냥하고 싶지 해달라고

.admin .list {} 
.admin .list .list-item {} 
.admin a 

: 나는처럼 될 수있어

.admin { 
    .list { 
     .list-subtitle 
     { 
     } 
     .list-item 
     { 
     } 
    } 
    a 
    { 
    } 
} 
.customer 
{ 
    .list 
    { 
     .list-subtitle 
     { 
     } 
     .list-item 
     { 
     } 
    } 
    a 
    { 
    } 
} 

가 .admin 항상 퍼팅하십시오.

아무도 내가 이것을 할 수있는 방법에 대한 제안이 있습니까? 나는 이것을 설정하고 그것을 넣은 것에 따라 스타일 시트를 쓰는 .net 클래스를 작성할 수 있다고 생각하지만 스타일을 쉽게 읽을 수 없으므로 Classes와 같은 모든 종류의 클래스를 추가 할 수 있습니다. 추가 (어쩌구 저쩌구) 등등. 당신이 볼 수있는 답변에 미리

감사합니다 ...

감사합니다,

리처드 기본적으로

<ul class="customer"> 
    <li>Will appear as a customer control</li> 
    <li>Will appear as a customer control</li> 
    <li class="admin">Will appear as an admin control</li> 
</ul> 
<div class="customer"> 
    <ul class="admin"> 
     <li>Will appear as an admin control</li> 
     <li>Will appear as an admin control</li> 
     <li>Will appear as an admin control</li> 
    </ul> 
</div> 

는 I 클래스 "관리자"로 모든 요소를 ​​원하거나 내 클래스 "admin"을 가진 요소는 관리자 프론트 엔드에서와 같이 나타납니다. 그렇지 않으면 고객 프런트 엔드에서와 같이 나타납니다. 또한 다른 방법으로도 사용할 수 있으므로 관리자는 고객 프런트 엔드에 표시되는 것처럼 데이터베이스에 제출하기 전에 입력 한 내용을 미리 볼 수 있습니다.

CSS에서 네임 스페이스가 허용되면 문제가되지 않을 것입니다. 불행히도 Less와 같은 기능을 쉽게 구현할 수있는 유일한 방법 인 것 같습니다. (불행히도 전에 사용 해보지 않았기 때문에 불행히도 이것에 대해서는 매우 단단한 시간표를 사용하고 있습니다 - 나는 Less와 같은 도구에 대해 아무것도 가지고 있지 않습니다!).

감사합니다,

리처드

답변

7

Less CSS 또는 SASS을 사용해 보았습니까?

+0

이 두 대답은 모두 내가 찾는 것입니다 .. 감사합니다 ... 내가 원하는만큼 간단하지는 않습니다 (단지 CSS에서 직접 가능하기를 바랬 기 때문에 아무 것도 다운로드하고 설치하지 않아도 됨) Ta . – ClarkeyBoy

+0

슬프게도 바닐라 CSS로 반복되는 것을 피하기 위해 할 수있는 일은 많지 않습니다. 시나리오에 따라 스타일 시트의 admin 버전을 동적으로 포함 할 수 있습니다 (둘 다 .client 및 .admin으로 한정되지 않도록 변경 한 후)? 관리자가 로그인했을 때와 두 번째 스타일 시트가 첫 번째 항목을 무시할 수있는 경우를 모두 포함하여 ... –

+0

사용자가 로그인 한 경우 admin.css를 포함시킬 수 있다고 생각합니다. 그 결과 스타일 앞에 .admin 접두어를 붙이십시오. 그렇지 않으면 전체 페이지에 관리자 스타일이 적용될 것입니다. 나는 이것을 원하지 않습니다. 기본적으로 나는 List 컨트롤을 갖고 싶다. admin 링크가 있다면 부모 div는 admin 프론트 엔드에서와 같이 모든 자식 요소가 나타나도록 클래스 "admin"이 적용되어있다. 그게 좀 설명하기 복잡 .. jst는 코드 스 니펫을 게시 할 수 있는지 확인합니다 .. – ClarkeyBoy

5

가 네이티브 CSS의 방법은 없습니다,하지만 당신은 당신이 그런 식으로 쓰기 실제 CSS로 컴파일 할 수 LESS 같은 것을 사용할 수 있습니다.

HSS도 있습니다. 지정한 중첩 된 규칙도 지원합니다.

+0

는 .. 덕분에 무엇을 찾고 메신저이 답변 모두 같은데 .. 간단하지 내가 기대했던대로 (단지 내가 직접 CSS에 가능했다 희망보다는 다운로드하고 아무것도 설치하지 않았기 때문에) Ta. – ClarkeyBoy