По необходимости пришлось столкнуться с MODx, которого я раньше совсем-совсем не видел. Самую чуточку – сменить шаблоны на одном сайте. Первые впечатления – ужас-ужас. И эти люди запрещают мне ковыряться в носу говорят, что Друпал сложен для изучения! Я как открыл страницу управления элементами, да как увидел, что там в шаблоны могут вставляться и какие-то «Параметры», и «Чанки», и «Сниппеты», а потом еще и прочитал подсказку наверху, что, дескать, «Чанки – это куски (X)HTML-кода, используемые в неизменном виде в нескольких местах. Чтобы иметь возможность централизованно редактировать повторяющийся код, вынесите его в чанк. Чанки не могут прямо содержать исполняемый код, однако могут включать в себя вызовы сниппетов и/или параметров (TV), обеспечивающих динамическую логику.» (первый вопрос – а какого, собственно, нужны вообще эти чанки в качестве прослойки между сниппетами и шаблоном?), то совсем в осадок выпал… И желание изучать этот MODx пропало сразу… В общем, скорее всего, знатному MODx’еру будет смешно читать такое брюзжание, но факт есть факт – в свое время первый взгляд на Друпал не вызвал у меня такого непонимания и неприятия. А значит, я сделал правильный выбор.
Posts Tagged ‘www’
Drupal наше все!
Posted by Skylord on сентября 20, 2011 | No Comments »
Filed under Посты | Tags: drupal, www, верстка, сайты
Причуды прогресса
Posted by Skylord on июня 20, 2010 | No Comments »
В HTML-элементе LI есть простое как два пальца свойство «value», которое просто и ненавязчиво позволяет установить номер элемента в нумерованном списке. Работает с любыми типами нумераций (например, с римскими числами тоже), ненапряжно устанавливается через JavaScript ( <элемент>.value=»10″ без каких-либо ухищрений), не создавая большого overhead’а и не сильно загрязняя код позволяет легко оперировать нумерацией, так как следующий элемент после того, которому мы установили value продолжает нумерацию от него (т.е. если в value поставили «5″, то у следующего LI даже без установленного value сразу будет номер «6″ и не важно, что было у предыдущих)… Одним словом – хорошее и полезное свойство, не вызывающее никаких спорных вопросов и, с моей точки зрения, не создающее проблем с точки зрения семантики.
Однако де, W3C решил несколько иначе и с HTML 4, а также во всех XHTML это свойство осуждается и валидный код можно получить только установив DOCTYPE в Transitional. Казалось бы – ну по любому, умные дяди решили так не зря и нам предлагают что-то более удобное, простое или хотя бы – более функциональное. Однако же, нам предлагают концепцию «CSS Counters«, которая, если в тезисах, состоит в следующем:
- Для хранения нумераций используются специальные переменные – их нужно обнулять перед использованием, одновременно декларируя, например:
ol {
counter-reset: section; /* Set the section counter to 0 */
list-style-type: none;
}
- Значения этих переменных локальны для каждого списка (!!!).
- Изменять значения этих переменных можно опять же либо через CSS-команду counter-reset, указывая конкретное значение, либо через counter-increment, чтобы увеличить его (например, на каждом пункте списка):
li {
counter-increment: section; /* Increments only this instance of the section counter */
} - Вставка непосредственно номеров элементов осуществляется через генерацию контента процедурами counters() и counter() в свойстве content в псевдоклассах :before и :after, например:
li:before {
content: counters(section, ".") " "; /* Adds the value of all instances of the section counter separated by a ".". */
}
Я как со всем этим ознакомился - даже пробовать не стал и тут же, плюнув, поставил Transitional. Потому что даже в минимальном варианте при настроенных соответствующим образом стилях мне нужно будет писать
<li style="counter-reset: my-counter 5;">
вместо
<li value="5">
При этом простое и семантичное свойство заменяется набором из костылей - каких-то процедур, вставкой контента, переменных, - которые добавили в CSS, предназначенный изначально тупо для оформления! И черт с ними с несовместимостями и т.п. - мне вполне достаточно, что созданный в :after и :before контент пользователь не сможет выделить и скопировать. И дело не в недостатках before/after - если на них делать то, для чего они и предназначены (например, уголки круглые навешивать на блоки), то таких проблем и не возникает. А вот если пытаться чесать ухо рукой пропущенной под коленкой...
В общем, я для себя приобрел отличный пример того, как не надо перебарщивать в попытках создать обще-большое-красивое-универсальное-замечательное решение для замены всего-на-свете. Иногда лучше оставить в покое имеющиеся мелочи, которые нормально работают и успешно справляются со своей задачей.
Filed under Посты | Tags: css, www, верстка
Пустая картинка в data:uri
Posted by Skylord on сентября 24, 2009 | 1 Comment »
Больше девать некуда, поэтому пусть тут полежит – пригодится когда-нибудь. 1-пиксельный прозрачный png с минимизированной палитрой и удаленной мета-информацией: «data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABAQMAAAAl21bKAAAABGdBTUEAAK/INwWK6QAAAANQTFRF////p8QbyAAAAAF0Uk5TAEDm2GYAAAAKSURBVAgdY2AAAAACAAHPyDXlAAAAAElFTkSuQmCC»
Filed under Посты | Tags: css, www
Архивы
- Октябрь 2011 (1)
- Сентябрь 2011 (1)
- Август 2011 (1)
- Июнь 2011 (3)
- Май 2011 (1)
- Апрель 2011 (1)
- Март 2011 (1)
- Ноябрь 2010 (2)
- Октябрь 2010 (2)
- Сентябрь 2010 (5)
- Июль 2010 (3)
- Июнь 2010 (2)
- Май 2010 (3)
- Апрель 2010 (2)
- Март 2010 (6)
- Февраль 2010 (5)
- Январь 2010 (7)
- Декабрь 2009 (5)
- Ноябрь 2009 (4)
- Октябрь 2009 (3)
- Сентябрь 2009 (5)
- Июль 2009 (6)
- Июнь 2009 (1)
- Май 2009 (1)