2010-02-21 7 views
1

"ID"선택기 (#btnOK)를 사용할 때 스타일이 적용되지 않는 문제가 있습니다. 그러나 클래스 선택기 (.btnOK, "#btnOK"를 CSS 파일의 ".btnOK"로 변경하여)를 사용하면 스타일이 적용됩니다.CSS ID 선택기가 작동하지 않지만 클래스 선택기가 수행

왜 그런가? 스타일 IS는 디자인 모드에도 적용되지만 런타임에는 적용되지 않습니다. 이것은 CSS 파일을 찾는 것입니다. 그렇지 않으면 클래스가 적용되지 않습니다. ID에 대소 문자가 일치합니다. CSS/CvCost.css에서

<link href="CSS/CvCost.css" rel="stylesheet" type="text/css" /> 

<asp:Button ID="btnOK" CssClass="btnOK" runat="server" Text="OK" ValidationGroup="Add"/> 

: 웹 페이지에서

나는 코드가 실행 된 경우에 표시됩니다 올바르게 ID를 기억하는 경우
#btnOK{ 
    margin-right:5px; 
    margin-top:5px; 
    float:right; 
    width:75px; 
    height: 25px; 
} 
+0

* 실제 * HTML을 게시 할 수 있습니까? – nickf

+0

렌더링 된 HTML 페이지의 소스 코드보기. 서버 측 태그의 ID가 asp.net 엔진이 이해할 수있는 것으로 변경된다고 생각합니다. –

+0

질문이 나를 대답으로 안내 할만큼 충분했습니다. btn 컨트롤의 이름이 ctl00_phPageContent_btnOK로 바뀌 었습니다. 음 ... 마스터 페이지를 사용할 때 ID 선택기가 매우 편리하지 않은 것처럼 보입니다. Sugegstions? – ChadD

답변

3

ASP.Net은 요소의 컨테이너를 기반으로 고유 ID를 자동으로 생성합니다.

ASP.Net의 실제 ClientID를 사용해야합니다.
외부 CSS 파일에서는이 작업을 수행 할 수 없으므로 클래스 선택기 만 사용해야합니다.

ASP.Net 4를 사용하는 경우 새 ClientIDMode 속성을 Static으로 설정할 수도 있습니다.

+0

감사합니다. – ChadD

+0

ClientIDMode 속성에 대해 알아두면 유용합니다. 나는 3 월에 출시 될 것을 알았다. – ChadD

+0

나는 당신이하려고하는 것과 똑같은 것을 시도한다. 그러나 그것을 끝내기가 어렵다. 그래서 나는 내가 원하는 것을 얻기 위해 반으로 전환한다. 스타일 ID는 .Net 객체가 아닌 객체에서도 잘 작동 할 수 있습니다. 누군가가 이유를 설명 할 수 있습니다. – mutanic

1

/디버깅은 않을 것 #btnOK와 동일해야합니다. VS는 코드가 실행될 때 다른 ID를 부여합니다.

+0

이것은 Visual Studio가 아니라 ASP.Net에서 수행합니다. – SLaks

관련 문제