можно ли иметь несколько CSS-классов с одинаковыми именами?

Духовность™

Продвинутый новичок
можно ли иметь несколько CSS-классов с одинаковыми именами?

Не могу понять, насколько допустимо объявлять в рамках одного документа несколько классов с одинаковыми именами:

PHP:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head>
    <style type="text/css">
    p.myclass{color:red}
    span.myclass {color:green}
    div p.myclass a.myclass{color:blue}
    </style>
</head><body>

<p class="myclass">1111</p>

<span class="myclass">2222</span>

<div><p class="myclass"><a class="myclass">3333</a></p></div>

</body></html>
Формально это работает.
Практически нельзя заюзать getElementsByClassName(), придется сортировку по тегам делать в лучшем случае.

Вот как это с точки зрения спецификации?
 

craz

Нестандартное звание
никак с точки зрения спецификации
хотите так делайте так, только думаю за вами кто придет не обрадуется.
 

Splurov

Новичок
Странные у тебя вопросы.
Класс и служит, чтобы его задавать нескольким разным элементам и потом удобно накладывать стили и выбирать джсом.
А вот разным тегам для разных стилей не особо удобно.
 

Adelf

Administrator
Команда форума
>> Практически нельзя заюзать getElementsByClassName(), придется сортировку по тегам делать в лучшем случае.

Используй jQuery и выбирай элементы теми же CSS-селекторами.
 

Духовность™

Продвинутый новичок
Класс и служит, чтобы его задавать нескольким разным элементам
вопрос внимательно прочитай)
я понимаю, зачем нужны классы
вопрос в другом

у меня есть 2 разные таблицы, у которых нужно через CSS регулировать ширину правой и левой ячейки. соответственно назвать ячейки хочется нормальным языком - как left_col и right_col:

Код:
table#t1 td.right_col { 
    width:300px;
}

table#t2 td.right_col { 
    width:600px;
}
отсюда и вопрос - а можно ли так с точки зрения стандартов? .right_col получается, не существует в гобальной области как отдельный самостоятельный класс, а является актуальным только при условии table[id="t1"]
 

phprus

Moderator
Команда форума
triumvirat
Почему .right_col получается не существующим? Он вполне себе существует, но пуст. А то, что ты задаешь его по разному для различных предков - так это одна из основных возможностей CSS.
Главное особо сильно этим не злоупотреблять, так как код написанный в первом сообщении ИМХО стал сложноподдерживаемым, а вот различное определение для разных предков - это вполне нормально.
 

Adelf

Administrator
Команда форума
буква C в CSS - означает каскадные.
Для этого тебе надо отойти от традиционного понимания классов. А перейти.. ну хотя бы на нэймспэйсную, как более близкую.
В разных нэймспейсах могут быть разные классы, но с одним и тем же именем. И все ок.
 

MiksIr

miksir@home:~$
Все жду, когда же triumvirat спросит как ему ссать ходить - сидя или стоя с точки зрения стандартов унитаза...
 

iceman

говнокодер
MiksIr
+1

triumvirat
пора уже иметь свою точку зрения, у меня она например сформировалась на предприятие, и когда то приходилось говнокодить, но я брал на заметку что можно сделать лучше и подругому и уже это воплащал в другом проекте и так по чуть чуть двигатся...
 

Духовность™

Продвинутый новичок
MiksIr
тебе дорогу указать или сам найдешь? Ещё грубит, блин. Поймаю в реале, я тебе покажу "стандарты унитаза".

iceman
причем тут точка зрения? Меня интересовал практический и теоретический вопрос - насколько уместно использовать имена одинаковых классов для разных родителей. Совершенно конкретный вопрос. Вопрос задавался потому, что иметь одинаковые имена - крайне плохо. И каскадность, Adelf, тут не причем.
 

Adelf

Administrator
Команда форума
Вопрос задавался потому, что иметь одинаковые имена - крайне плохо. И каскадность, Adelf, тут не причем.
Нуну.. "крайне плохо" :) Вариант с right_col - абсолютно нормальный. Ничего плохого в нем нет.

Крайне плохо в наше время использовать getElementsByClassName().
 

MiksIr

miksir@home:~$
> Вариант с right_col - абсолютно нормальный.
Отвратительный вариант. prices, option-list - нормальные варианты, а right_col - отвратительный.

> Поймаю в реале, я тебе покажу "стандарты унитаза"
Иди дальше семечки лузгай. Только не спрашивай у пацанов с какого конца... хотя им, наверно вопрос понравится, за умного сойдешь.
 

LONGMAN

Dark Side of the Moon..
Автор оригинала: iceman
MiksIr
+1

triumvirat
пора уже иметь свою точку зрения, у меня она например сформировалась на предприятие, и когда то приходилось говнокодить, но я брал на заметку что можно сделать лучше и подругому и уже это воплащал в другом проекте и так по чуть чуть двигатся...
Причём тут точка зрения? Зачем выдумывать самому, если можно узнать как делают умные люди и как принято? Думаю лучше узнать как другие делают и потом подумать, делать также или нет
 

Crys

Двинутый новичок
Не могу понять, насколько допустимо объявлять в рамках одного документа несколько тэгов с одинаковыми именами:

PHP:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head>
    <style type="text/css">
    p.myclass{color:red}
    p.notmylass {color:green}
    </style>
</head><body>

<p class="myclass">1111</p>

<p class="notmyclass">2222</p>

</body></html>
Формально это работает.
Практически нельзя заюзать getElementsByTagName(), придется сортировку по классам делать в лучшем случае.

Вот как это с точки зрения спецификации?

===
извините, не сдержался...
 

MiksIr

miksir@home:~$
Автор оригинала: LONGMAN
Причём тут точка зрения? Зачем выдумывать самому, если можно узнать как делают умные люди и как принято? Думаю лучше узнать как другие делают и потом подумать, делать также или нет
Точно. А умные люди до этого мучали такими вопросами предыдущих умных люде. А те тоже когда-то были глупые и мучали вопросами своих умных людей. Правда, никто не знает, кто же были эти самые первые умные люди, первопроходцы, которые никого не мучали вопросами. Поговаривают, это были Профессионалы, которые прочитали Спецификацию... хотя, скорее всего это миф, ибо Спецификацию же кто-то тоже должен был написать.
 

Crys

Двинутый новичок
хотя, скорее всего это миф, ибо Спецификацию же кто-то тоже должен был написать.
А почему спецификацию не могли написать мартышки? Мартышки до сих получают деньги за то, что пишут спецификации, продают продукцию, управляют проектами несмотря на полное незнание того, что они делают.
 

igortik

Новичок
я думаю - дело вкусов.

Иногда может стоять задача, например, с ценой.

ты делаешь <p class="price">10000</p>
в другой части документа <span class="price">10000</span>

И, соответственно, определяешь их стиль через тег.
Вот если будешь задавать просто свойство через .price, то сам знаешь что получится.

А так вполне допустимо.
 
Сверху