Правильная установка суффикса CSS-класса модуля

  • 28 Ответов
  • 11267 Просмотров

0 Пользователей и 1 Гость просматривают эту тему.

*

staticway

  • Осваиваюсь на форуме
  • ***
  • 174
  • 0
  • Мыслю простенько и со вкусом
У меня версия 1.7, шаблон Themza_17_04, делаю верхнее меню, в подключаемом файле CSS за дизайн меню отвечает элемент #topnav и все внутрь вложенные элементы, хочу прикрутить свой дизайн через подключение через суффикс CSS-класса модуля, в админке прописал -topmenu, затем скопировал всё описание класса #topnav и добавил к нему -topmenu, получилось #topnav-topmenu, но так ничего и не получилось. Новое описание класса имеет вид

#topnav-topmenu ul li li { width:auto; height: 35px; }

Вопрос, почему не работает, или к каждому вложенному элементу-тегу надо дописывать -topmenu?

*

Shustry

  • Moderator
  • *****
  • 6426
  • 733
  • Рисую дизайны
Ссылку на сайт выложите.
Бесплатно консультирую по дизайну и вёрстке (только в личку сердечно прошу не стучать). Платно делаю дизайн, вёрстку и темплейты для Joomla. Работаю только за деньги. За большие. И долго. Но качественно.
---------------------------------------------------------
xmpp:joomla@conference.jabber.ru - наша конфа!

*

Shustry

  • Moderator
  • *****
  • 6426
  • 733
  • Рисую дизайны
Поглядел. Нет суффикса.
Бесплатно консультирую по дизайну и вёрстке (только в личку сердечно прошу не стучать). Платно делаю дизайн, вёрстку и темплейты для Joomla. Работаю только за деньги. За большие. И долго. Но качественно.
---------------------------------------------------------
xmpp:joomla@conference.jabber.ru - наша конфа!

*

staticway

  • Осваиваюсь на форуме
  • ***
  • 174
  • 0
  • Мыслю простенько и со вкусом
А сама процедура какова? Прописал классы, в админке тоже прописал, не нужно ли прописывать где-то ещё параметры, например в xml-файле модуля? Вот что в админке

« Последнее редактирование: 22.09.2011, 21:35:02 от staticway »

*

fbr

  • Живу я здесь
  • ******
  • 1274
  • 140
меню генерируется Joomla и выводится с классом .moduletable
вот к нему суффикс и дописывается

поэтому стили нужно прописывать для .moduletable-topmenu{.....}

*

staticway

  • Осваиваюсь на форуме
  • ***
  • 174
  • 0
  • Мыслю простенько и со вкусом
меню генерируется Joomla и выводится с классом .moduletable
вот к нему суффикс и дописывается

поэтому стили нужно прописывать для .moduletable-topmenu{.....}

не пойму, изначально имеется

#topnav ul li a{.....

а в итоге вместо этого должно быть, так?

.moduletable-topmenu ul li a{.....}

или так

.moduletable-topmenu#topnav ul li a{.....
« Последнее редактирование: 22.09.2011, 22:54:19 от staticway »

*

staticway

  • Осваиваюсь на форуме
  • ***
  • 174
  • 0
  • Мыслю простенько и со вкусом
Ну неужели элементарных вещей никто не знает, гуру где Вы, ни один способ не работает, что делать?

*

fbr

  • Живу я здесь
  • ******
  • 1274
  • 140
да не так...

ты вставляешь свой блок для меню <div id="topnav">
Joomla генерирует свой блок <div class="moduletable"> и вставляет в твой
если указан суффикс, то вставляется <div class="moduletable-суффикс">


Код
<div id="topnav">
   <div class="moduletable-topmenu">

        твое меню

   </div>
</div>

Поэтому CSS прописывается: #topnav .moduletable-topmenu ul li a{ ...}

потому что не известно, что у тебя там в #topnav наворочано..
есть такая штука - специфичность...
но это отдельная долгая и безумно печальная тема :)
« Последнее редактирование: 23.09.2011, 03:14:39 от fbr »

*

staticway

  • Осваиваюсь на форуме
  • ***
  • 174
  • 0
  • Мыслю простенько и со вкусом
да не так...

ты вставляешь свой блок для меню <div id="topnav">
Joomla генерирует свой блок <div class="moduletable"> и вставляет в твой
если указан суффикс, то вставляется <div class="moduletable-суффикс">


Код
<div id="topnav">
   <div class="moduletable-topmenu">

        твое меню

   </div>
</div>

Поэтому CSS прописывается: #topnav .moduletable-topmenu ul li a{ ...}

потому что не известно, что у тебя там в #topnav наворочано..
есть такая штука - специфичность...
но это отдельная долгая и безумно печальная тема :)


Отличная логика, именно к такому выводу пришел ещё вчера и попробовал такую же конструкцию

#topnav .moduletable-topmenu ul li a {.......}

Но к сожелению это не работает, сами стили не подхватываются, смотрю через FireBug, да у меню которое в левой колонке видны div class="moduletable", и некоторые имеют суффикс .moduletable_menu. А в моем случае, т.е. в верхнем меню все классы как были так и остаются #topnav и все свойства остаются прежними, такое впечатление, что сам шаблон не может. Хотя в в template.css вижу для главного меню

#leftcolumn div.moduletable_menu{
а в админке для этого же меню в суффиксе стоит _menu

и это работает.

*

fbr

  • Живу я здесь
  • ******
  • 1274
  • 140
открой просмотр кода страницы и посмотри как у тебя меню выводится

если class="moduletable_menu" - значит ты свой суффикс куда-то не туда в админке прикрутил

если class="moduletable-topmenu" - значит  в ccs что-то не там или не так прописал

чудес не бывает

*

AlexSF

  • Завсегдатай
  • *****
  • 678
  • 68
  • В споре истина рождается
и ещё маленькая деталь - суффиксы обычно пропиываются через подчёркивание( _ ), а не через дефис ( - )
 
Цитировать
не внимательно читали даже свои посты

#leftcolumn div.moduletable_menu{
а в админке для этого же меню в суффиксе стоит _menu

и это работает.

Соответственно , писать нужно было так _topmenu =       #topnav .moduletable_topmenu ul li a{ ...}
Задаёте вопрос - не забудьте приложить ссылку на проблемный сайт
При проблеме с CSS рекомендую использовать Mozilla Firefox и её плагин FireBug
И по максимуму изучите, или поставьте в закладки - http://htmlbook.ru/css
Notepad++ поможет почти в любом деле

*

staticway

  • Осваиваюсь на форуме
  • ***
  • 174
  • 0
  • Мыслю простенько и со вкусом
и ещё маленькая деталь - суффиксы обычно пропиываются через подчёркивание( _ ), а не через дефис ( - )
 
Соответственно , писать нужно было так _topmenu =       #topnav .moduletable_topmenu ul li a{ ...}
Да, почитав несколько тем, думал, что именно в этом баг, попробовал, - плодов не принесло, не работает

Цитировать
открой просмотр кода страницы и посмотри как у тебя меню выводится

если class="moduletable_menu" - значит ты свой суффикс куда-то не туда в админке прикрутил

если class="moduletable-topmenu" - значит  в ccs что-то не там или не так прописал

Таких классов в исходнике вообще нет, все классы остаются старыми, и суффикс в упор не хочет прикручиваться, вот что вижу в исходниках верхнего меню

<div id="topnav">
<ul class="menu">
<li class="item-112 current active">

и чудеса по всей вероятности бывают.


*

fbr

  • Живу я здесь
  • ******
  • 1274
  • 140
зайди в templates/system/ там должен быть файл modules.php, а в нем

Код
 <div class="moduletable<?php echo htmlspecialchars($params->get('moduleclass_sfx')); ?>">

это то, что должно выводить <div class="moduletable"> + суффикс, если прописан

зайди в свой шаблон и в папке HTML найди такой же modules.php

сравни код файлов, может разработчик шаблона его переписал?

чудес не бывает стопудово
« Последнее редактирование: 24.09.2011, 01:23:23 от fbr »

*

staticway

  • Осваиваюсь на форуме
  • ***
  • 174
  • 0
  • Мыслю простенько и со вкусом
зайди в templates/system/ там должен быть файл modules.php, а в нем

Код
 <div class="moduletable<?php echo htmlspecialchars($params->get('moduleclass_sfx')); ?>">

это то, что должно выводить <div class="moduletable"> + суффикс, если прописан

зайди в свой шаблон и в папке HTML найди такой же modules.php

сравни код файлов, может разработчик шаблона его переписал?

чудес не бывает стопудово

Вот код tempates/system/html/modules.php 63 строка

<div class="moduletable<?php echo htmlspecialchars($params->get('moduleclass_sfx')); ?>">

и вот код в шаблоне templates/themza_j17_04/html/modules.php 22 строка

<div class="moduletable<?php echo htmlspecialchars($params->get('moduleclass_sfx')); ?>">

« Последнее редактирование: 25.09.2011, 12:57:46 от Rumb16 »

*

staticway

  • Осваиваюсь на форуме
  • ***
  • 174
  • 0
  • Мыслю простенько и со вкусом
Ну всё идеи кончились? Здесь почему-то всё вращается вокруг class="moduletable а если меню имеет другой класс, тогда как?

*

AlexSF

  • Завсегдатай
  • *****
  • 678
  • 68
  • В споре истина рождается
тогда ссылку на сайт и скриншот с отметкой места где пытаетесь править

и полистать пару страниц форума , авось и найдется решение. например тут http://joomlaforum.ru/index.php/topic,176155.0.html
« Последнее редактирование: 26.09.2011, 23:58:19 от AlexSF »
Задаёте вопрос - не забудьте приложить ссылку на проблемный сайт
При проблеме с CSS рекомендую использовать Mozilla Firefox и её плагин FireBug
И по максимуму изучите, или поставьте в закладки - http://htmlbook.ru/css
Notepad++ поможет почти в любом деле

*

midav

  • Живу я здесь
  • ******
  • 927
  • 113
Цитировать
Ну всё идеи кончились? Здесь почему-то всё вращается вокруг class="moduletable а если меню имеет другой класс
Какие идеи ? Это что , гадание на кофейной гуще ?
Просто нужно через исходный код посмотреть какие классы присваиваются нужному модулю . И потом настраивать стили , так как Вам необходимо , для достижения нужного результата .
Научитесь пользоваться FireBug , тогда гадать не придется .
Ответы на вопросы по CSS . Откройте для себя Firebug

*

midav

  • Живу я здесь
  • ******
  • 927
  • 113
Цитировать
и ещё маленькая деталь - суффиксы обычно пропиываются через подчёркивание( _ ), а не через дефис ( - )
Хм... а какая разница ? Кому как удобнее , тот так и прописывает .
Можно вообще через пробел прописывать . Тогда у модуля будет два класса .
Ответы на вопросы по CSS . Откройте для себя Firebug

*

Nikitos

  • Новичок
  • *
  • 3
  • 0
В template.css есть следующие записи для меню:
Код: css
a.NAVI_mymenu    {
  color:#663;
  display: block;
  text-decoration: none;
  font-size: 14px;
  font-family: Arial, Helvetica, sans-serif;
  font-weight: bold;
  background-image: url(images/bg_btt.jpg);
  padding-left: 15px;
  padding-top: 7px;
  padding-bottom: 7px;
  padding-right: 5px;
  background-repeat: no-repeat;
}
a.NAVI_mymenu:hover    {
  color:#F60;
  text-decoration: none;
}
В суффиксе CSS-класса соответственно прописано "_mymenu".
Код элемента выдает следующее:
<!-- The class on the root UL tag was changed to match the Blueprint nav style -->
<ul class=​"joomla-nav">​
<li id=​"current" class=​"selected item435">​
<a href=​"/​">​123​</a>​

В чем ошибка?
Заранее благодарен!
« Последнее редактирование: 09.02.2012, 03:05:29 от Nikitos »

*

Shustry

  • Moderator
  • *****
  • 6426
  • 733
  • Рисую дизайны
Кириллицей чтоли классы-айдишники прописаны? О_о
Бесплатно консультирую по дизайну и вёрстке (только в личку сердечно прошу не стучать). Платно делаю дизайн, вёрстку и темплейты для Joomla. Работаю только за деньги. За большие. И долго. Но качественно.
---------------------------------------------------------
xmpp:joomla@conference.jabber.ru - наша конфа!

*

Nikitos

  • Новичок
  • *
  • 3
  • 0
В коде символы выскакивают почему-то...
Выглядит так:
<!-- The class on the root UL tag was changed to match the Blueprint nav style -->
<ul class=​"joomla-nav">​
<li id=​"current" class=​"selected item435">
<a href=​"/​">​123​</a>

*

Nikitos

  • Новичок
  • *
  • 3
  • 0
Помогите! 2 дня разбираюсь - спать не могу!=)

*

vasiliy999

  • Новичок
  • *
  • 3
  • 0
День добрый. У меня была похожая проблема. Я добавлял _суффикс к модулю, потом смотрел через FireBug. Класс принимал имя class="module m_suffix", в .css при вставки данного имени также ничего не происходило. Потом дошло, что имя класса при добавление суффикса формируется с пробелом. В этой же теме нашел где лежит файл modules.php, отыскал строку отвечавшую за формирование имени (там действительно к module прибавлялась m через пробел. Заменил пробел на нижнее подчеркивание и все решилось. В .css соответственно тоже выглядело как module_m_suffix.

*

Fedor Vlasenko

  • Профи
  • ********
  • 3800
  • 698
  • Все начинается с Value
Заменил пробел на нижнее подчеркивание и все решилось. В .css соответственно тоже выглядело как module_m_suffix.
А зачем. Через пробел даже лучше так два класса получается и использовать надо было так
.module{}
.m_suffix{}

*

vasiliy999

  • Новичок
  • *
  • 3
  • 0
А зачем. Через пробел даже лучше так два класса получается и использовать надо было так
.module{}
.m_suffix{}
Так ни в какую не получалось. Хотя за совет спасибо, попробую этим способом более внимательно, может это я косячил.

*

GTitan

  • Осваиваюсь на форуме
  • ***
  • 35
  • 0
Ребята окажите помощь.
Суфикс класса модуля не прилипает, остается один пробел.
А при просмотре кода, после ликвидации пробела, становиться все норм.
Joomla 3.3.6

*

AlekVolsk

  • Профи
  • ********
  • 6301
  • 336
Ребята окажите помощь.
Суфикс класса модуля не прилипает, остается один пробел.
А при просмотре кода, после ликвидации пробела, становиться все норм.
Joomla 3.3.6
1) не в том разделе - вам сюда, создайте топик там.
2) смотря что за модуль и как реализован вывод, надо смотреть код шаблона модуля

*

GTitan

  • Осваиваюсь на форуме
  • ***
  • 35
  • 0
2) смотря что за модуль и как реализован вывод, надо смотреть код шаблона модуля
Спасибо, создал.
Модули штатные, вывода новостей и HTML, на обеих одинаковая проблема.