Подтвердить что ты не робот

Разница между классом и CSSClass в вопросе синтаксиса CSS + CSS + CSS

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

<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

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

4b9b3361

Ответ 1

ASP.Net CssClass представляет собой абстрактную оболочку вокруг спецификатора css "class".

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


EDIT: Селекторы CSS, которые вы написали, являются "правильными", но они выполняют две разные вещи. ".someclass th" соответствует любому потолочному элементу элемента, который имеет класс "someclass" . Второй соответствует самому элементу th, который имеет класс "someclass" .

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

Ответ 2

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

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

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

выдаст:

<label class="myStyle" for="txtTitle" />

Ответ 3

На самом деле существует разница между классом и 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")

Ответ 4

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

Ответ 5

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

Ответ 6

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

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

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