Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Классы a1 a2 a3 ... a999 a1000. Как задать им CSS через общий .a?
Форумы портала PHP.SU » Клиентская разработка » HTML, Дизайн & CSS » Классы a1 a2 a3 ... a999 a1000. Как задать им CSS через общий .a?

Страниц (1): [1]
 

1. LShark - 08 Марта, 2013 - 08:21:40 - перейти к сообщению
В целом - сабж.

Автоматом генерируется контент, в котором множество пунктом, имеющих такое построение:
У каждой группы указан класс:
class='a1' a2 и т.д., вплоть до возможных a999 a1000

Как им всем назначить стиль через CSS, не объявляя каждый класс?

.a {} ? Или как?
2. DeepVarvar - 08 Марта, 2013 - 08:57:35 - перейти к сообщению
Сабж некорректен. Подозреваю используете эти селекторы для доступа к таким элементам из js.
Вот нормальный пример:
CODE (html):
скопировать код в буфер обмена
  1. <div class="myclass"></div>
  2. <div class="myclass"></div>
  3. <div class="myclass"></div>
  4. <div class="myclass"></div>
  5. <div class="myclass"></div>
  6. <div class="myclass"></div>
  7. <script type="text/javascript">
  8.   $("div.myclass").each(function(){
  9.     console.log("Div index of array: " + $(this).index());
  10.   });
  11. </script>
3. DelphinPRO - 08 Марта, 2013 - 09:01:07 - перейти к сообщению
ну обычно это делается так

CODE (html):
скопировать код в буфер обмена
  1. <div class="item item__red"></div>
  2. <div class="item item__green"></div>


CODE (css):
скопировать код в буфер обмена
  1. /* общие стили для всех */
  2. .item { border: 3px solid; }
  3.  
  4. /* индивидуальные стили (модификаторы) */
  5. .item__red { border-color: red; }
  6. .item__green { border-color: green; }
  7.  


и это правильно.

можно так:
CODE (html):
скопировать код в буфер обмена
  1. <div class="item__red"></div>
  2. <div class="item__green"></div>


CODE (css):
скопировать код в буфер обмена
  1. /* общие стили для всех */
  2. div[class*=item] { border: 3px solid; }
  3.  
  4. /* индивидуальные стили (модификаторы) */
  5. .item__red { border-color: red; }
  6. .item__green { border-color: green; }
  7.  


Но тут, сами понимаете, не прокатит, если ваш класс состоит из одной лишь буквы. Потому что матчится будет куча ненужных классов.
Кроме того у такой записи повышается специфичность селектора, что также затрудняет расширяемость и поддержку кода.
4. LShark - 08 Марта, 2013 - 10:38:11 - перейти к сообщению
DeepVarvar пишет:
Сабж некорректен.

Увы, корректен.

Используется в тестах, где каждый вопрос имеет ответы, у каждого - свой класс, соответственно пронумерованный (а в классе - от 2 до 50 элементов-ответов).

DelphinPRO пишет:
ну обычно это делается так

Ты как всегда прав. Действительно, увеличил длину основного имени класса для уменьшения совпадения в будущем, получил (условно класс теперь aaa1-1000):
CODE (htmlphp):
скопировать код в буфер обмена
  1. input[class*=aaa] { border: 3px solid; }
- все сработало, как надо. Это значительно сократило размер страницы, которую генерирует программа тестирования (так как ранее это было всунуто в каждый элемент).
5. DeepVarvar - 08 Марта, 2013 - 11:51:22 - перейти к сообщению
LShark пишет:
Увы, корректен.
Вам показалось.
6. LShark - 08 Марта, 2013 - 13:36:58 - перейти к сообщению
Хорошо, в моем варианте использовано:
CODE (htmlphp):
скопировать код в буфер обмена
  1. Вопрос 1
  2. Ответ1
  3. Ответ2
  4. Ответ3
  5.  
  6. Вопрос 2
  7. Ответ1
  8. Ответ2
  9. Ответ3
  10. Ответ4
  11. Ответ5
  12. Ответ6

ОТВЕТЫ каждого вопроса - это отдельный класс (a1 для первого вопроса, a2 для второго).

Вопрос - как мне тогда использовать класс типа "myclass" с последующим запросом по Index, если я ЗАРАНЕЕ не знаю, сколько в каждом вопросе ответов и какого они вида?

При этом их количество может в сумме быть - 500-1000 вопросов с 20-30 вариантами в КАЖДОМ вопросе - не будет ли запрос на индекс выполняться ДОЛГО?
7. DelphinPRO - 08 Марта, 2013 - 14:45:13 - перейти к сообщению
LShark, вопрос на засыпку - а для чего конкретно используются такие классы? Явно не для оформления, ведь вы хотите задать им единый стиль.
8. LShark - 08 Марта, 2013 - 18:08:16 - перейти к сообщению
По ним отслеживается выбранное/нажатое/отмененное и прочее.

Именно из-за этого я не могу придать им стандартный класс. Оформление каждого вопроса может отличаться.

И есть проблема, что загружается сразу ВСЯ партия вопросов (а не подгружается каждый вопрос отдельно).

 

Powered by ExBB FM 1.0 RC1