2011-04-20 3 views
2

저는 ASP.NET으로 웹 사이트를 개발하고 있습니다. ASP.NET에서 Themes and Skins이 어떻게 작동하는지 처음 배울 때, 나는 그것이 쉽고 참 좋았다는 것을 발견했습니다.테마 대. Old School Stylesheets

하지만 나중에 나는 App_Themes 접근법이 상당히 성가시다는 것을 알기 시작했고, CSS를 적용한 CSS는 전혀 유연하지 않습니다. 내가 놓친 게 있니?

  1. CSS 파일은 자동으로 테마를 사용하여 영문 페이지에 추가됩니다

    내가 내가 먼저 웹 개발을 시작했을 때이 정보가 도움이 다시 찾는 데 사용. 하지만 나중에 CSS에 대해 더 많이 알게되었을 때, 나는 이것을 정말로 혼란스럽게 보았습니다. 때로는 특정 CSS 파일을 추가하는 데 쓸모가없는 페이지가 있습니다.

    최악의 경우 알파벳순으로 항상 추가되므로 가장 먼저 파일을 제어 할 수 없습니다. 이것은 일종의 "재설정"CSS 파일을 작성한 경우에 특히 중요합니다. 따라서 재설정 된 CSS 파일이 알파벳 순서로 맨 위를 차지하기를 원하기 때문에 항상 파일 이름을 지정할 수는 없습니다.

    이 솔루션은 모든 CSS 코드를 하나의 파일에 넣을 수 있다는 것을 깨닫습니다. 실제로는 프로덕션 환경에서 더 좋습니다. 그러나 이것은 꽤 융통성이없고 CSS 코드 관리를 아주 어렵게 만듭니다.

  2. URL 웹 사이트에 추가 된 CSS 파일이 실제 aspx 페이지에 상대 경로의 그대로가 다시 작성 한 후이없는 URL로, 중요한 문제이다

    를 다시 쓰기.

    예를 들어이 URL이 http://www.example.com/date/category/item.aspx 인 경우 다시 http://www.example.com/items.aspx?id=item으로 다시 쓰면 해당 페이지 내에서 CSS 파일에 대한 링크는 다음과 같이 보일 것이다 :

    <link href="App_Themes/ThemeName/style.css" type="text/css" rel="stylesheet" />

    그것이 있어야 여기서 간단히 <link href="../../App_Themes/ThemeName/style.css" type="text/css" rel="stylesheet" />

    또는 : <link href="http://www.example.com/App_Themes/ThemeName/style.css" type="text/css" rel="stylesheet" />

    는 따라서 웹 페이지 디자인을 깨는을,로 브라우저는 CSS 파일을 찾지 못합니다.

다음은 테마와 관련된 두 가지 주요 문제점입니다. 따라서 내가 묻는 것은 App_Themes 접근을 도랑으로 바꾸고 "구식 학교"CSS 디자인으로 다시 전환하는 나쁜 행동인가? (예 : 일반 폴더를 만들고 CSS 파일을 넣고 CSS에 대한 링크를 직접 페이지)? 여기에 누락 된 기능이 있습니까?

답변

2

두 가지 접근 방식의 차이점을 보려면 MSDN을 참조하십시오. 기본적으로 테마를 사용하면 스타일 만 제어하는 ​​대신 컨트롤의 속성을 설정할 수 있습니다. 스타일링 목적으로 만 테마를 사용한다면 CSS 방식으로 어떤 것도 잃어 버리지 않을 것입니다. 나는 개인적으로 CSS를 사용하여 내장 된 테마를 사용하는 것보다 훨씬 나은 제어 기능을 제공한다.

+0

MSDN 링크가 끊어졌습니다. 차이점을 설명하는 페이지에 대한 링크가 있다면 크게 환영 할 것입니다. – Dan

+0

@ 단, 링크를 수정했습니다. – VinayC

0

필자는 manteinance 목적과 재귀를 위해 분리 된 스타일 시트를 사용하는 것이 더 좋습니다. 스타일을 반복하고 싶다면 스타일이 지정된 각 객체의 코드를 반복하는 대신 필요할 때 언제든지 쉽게 스타일에 액세스 할 수 있습니다. 여러 객체의 스타일을 변경하려면 스타일 시트에서 스타일을 변경하면 모든 객체에 영향을줍니다.

이 정보가 도움이되기를 바랍니다.

+0

어떻게이 질문과 관련이 있습니까? – Heinzi

1

두 방법의 혼합이 가장 효과적이라는 것을 알았습니다. Theme의 사용을 생각할 때는 CSS 파일, 이미지, 사이트의 모양과 느낌을 제어하는 ​​스킨 파일 (색상이나 로고 등 변경)을 다른 테마 사이에서만 만들어야합니다.

사이트가 제대로 구성되어 있는지 확인하려면 사이트의 주요 부분 아래에 자체 폴더에있는 테마 디렉토리 외부에 base.css, reset.css 및 기타 구조적 CSS 파일이 항상 있어야합니다. (/ include/css/예를 들어,/includes/js /는 내 자바 스크립트 용).

이렇게하면 구조적으로 사이트의 일관성을 유지할 수 있으며 항상 마스터 페이지에 해당 CSS 파일을 포함시킨 다음 주제별로 적용하여 모양과 느낌 만 변경할 수 있습니다.

URL 재 작성에 대한 링크 참조는 항상 /로 시작하여 서버가 항상 서버의 루트에서 시작하여 필요한 파일을 찾을 수 있는지 확인합니다. 따라서 구조용 CSS 파일에 대한 내 링크는 항상 다음과 같습니다.

<link href="/includes/css/base.css" type="text/css" rel="stylesheet" /> 

HTH.

+0

하지만 페이지에 자동으로 추가되는 CSS 파일은 어떻습니까? 후행 슬래시를 추가 할 수 없습니까? 따라서 두 가지 방식을 혼합하면 URL 재 작성 후에도 여전히 손상됩니다. – Dan

+0

나는 URL 재 작성을 광범위하게 사용하지 않았기 때문에 app_theme 파일이 올바르게 포함되지 않는다는 사실을 말할 수는 없지만이 설정을 달성 할 수있는 몇 가지 속성이있을 수 있음을 인정해야합니다. 확인을 위해 몇 분만 기다려주세요. 내가 만난 결과를 다시 답하겠습니다. 나는 내 프로젝트에 대한 URL 재 작성을 소개하려고한다. 그래서 이것은 나에게 도움이 될 것이다. 그래서 나는 곧 당신과 같은 배에 올 것 같아요.이 주제에 관한 어떤 정보라도 도움이 될 것입니다. – szeliga

+1

그냥 따라 가려면 모든 페이지가 기본 페이지에서 상속 받도록하고 렌더링 메서드를 재정의하고 페이지 헤드의 각 컨트롤에 대해 각 href ... http 앞에 경로에 "/"가 있는지 확인해야합니다. : //weblogs.asp.net/fmarguerie/archive/2006/01/11/435022.aspx 정확한 해결책은 아니지만 일을 끝내야합니다. 당신을 위해 이것을해야하는 URL 재 작성에 어떤 종류의 속성이 있어야합니다. :( – szeliga

관련 문제