Cuntmann 1 Жалоба Опубликовано: February 23, 2014 Заглянув в хтмл, случайно обнаружил множественные повторения одних и тех же id у различных элементов разметки (см. скрин): данный атрибут обязан быть уникальным для каждого элемента в пределах документа, даже если элемент вставляется динамически (например, при помощи jquery). формируется эта часть разметки тепмлейтом right_special.tpl (строки 6,7,8). я еще не разобрался со Сматри, т.к. не приходилось им раньше пользоваться, но разберусь. пока что, при попытке задать динамически эти id<div id="item_{$smarty.section.i.index}"><a href="{$special_items2[i].href}">{$special_items2[i].path}</a><br><div id="item_{$smarty.section.i.index}_img">, перекосило весь блок: хотя, разметка при этом приняла нужный вид: мне сдается, что тут не обошлось без таблицы стилей. предлагаю исправить эти и возможные такие же косяки в других местах скрипта совместными усилиями. я еще плохо ориентируюсь где тут что. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Дмитрий Кондин 690 Жалоба Опубликовано: February 24, 2014 Вы поменяли ID, но к нему привязан CSS.Как вариант можете поменять id="item" на class="item", но при этом вам нужно будет исправлять CSS.В будущих версиях шаблонов исправим это. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Cuntmann 1 Жалоба Опубликовано: February 24, 2014 я об этом и писал. менять айди на класс невыгодно, если есть на уме манипуляции содержимым. либо придется после загрузки страницы насильно раздавать эти айди нужным элементам, но зачем это делать, когда все формируется сервер-сайд и проще сразу установить все айди еще в пхп... неужели я один заметил эту фигню? ведь это элементарно по сравнению со сложностью работы движка Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
TopRaN 235 Жалоба Опубликовано: February 24, 2014 Молодой человек вы в корне не правы. Вот как раз class гораздо актуалнее id т.к через можно задать не только стили , но и делать ссылки определенные обработки. А вот class тут гораздо все интереснее. НапримерЕсли мы знаем что у нас будут 3 разных блока по ширине и высоте и цвету тогда мы будем писать 3 класса для каждого по отдельности. А вот если 3 одинаковых , но с разными стилями тут прощеbloki {Тут код}blok1{Код}Blok {Код}То и прописываем<div class="bloki"></div><div class="bloki blok1"></div><div class="bloki blok"></div>По поводу. Item_img опять же 2 способа в первом отдельный id как в нашем случаи во в тором через класс , но .item img ", перекосило весь блок:"потому что вы сломали стили. машина не понимает какой стиль ей нужен и выводит содержимое полностьюдля того что бы картинки выводились одинаково равномерно используются параметрыmax-width: 100%;heigth: 100px; /*параметр 100 если вы хотите зафиксировать ширину */ и аналогично наоборотwidth: 100px;max-heigth: 100%; /*параметр 100 если вы хотите зафиксировать высоту */ я об этом и писал. менять айди на класс невыгодно, если есть на уме манипуляции содержимым. либо придется после загрузки страницы насильно раздавать эти айди нужным элементам, но зачем это делать, когда все формируется сервер-сайд и проще сразу установить все айди еще в пхп... неужели я один заметил эту фигню? ведь это элементарно по сравнению со сложностью работы движка наверное в вашем случае было бы правильное писать если вы используете jquery то нужно выводить через определенный параметр учета (селекторы) .Выбор элементов по Id либо ClassName аналогично используемому в CSS$('item + img'); // выбор всех img элементов перед которыми идут item элементы есть еще один способ Связываем данные с элементом, атрибут data, метод jQuery data в вашем случае$(document).ready(function(){ $('#item img').each(function(i,el){ console.log("Проверяем "+parseInt(i + 1)+" равен "+$(el).data('title_item')); }); }); <div id="item" data-title_item="{$smarty.section.i.index}"> 1.мне не нонятно что вы имели ввиду когда написали,что разметка приняла нужный вид?2 для чего вы пытаетесь создать для каждой картинки уникальный блок?3. Может Вы мне напишите не большое пояснение как правильно формировать стили. ( просто в инете этого нет , а совет не помешал бы) Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Cuntmann 1 Жалоба Опубликовано: February 24, 2014 TopRaN, По вопросу 1 могу пояснить, что наличие БОЛЕЕ ОДНОГО одинакового значения для атрибута id в пределах текущего документа противоречит определению данного атрибута и одновременно здравому смыслу. если для вас это является новостью, то рекомендую почитать вот тут http://www.w3schools.com/tags/att_global_id.asp раздел Definition and Usage. Касательно вашего вопроса 2, могу сказать, что я ничего не пытался там "создавать". я увидел ошибки разметки (см. ответ на вопрос 1) и попытался их исправить. для чего там задаются идентификаторы каждой картинке - это вопрос не ко мне, а к тому, кто сочинял код. я совершенно не против применения других атрибутов, о которых вы говорите, но, если там уже есть id, то они должны быть заданы как положено. Я не считаю себя в праве давать вам советы вселенского масштаба и вселенской же глупости, но могу дать ссылку на хороший ресурс (http://htmlbook.ru/), где вы наверняка найдете не большое и не малое пояснения. Вы пишите, что я "сломал стили", задав правильным образом идентификаторы. тут стоит лишь передать привет тому, кто додумался прописывать стили не по классу, а по айди, не обратив внимания на то, что вероятно множественное их дублирование (см. ответ на вопрос 1) и не устранил это. Рейзиг - это очень хорошо, но есть еще и обычный javascript, так что не стоит спорить об очевидном (см ответ на вопрос 1). Думаю, наш с вами спор, если он невзначай возник, никому не нужен, а многим, вдобавок, еще и малопонятен. моя цель была - обратить внимание на проблему, а не заниматься тут ликбезом или чем-то мериться с другими, заведомо более продвинутыми во всех сферах людьми. п.с. отдельное вам спасибо за по-отечески теплое обращение "молодой человек", ценю Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
XTRO 154 Жалоба Опубликовано: February 24, 2014 обратить внимание на проблемуразве это проблема? недоразумениевы же наверняка будете использовать свой макет, а в следующих версиях будет исправлено.а то перейдёт в холивар.http://www.w3.org/TR/html4/struct/global.html#adef-id Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
TopRaN 235 Жалоба Опубликовано: February 24, 2014 1. Мы не делаем выборку через Яву в стандартном шаблоне поэтому используем ID 2. нужно применять id: выделение уникального блока страницы, для якорей, для JS и др. 3. отрисовка ID идет быстрее чем class (основы HTML),приоритет у ID выше чем у класса, браузеры быстрее их находят т.к. они уникальны. (поэтому это не считается ошибкой), не рекомендуется использовать, но и НЕ СЧИТАЕТСЯ ОШИБКОЙ. Поэтому это стандартный шаблон. Ведь ни кто не запрещает написать Вам так как хочется. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
abushyk 694 Жалоба Опубликовано: February 27, 2014 Про уникальность ид совершенно верное замечание. Просто иногда внутренний функционал меняется, но приходится поддерживать старую разметку и наобород. Из-за этого могут возникать такие накладки. Ничего страшного в них нет, кроме "неканоничности", но в любом случае мы будем избавляться от таких "раритетов".Спасибо, что обращаете внимание на такие вещи. Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах