2009-06-28 2 views
3

I는 다음과 같이 호출이 스타일 시트로 연결되는 HTML 페이지가있는 경우이 두 파일이 동일한 스타일의 이름을 정의하면, original.css는 결과에 아무런 관계가 없습니다 그것은 사실이다두 개의 연속적으로 호출 된 스타일 시트 중 두 번째 스타일 시트가 첫 번째 스타일 시트에 정의 된 모든 스타일을 덮어 쓸 수 있습니까?

<link rel="stylesheet" href="original.css" media="screen, projection" /> 
<link rel="stylesheet" href="override.css" media="screen, projection" /> 

을 스타일이 지정된 페이지와 모든 스타일은 override.css에 정의 된 스타일에서 올 것인가?

내가 묻는 이유는 다음과 같습니다. original.css을 수정할 수 없으며이 파일을 호출하는 코드 줄을 만지 싶지 않습니다. 대신 원본을 호출 한 직후에 새 파일에 대한 호출을 삽입하고 원본에 정의 된 모든 것을 무시하고 싶습니다. 이게 효과가 있을지 모르겠다. 그게 바람직 할 지 모르겠다.

답변

4

물론 가능합니다. 그것은 계단식 스타일 시트의 계단식 비트입니다.

원본 CSS를 삭제하거나 출력하지 않는 이유는 무엇입니까? 원래의 모든 것을 완전히 오버라이드하는 것은 매우 큰 해머 접근법처럼 보입니다 :-) 만약 당신이 실제로 original.css와 override.css를 출력한다면 브라우저는 출력하는 것보다 훨씬 더 많은 작업을해야 할 것입니다 override.css.

4

네, 그게 효과가 있습니다. 당신은 그것이 정말로 적당하지 않다는 것이 맞습니다. 원래 코드 행을 "만지지 말고"대신 주석 태그를 삽입 할 수 있습니까?

1

덮어 쓴 것은 모두 덮어 쓰 겠지만 모든 것을 보완 할 것이지만 클래스 나 ID 또는 의사 선택기에 적용되는 정보는 동일하지 않습니다. 나는 IE 의미 :

original.css -

p { margin: 4px 6px 10px 12px; } 
h1 { font-size: 2.2em } 

override.css -

p { padding: 6px; color: #666666; } 
h1 { font-size: 1.5em } 

내가 말한 것은 스타일이 각 충돌하지 않기 때문에 P가 override.css에 보완이다 다른. 반면에 H1 예제는 실제로 덮어 쓰여지고 각 스타일 시트의 두 규칙은 상충되므로 마지막 선언이 우선합니다.

이것은 생각할 수있는만큼 나쁘지 않습니다 ... 저는 방금 두 달 전에 스타일과 미친듯한 메이드 하우스 인 무들의 사이트를 종료했습니다. 템플릿은 DEFAULT 템플릿의 스타일 시트 데이터를 사용한 다음 PAGE 템플릿에서 사용한 다음 COURSE에서 스타일 시트 데이터를 사용했습니다. 내 자신을 위해 올바른 코드 조각을 찾지 못해서 어떤 스타일을했는지 ​​깨닫려고했을 때 ... 나는 마침내 새로운 덮어 쓰기 스타일과 새로운 스타일 시트로 스타일 시트를 부착하기로 결정했습니다. 그 덕분에 디자이너는 절대로 꿈꾸지 않는 코드에 대해 약 2 주간을 절약 할 수있었습니다.

희망 사항은 명확한 아이디어를 얻는 데 도움이됩니다.

안녕히 계십시오.

+1

파이어 폭스 용 "웹 개발자"또는 "파이어 버그"플러그인과 같은 훌륭한 도구는 여러 스타일 시트를 정렬하는 데 큰 도움이 될 수 있습니다. Firebug에서는 HTML을 스캔하여 각 요소에 적용되는 스타일을 알 수 있습니다. Web Developer도 비슷합니다.(자식 요소가 부모를 완전히 채우지 않는 한 Web Developer를 선호합니다.이 경우 WD에서 부모 요소를 선택할 수 없으며 Firebug를 사용해야합니다.) – TRiG

1

이러한 필요성의 좋은 예로 Sharepoint가 있습니다. 테마를 편집하면 core.css 클래스에서 재정의해야하는 모든 변경 사항이 적용됩니다.

관련 문제