Модераторы: Illuminaty
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Выделение текущего пункта меню, отмечать заданным стилем, текущий линк. 
:(
    Опции темы
initmax
Дата 18.8.2009, 08:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 165
Регистрация: 24.7.2009

Репутация: нет
Всего: нет



<li><a href="http://www.dynamicdrive.com/">Home</a></li>
<li id=”area”><a href="http://www.dynamicdrive.com/style/">CSS Codes</a></li>
<li><a href="http://www.dynamicdrive.com/forums/">Forums</a></li>
<li><a href="http://tools.dynamicdrive.com">Webmaster Tools</a></li>

Есть такая задача, отмечать определённым стилем, текущий пункт меню позиционирования пользователя.
Ранее это делал так:
1) При запросе требуемой страницы вычислял номер ссылки, например "Webmaster Tools"
2) При генерации меню ссылок в заданную позицию вставлял id=”area”
как это можно организовать более корректно?

PM MAIL   Вверх
bars80080
Дата 18.8.2009, 09:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 50
Всего: 315



Цитата(initmax @  18.8.2009,  08:38 Найти цитируемый пост)
как это можно организовать более корректно?

это и есть наиболее корректный вариант
PM MAIL WWW   Вверх
Guiness
Дата 18.8.2009, 09:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 37
Регистрация: 18.8.2009

Репутация: нет
Всего: нет



Могу предложить такой вариант:
на каждой странице елементу body присваиваете уникальный id (напр. 1 стр. id="str1", 2 стр. id="str2", 3 стр. id="str3").
Тоже самое делаете и с с каждым пунктом меню (напр. 1 п. id="first", 2 п. id="second", 3 п. id="third").
Пишите стиль где перечисляете через запятую пары id (#idстраницы #idпункта_меню):
Код

#str1 #first, #str2 #second, #str3 #third {
/*стили для выделения пункта*/
}


Это сообщение отредактировал(а) Guiness - 18.8.2009, 09:28
PM MAIL   Вверх
bars80080
Дата 18.8.2009, 09:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 50
Всего: 315



Guiness, а чем принципиально отличается этот вариант от уже озвученного? распознавать что за ссылка и вставлять идентификатор всё равно придётся
PM MAIL WWW   Вверх
Guiness
Дата 18.8.2009, 09:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 37
Регистрация: 18.8.2009

Репутация: нет
Всего: нет



Тем, что в первом случае работает скрипт, а во втором нет, т.к. это пишется в html ручками - меньше затрат на формирование страницы.
Естественно есть случаи, когда этот способ не оптимальный, например если страницы и меню для них генерируются с 0.
Но если есть постоянный набор страниц - вариант неплохой.
PM MAIL   Вверх
bars80080
Дата 18.8.2009, 09:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 50
Всего: 315



что в таком случае мешает таким же способом "ручками" расписать идентификаторы в меню?
PM MAIL WWW   Вверх
skyboy
Дата 18.8.2009, 09:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 6
Всего: 260



мне кажется, лучше тут использовать классы. но это так, придирка к семантике.
PM MAIL   Вверх
initmax
Дата 18.8.2009, 09:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 165
Регистрация: 24.7.2009

Репутация: нет
Всего: нет



Да дело как говорится в другом, а именно в нагрузке на трафик, допустим меню состоит из 10 пунктов, и при выборе каждого из пунктиков оно должно пересылаться по новой, с проинициализированным id. Поскольку все стремятся к разгрузке трафика и сервера, переходят на DIV вёрстку. Очевидно есть вариант помечать выбранный пункт меню "на месте" без повторной пересылки трафика и нагрузки на сервер.
PM MAIL   Вверх
Guiness
Дата 18.8.2009, 10:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 37
Регистрация: 18.8.2009

Репутация: нет
Всего: нет



Я перемудрил smile  немного с кодом.
Имхо выгоднее делать с idшникам чем с js, т.к. траффик увеличится не на много, а js есть ресурсов дай боже как, особенно при работе с домом.
PM MAIL   Вверх
bars80080
Дата 18.8.2009, 14:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 50
Всего: 315



Цитата(initmax @  18.8.2009,  09:54 Найти цитируемый пост)
Очевидно есть вариант помечать выбранный пункт меню "на месте" без повторной пересылки трафика и нагрузки на сервер. 

т.е. ты хочешь сразу перегонять весь объём страниц? это называется закладки на javascript
но по-моему полный бред. понятное дело когда оно используется в форме с несколкьими закладочками, а общий объём контента 10-20 кБ.
 совсем другое когда десять страниц, каждая по 100-200 кБ, получается при загрузке искомой страницы всё равно придётся грузить 1-2 МБ.

если же говорится о дозагрузке контента без перезагрузки страницы - дык, это же аякс. тогда какая разница как меню нарисовано? оно просто будет перерисовываться средствами javascript
PM MAIL WWW   Вверх
Guiness
Дата 18.8.2009, 22:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 37
Регистрация: 18.8.2009

Репутация: нет
Всего: нет



Мой способ хорош тем, что позволяет обойтись без js, при этом меню на каждой странице абсолютно одинаково, что позволяет его вставлять на сервере без каких-либо изменений, да и вообще выглядит помоему довольно элегантно, а затраты траффика мизерные, даже может меньше чем на загрузку js-скрипта для вставки idшников.
PM MAIL   Вверх
bars80080
Дата 18.8.2009, 23:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 50
Всего: 315



Guiness, при всём уважении. какие принципиальные отличия твоего способа от того что автор написал в первом посте?

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

но самое главное: непонятно, чем твой метод, отличается от метода предложенного автором, кроме явного минуса в реализации
PM MAIL WWW   Вверх
Guiness
Дата 19.8.2009, 09:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 37
Регистрация: 18.8.2009

Репутация: нет
Всего: нет



Автор попросил альтернативный вариант - я предложил.
Главное отличие в том, что отсутствует код js поэтому страница выполняется значительно быстрее и нагрузка на траффик не больше, чем с js + если у браузера (ie) отключена обработка скриптов, то всеравно будет работать.
Цитата

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

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

P.S. а высокое сцепление кода - понятие из ООП и с CSS его соотнести очень сложно.
PM MAIL   Вверх
bars80080
Дата 19.8.2009, 09:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 50
Всего: 315



Guiness, четвёртый раз говорю, что твой вариант ни капли не альтернативный
также перечитай посты автора, он нигде не упоминает js. у него всё реализовано на css, плюс динамическая генерация страниц сервером


Цитата(Guiness @  19.8.2009,  09:18 Найти цитируемый пост)
Не вижу как вторжение в структуру промежуточных тэгом может запороть все стили, у меня используется 2 idшника, если их имена не менять все будет работать по прежнему в любом случае.
Нагромождения стилей тоже не вижу, т.к. используется только один стиль.

в реальной ситуации на странице не два idшника и не один стиль, а десятки, и целая колбаса вложенных структур


Цитата(Guiness @  19.8.2009,  09:18 Найти цитируемый пост)
а высокое сцепление кода - понятие из ООП и с CSS его соотнести очень сложно. 

в данном случае, это понятие очень корректно
PM MAIL WWW   Вверх
Guiness
Дата 19.8.2009, 09:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 37
Регистрация: 18.8.2009

Репутация: нет
Всего: нет



Цитата
он нигде не упоминает js

Согласен - похоже я сам это придумал. smile 
 Предлагаю закончить спор ввиду его непродуктивности.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Вёрстка веб-сайтов | Следующая тема »


 




[ Время генерации скрипта: 0.1256 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.