Разница между классом и CSSClass в ASP.Net CSS + вопрос о синтаксисе CSS - PullRequest
23 голосов
/ 30 июля 2009

В чем разница между:

<asp:GridView CssClass="someclass"

и

<table class="someclass">

А как это связано с тем, как человек определяет CSS? Например, используя CssClass, можно (я думаю) написать CSS примерно так:

.someclass {font-family:"arial";  
        background-color:#FFFFFF;  
        width: 100%;  
        font-size: small;}  
.someclass th {background: #7AC142;  
             padding: 5px;  
            font-size:small;}

Но, используя класс, кажется, что этот синтаксис не работает, и, судя по http://www.w3.org/TR/css3-selectors/#class-html Я должен был бы написать выше, как это:

.someclass {font-family:"arial";  
        background-color:#FFFFFF;  
        width: 100%;  
        font-size: small;}  
th.someclass {background: #7AC142;  
             padding: 5px;  
            font-size:small;}

Может ли кто-то пролить свет на правильный путь, или если они оба верны, но есть разница между классом и CssClass в ASP.Net?

UPDATE

Ладно, похоже, что это одно и то же .... так что приведенные выше синтаксисы правильны при использовании class или cssclass, потому что они не похожи.

Ответы [ 6 ]

18 голосов
/ 30 июля 2009

ASP.Net CssClass - это абстрактная оболочка для спецификатора css "class".

По сути, для большинства намерений и целей это одно и то же. Когда вы устанавливаете для свойства CssClass некоторую строку, например «someclass», HTML-код, который будет отображать WebControl, будет class = "someclass".

<Ч />

РЕДАКТИРОВАТЬ: Селекторы CSS, которые вы написали, оба "правильные", но они делают две разные вещи. «.someclass th» соответствует любому потомку элемента, который имеет класс «someclass». Второй соответствует самому элементу th, который имеет класс someclass.

Надеюсь, это понятно. Независимо от того, как вы указываете класс для элементов (используя CSSClass ASP.Net или просто устанавливая класс), ваши CSS-селекторы будут делать то же самое. Они не имеют ничего общего с ASP.Net конкретно.

6 голосов
/ 26 июня 2013

На самом деле, есть разница между классом и CssClass: класс не будет виден кодом позади, но CssClass будет.

Таким образом, если вы добавляете новый класс к элементу управления в вашем коде, например:

myControl.CssClass += " foo";

в то время как ваш контроль установлен следующим образом:

    <asp:TextBox class="Text" ID="myControl" runat="server" />

(Атрибут класса примечания: class="Text")

При проверке визуализированного элемента в браузере вы увидите, что он будет отображен следующим образом:

<input class=" foo" name="ctl00$MainContent$myControl" type="text" id="MainContent_myControl" >

(Обратите внимание, как класс был переопределен: class= " foo".)

Если вы устанавливаете CssClass с другой стороны:

<asp:TextBox CssClass="Text" ID="myControl" runat="server" />

вы получите его (как и ожидалось) примерно так:

<input class="Text foo" name="ctl00$MainContent$myControl" type="text" id="MainContent_myControl">

(обратите внимание, что в классе теперь установлены оба класса, как и ожидалось! class="Text foo")

6 голосов
/ 30 июля 2009

Когда вы используете атрибут CssClass в серверном элементе управления ASP.NET, он будет отображаться как class в HTML.

Например, если бы я использовал тег метки в моей разметке:

<asp:label runat="server" CssClass="myStyle" AssociatedControlID="txtTitle" />

будет отображаться в:

<label class="myStyle" for="txtTitle" />
4 голосов
/ 30 июля 2009

Нет разницы между CssClass и классом в Asp.Net, кроме того, что CssClass является свойством элемента управления, а класс является атрибутом, указанным в html CssClass отображается как атрибут класса в Html.

2 голосов
/ 30 июля 2009

Также обратите внимание, что CssClass = "someclass anotherclass" также работает, так как строка копируется с копией.

0 голосов
/ 30 июля 2009

Итак, оба приведенных выше синтаксиса исправить при использовании class или cssclass, потому что они не кажутся.

Я не уверен, что вы имеете в виду, когда говорите, что они "кажутся" неправильными? Различаются ли они по-разному, даже если вы используете <table class='someClass'> в обоих случаях?

ИМХО, что касается атрибута 'class', они оба верны. Вы пробовали .someClass > th вместо .someClass th во втором случае? Это может решить проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...