2009-10-06 5 views
0

내 페이지에 ASP : Label 컨트롤이 있으며 일부 CSS 서식을 지정하고 싶습니다. 나는 그것이 CssClass 이름을 줄 수 있다는 것을 알고 있지만, 특정 위치를 지정하고 싶기 때문에 잘못되었다. 따라서 html 요소의 "id"속성과 더 비슷한 무언가를 찾고있다.ASP 컨트롤에 대한 CSS 서식 지정

레이블의 ID는 ASP에서 사용하는 ID이지만 실제 HTML에서는 생성 된 ID가 다릅니다.

제안 사항? 감사합니다. . 당신이 위치를하고 있다면, .... 컨트롤이, 그것이 ctrl.etc와 마찬가지로 렌더링됩니다 렌더링됩니다 때

<asp:Label ID+"lblID" style=" [whatever style you want goes in here "] runat="server /> 

가 기억

을 또는 :

답변

0

난 당신이 뭔가를 할 수 있다고 생각 당신은 라벨을 포장 할 수 없습니다 <div>

+0

감사합니다,하지만 경우 나는 css가 .css 파일에 있기를 원한다. 이것은 CSS 파일의 전체 아이디어가 아니며, 디자인 (= 스타일)에서 컨텐츠를 분리합니까? –

+0

사실, 그렇지만 미친 이름 지정 규칙이있는 CSS 파일이 있습니다. div 또는 span에 특정 레이블을 래핑하여 위치 지정을 적용 할 수 있습니까? 나는 .NET 4.0이 마침내 ClientID가 무엇으로 렌더링 될지를 지정할 수있게 해줄 것이라고 믿는다. –

0

예 - 웹 양식의 주요 골칫거리입니다.이 아이디는 라벨 (또는 다른 컨트롤) 안에있는 모든 내용 부분, 패널 등으로 구성됩니다.

가장 좋은 방법은 컨트롤에 CssClass를 추가하는 것입니다.

1

ASP.net은 본질적으로 CSS ID 선택기를 손상시킵니다. 이 문제를 해결하기 위해이 ID를 CssClass 특성에 배치합니다.


    <style type="text/css"> 
     input.first-name { /* style me */ } 
    </style> 

    <asp:TextBox runat="server" ID="firstName" CssClass="first-name" /> 

또한 내가 인라인 스타일을 사용하지 않도록하거나 컨트롤을 제공하는 추가 스타일 속성을 사용하여 가능한 한 많이 시도 CssClass 속성


    <style type="text/css"> 
     input.first-name { /* style me */ } 
     input.text-input { /* because ie 6 won't do input[type=text] */ } 
    </style> 

    <asp:TextBox runat="server" ID="firstName" CssClass="first-name text-input" /> 

에서 여러 클래스 이름을 추가 할 수 있습니다.

1

유일한 옵션은 CssClass 또는 인라인 스타일을 사용하는 것입니다. ASP.NET이 서버 측 컨트롤의 ID를 자동으로 생성하기 때문에 이러한 내용이 무엇인지 추측하지 마십시오. 우아한 CSS 레이아웃으로 작동하는 Webforms를 얻는 것이 큰 어려움이 될 수 있습니다.

ASP.NET 4.0은 앞으로 ID 특성을 사용하여 작업하기가 더 쉬워야하는 ClientID 속성을 소개합니다.

2

ASP.Net의 다음 버전에서는 컨트롤에 정확한 클라이언트 ID를 지정하기가 더 쉽습니다.

인라인 스타일

<asp:Label runat="server" ID="MyLabel" style="..." /> 

당신이 후 질문에서 언급 한 바와 같이

그냥, CSS 클래스를 사용 CssClass : 지금이 순간, 당신은이 문제를 해결하기 위해 몇 가지 옵션이 있습니다. 당신이해야 할 일이 있다면 그것들을 독특하게 만들지 못하게 할 수는 없습니다.

당신이 당신의 스타일 시트를 작성할 때 스타일 시트

를 제공 클라이언트 ID에 대한 파일에 자리를 떠나 핸들러를 작성합니다. 그런 다음 http 핸들러를 사용하여 각 요청에서 실제로 렌더링 된 ID를 대체하십시오.이는 스타일 시트 요청이 html 페이지 요청과 별개이기 때문에 정확히 간단하지는 않지만 분명히 언급할만한 가치가 있습니다.

<div id="MyContainer"><asp:Label ID="MyLable" runat="server" /></div> 

을 그리고 당신의 스타일 :

그 범위가 특정 명명 컨테이너 내에서 고유 경우 레이블, span 태그로 렌더링하기 때문에 컨테이너

를 사용하여 당신은 그런 식으로 선택할 수 있습니다 시트 :

#MyContainer span { /*...*/ } 

는 컨테이너 + 클래스를 사용

컨테이너가 충분히 특정하지 않은 경우, 당신은 단지 해당 컨테이너 내에서 범위를 좁힐 클래스를 사용할 수 있습니다

<div id="MyContainer"><asp:Label ID="MyLable" runat="server" CssClass="MyClass"/></div>  

와 스타일 시트 :

#MyContainer span.MyClass { /*...*/ }