문제

저는 정해진 날짜에 새로운 스타일로 전환되는 웹사이트를 만들고 있습니다.사이트에는 의미 체계 HTML 및 CSS가 내장되어 있으므로 변경하려면 CSS 참조 변경만 필요합니다.저는 현재 디자인의 콘텐츠 업데이트와 새로운 디자인의 진행 상황을 검토할 수 있어야 하는 고객뿐만 아니라 디자인이 어떻게 보이는지 확인해야 하는 디자이너와 함께 일하고 있습니다.

새 CSS 페이지를 선택하기 위해 쿠키를 작성하는 바닥글의 마법 쿼리 문자열 값 및/또는 자바스크립트 링크를 사용할 계획입니다.우리는 ASP.NET 3.5에서 작업하고 있습니다.어떤 권장 사항이 있습니까?

IE8, 7, 6 지원을 위해 IE 조건부 주석을 사용하고 있다는 점을 언급하고 싶습니다.대체를 수행하는 함수를 만들 수 있습니다.

<link href="Style/<% GetCssRoot() %>.css" rel="stylesheet" type="text/css" />
<!--[if lte IE 8]>
    <link type="text/css" href="Style/<% GetCssRoot() %>-ie8.css" rel="stylesheet" />
<![endif]-->
<!--[if lte IE 7]>
    <link type="text/css" href="Style/<% GetCssRoot() %>-ie7.css" rel="stylesheet" />
<![endif]-->
<!--[if lte IE 6]>
    <link type="text/css" href="Style/<% GetCssRoot() %>-ie6.css" rel="stylesheet" />
<![endif]-->
도움이 되었습니까?

해결책

Asp.net 3.5에서는 헤더의 Link 태그를 서버 태그로 설정할 수 있습니다.그런 다음 코드 숨김에서 쿠키 값, 쿼리 문자열, 날짜 등을 기반으로 링크 요소에 대한 href 속성을 설정할 수 있습니다.

aspx 파일에서:

<head>
  <link id="linkStyles" rel="stylesheet" type="text/css" runat="server" />
</head>

그리고 뒤에 있는 코드에서는 다음과 같습니다.

protected void Page_Load(object sender, EventArgs e) {
  string stylesheetAddress = // logic to determine stylesheet
  linkStyles.Href = stylesheetAddress;
}

다른 팁

당신은 조사해야 ASP.NET 테마, 그것이 바로 그들이 사용하는 것입니다.또한 컨트롤에 스킨을 적용할 수 있습니다. 즉, 기본 속성 세트를 제공할 수 있습니다.

항상 존재하는 쿼리 문자열 키에 의존할 필요가 없도록 세션에 스타일시트 선택을 저장하는 것이 좋습니다.Page_Load에서 세션을 확인하고 적절한 스타일시트 참조를 추가할 수 있습니다.이것은 임시/개발 상황인 것처럼 들리므로 쉽고 작동하는 모든 것을 선택하십시오.

if (!String.IsNullOrEmpty(Request.QueryString["css"]))
  Session.Add("CSS",Request.QueryString["css"]);

나는 다음을 수행할 것입니다:

www.website.com/?stylesheet=new.css

그런 다음 ASP.NET 코드에서 다음을 수행합니다.

if (Request.Querystring["stylesheet"] != null) {
    Response.Cookies["stylesheet"].Value = Request.QueryString["stylesheet"];
    Response.Redirect(<Current Page>);
}

그런 다음 스타일시트를 정의하는 위치는 다음과 같습니다.

if (Request.Cookies["stylesheet"] != null) {
    // New Stylesheet
} else {
    // Default
}
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top