Jump to content

SelenIT

Expert
  • Posts

    4,327
  • Joined

  • Last visited

  • Days Won

    140

Everything posted by SelenIT

  1. Флексы, к сожалению, не умеют объединять элементы из разных строк:(. Так что тут или делать на гридах с фолбэком, например, на флоаты (возможно, даже пожертвовав симметрией и центральным положением высокой картинки в старых браузерах), или сразу сдаться и подключить скрипт типа Masonry/Isotope. Можно, конечно, выкрутиться, нагородив кучу вложенных контейнеров, но поддерживать такое, если потребуется поменять порядок отображения картинок, будет ох как невесело. Кстати, в чем здесь должна состоять адаптивность? Картинки должны перестраиваться в меньшее кол-во колонок при сужении окна?
  2. Поставьте oveflow:hidden обрезке. И уберите все пиксельные margin-ы отовсюду и width у .povorot, а взамен отцентрируйте его флексбоксами (display:flex; justify-content:center для обрезки) — так он будет центрироваться даже при меньшей ширине окна, выступающие углы обрежутся — и добавьте обрезке же padding сверху и снизу по 60em, чтобы дать место для верхнего и нижнего углов (ведь transform не меняет геометрических размеров блока, с точки зрения раскладки блок формально занимает то же место, какое занимал бы без трансформации, поэтому его родителя надо расширить явно). А почему ограничение именно для Firefox? Ведь трансформации все браузеры, даже дремучий IE10, давно понимают без префикса. Достаточно поменять -moz-transform на обычный transform, и страница станет кроссбраузерной...
  3. Фоны за границу блока выступать не могут. Но туда могут выступать border-image тени (box-shadow, text-shadow, filter:drop-shadow) псевдоэлементы ::before/::after Ну и расширить границу блока отрицательным margin-ом тоже можно, конечно
  4. Даже не столько в разных браузерах, сколько в разных шрифтах. С поправкой на особенности отрисовки/сглаживания в той или иной платформе.
  5. У меня и на сайте по ссылке меню появляется достаточно резко. Подозреваю, что визуальный «рывок» в примере связан с появлением/исчезновением горизонтального скроллинга — в неприжатом виде меню не помещается в экран и распирает страницу, т.к. к 100% ширины body приплюсовались 5px внутреннего отступа и 5px смещения самого меню, да еще 8px внешнего отступа самого body (надо убирать лишние отступы и/или переходить на box-sizing:border-box).
  6. Универсально убрать это расстояние, к сожалению, нельзя. Это внутреннее расстояние резервируется для выносных элементов букв (всевозможные хвостики-завитушки у f, например) и диакритических знаков (немецкие «умляуты», французские «аксаны» и прочие родственники наших точек над Ё и «улыбки» над Й), а его точный размер зависит от конкретного шрифта и значения line-height. Для небольшого размера шрифта можно лишь «методом тыка» подобрать необходимую поправку с приемлемой точностью. Подробнее про это расстояние и откуда оно берется — в этой статье.
  7. Когда я впервые столкнулся с HTML, меня он привлек ощущением какой-то «волшебности»: пишешь вроде обычный текст, добавляешь к нему пару каких-то странных «заклинаний» — и текст тут же по волшебству превращается в заголовок, таблицу, «обрастает» картинками, связывается ссылками с информацией на другом конце земного — и не только! — шара, и т.д. Захотелось овладеть этой «магией» получше. Так и втянулся. А потом внезапно выяснилось, что за это еще и платят существенно больше, чем за мою специальность по диплому...
  8. Я вам больше скажу по секрету — сами редакторы этой спецификации далеко не всё в ней понимают :). Например, что в CSS2.1 не два контекста форматирования (блочный и строчный), а три (есть еще табличный), они поняли только на 14-й год (!) работы над ней — через год после того, как эта спецификация была «окончательно утверждена» . Так что нормально открывать в ней что-то новое снова и снова и спустя годы
  9. Так зачем делать выравнивание, которое смотрится криво и убого, а потом пытаться исправить его костылями? Когда можно изначально и надежно выровнять как надо?
  10. Я так понимаю, что по центру выравнивается весь контейнер формы, а в нем подписи выравниваются по его левому краю, а инпуты — по правому. Разве нет?
  11. Довольно странно использовать табличную разметку для данных, табличность которых под большим вопросом, и при этом отказываться от возможностей выравнивания, «автоматом» предоставляемых таблицами. Прямо по поговорке «взять билет и выйти из трамвая, назло кондуктору»:). Если уж всё равно менять display, то что мешало сделать 2 <tr>-ки, а на большом разрешении объединить их в одну строку через display:flex для неявного <tbody>, например? Но на мой взгляд, таблица тут вообще притянута за уши. И совершенно зря не используется полезный для доступности элемент <label>. Как вариант — обернуть каждый <input> вместе с подписью в <label> и задать этому <label> display:flex, а <input>-у — margin-left:auto. И он автоматически «прибьется» к правому краю контейнера. При этом клик по любому месту всей строки будет ставить курсор в поле (удобно для юзеров с тачпадом вместо мышки и т.п.).
  12. SelenIT

    Content model:

    По-простому — в элемент можно вкладывать всё, что можно вкладывать в его родителя. Например, если <a> лежит непосредственно внутри <div>, то в нее можно вкладывать другие дивы, абзацы, списки и т.п. (всё, что можно вкладывать в сам <div>). Но если <a> внутри <span>, то ничего этого нельзя (потому что в <span> этого нельзя) — можно только «Phrasing content» (голый текст и то, что в прошлой жизни называлось «строчными элементами»). Кроме <a>, такая же модель у <ins> и <del>. Помимо этого, у <a> еще своё дополнительное ограничение на интерактивные элементы (напр. кнопки, инпуты и саму <a>). Но это уже отдельная история:)
  13. Float сам по себе ужимается до ширины контента, inline-block в этом раскладе кажется лишним.
  14. Потому что картинка — строчный элемент, и выравнивается нижним краем по базовой линии текста (как будто это очень большая буква текста). Поскольку она выше букв, она «выталкивает» собой эту базовую линию вниз, а вместе с ней и текст. Чтобы это отключить, надо задать ей обтекание (float). А чтобы ограничить это обтекание текущим пунктом списка, надо добавить ему самому (чтобы он не цеплялся за предыдущие float-ы) и его псевдоэлементу ::after (чтобы картинка из него не вываливалась) сброс обтекания (clear). Примерно так.
  15. На MDN еще неплохая табличка с браузерной поддержкой на странице справки по каждому свойству или технологии, с детализацией, когда начало поддерживаться то или иное значение, формат и т.п. Но иногда и она отстает от жизни (ее тоже вручную обновляют люди, которые не успевают уследить за всем). В целом, can I use — можно сказать, отраслевой стандарт.
  16. IE4-8 включительно. Которые давно 1) составляют мизерные проценты, 2) работают на таком древнем железе, что лучше не грузить его никакими необязательными красивостями. Потому что та древняя технология не умеет в разные варианты одного font-family. Там было тупо 1 font-family — 1 файл. Было дело. Но опять же, очень давно, сама Apple давно не поддерживает те версии iOS и то железо, на котором с нее нельзя обновиться, да и не живут обычно столько даже эпловские девайсы:). Сейчас woff и woff2 достаточно каждому (с). Даже ttf уже не особо нужен.
  17. eot — очень древняя реализация веб-шрифтов (чуть ли не из IE4!). Они очень многого не умеют. В частности, не умеют объединять разные комбинации font-weight и font-style под общим font-family. И, ЕМНИП, поддерживали всего 4 варианта вообще (normal/italic/bold/bold italic). Сейчас eot не нужны. IE9+ понимают современный синтакис с woff-шрифтами, а ископаемому старью лучше довольствоваться системными фолбэками.
  18. Читайте 2.2 плюс модули. Лучше в редакторских черновиках.
  19. CSS2.2 — та же CSS2, но с исправленными ошибками, найденным после выхода CSS2.1 (напр. в нем не забыт табличный контекст форматирования). Некоторые ошибки еще в процессе исправления/уточнения. В какой-то момент заменит CSS2.1. CSS3 — неофициальное собирательное название для всего, что вышло после CSS2, независимо от уровня. Модули начинаются либо с 3 уровня (если дополняют то, что было в CSS2), либо с 1 уровня (если вводят что-то принципиально новое). Так что модули 4, 5 и т.д. уровней формально относятся к CSS3 (хотя это звучит дико, поэтому сейчас лучше говорить просто о "языке CSS", без цифр). "Версий" как таковых у CSS сейчас нет.
  20. О предыдущей версии вообще особо думать не надо, она сыграла свою историческую роль. Текущее состояние HTML как технологии - это редакторский черновик W3C (на сегодня HTML5.3, но эти цифры — условность) и живой стандарт WHATWG. От предыдущих версий нам есть смысл смотреть, пожалуй, разве что implementation report-ы (и то canIUse подробнее и полезнее).
  21. В принципе, можно-то и на инлайн-блоках: кроме упомянутого обнуления размера шрифта, можно сделать симметричные отриц. отступы по 2.5-3px с обеих сторон, можно вместо отриц. отступов использовать такой же отрицательный `letter-spacing` или `word-spacing`, можно честно убрать или «закомментарить» пробелы между тегами в разметке, можно не использовать закрывающие теги для `li` (они опциональны, и при их отсутствии тег закрывается автоматом прямо перед следующим открывающим), можно использовать для родителя кастомный шрифт, в котором у символа пробела нулевая ширина... Но практическая ценность этого на сегодня, имхо — разве что пройти задание «сделать без флексов». Скриптами можно всё, но для этой задачи скрипт — явно перебор
  22. Увы, никак (если только ширина не фиксирована и кол-во элементов в строке константа — тогда можно через :nth-child). А насколько критично сделать это именно на инлайн-блоках? Нельзя для 90% браузеров (включая IE11+, всякие UC Browser'ы и даже Оперу Мини) сделать через display:inline-flex; flex-flow: row wrap; justify-content: center; (просто дописав это для .box__list), тогда отрицательный margin будет вообще не нужен — а решение на инлайн-блоках, пусть и со злополучными пробелами, оставить как фолбэк для оставшихся ископаемых 10%?
  23. Implementors — именно «реализаторы». CSS реализуется в браузерах. Авторы самого CSS (спецификаций) — это specifiers. В принципе, всё относится ко всем, просто в разной мере. Например, описания алгоритмов, как и в каком порядке что должно рисоваться, какие координаты откуда и как рассчитываются и т.п., важнее для разработчиков браузеров — им надо перевести эти описания в реальный код рендеринга, наделав в этом как можно меньше ошибок. Поэтому им приходится разбирать эти алгоритмы в мельчайших деталях, порой уточняя спецификацию по мере необходимости. Но авторам стилей (нам) желательно иметь представление об этих алгоритмах хотя бы в общих чертах — чтобы знать, в каких ситуациях чего от них ждать, и что в какой ситуации эффективнее решит конкретную задачу в верстке.
  24. Да, и поэтому ее еще можно считать относительно не устаревшей — как отражение браузерной реальности вчерашнего-сегодняшнего дня. Но HTML5.2 (предложенная рекомендация со 2 ноября) уже наступает ей на пятки и вот-вот ее заменит, пора к этому готовиться. У W3C тоже есть постоянно обновляемая версия — https://w3c.github.io/html/. Есть мнение, лучше ориентироваться на нее (что есть вообще на сегодняшний день) и canIUse (что реально есть в браузерах), а не на то, включена или нет фича в ту или иную версию с цифрой (что не более чем формальная условность).
  25. В данном случае Implementers — это разработчики реализаций, т.е. браузеров. А авторы — да, те, кто пишет CSS-код, т.е. мы, верстальщики/фронтендеры.
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy