|
1 / 1 / 0
Регистрация: 16.02.2015
Сообщений: 38
|
|||||||||||
Качеству разметки и css12.06.2019, 12:03. Показов 1057. Ответов 11
Метки нет (Все метки)
Добрый день форумчане!
Подскажите правильный подход к реализации такой структуры: есть лендинг разбитый по секциям. Бэкграунд у секций идет на всю ширину экрана, в то время как контент размещается по центру и занимает 1120px. Для примера возьмем верхнюю линию, в которой должны быть язык, телефон и email. В html у меня это выглядит так:
1. Нейминг. У меня есть класс .container который задает ширину контента. С точки зрения бэм или других методологий нормально что в каждом блоке будет присутствовать элемент с классом имя которого никак не сопоставляется с родительским? 2. Стили. Мне надо чтобы в .top-line все элементы и контент в них выравнивался во центру(по вертикали). Можете видеть как я это реализовал. Правильный ли это подход, или есть более верные решения задачи? 3. Ну и вообще дайте пожалуйста кодревью. Как улучшить подход? А то работаю один, и не с кем посоветоваться. Заранее спасибо!
0
|
|||||||||||
| 12.06.2019, 12:03 | |
|
Ответы с готовыми решениями:
11
Дайте обратную связь по качеству верстки ошибка в разметки
|
| 12.06.2019, 12:30 | ||||||
|
1. В sass есть &
В данном случае у вас достаточно много нарушений БЭМ (раз уж вы ее упомянули) * - не стоит ей злоупотреблять. Методика БЭМ как раз нацелена, чтобы максимально ускорить разбор/применение стилей. А вы берете самый жадный селектор. Не говоря уж о том, что делать display flex для всех элементов внутри..... flex - штука удобная, но злоупотреблять не стоит. Как улучшить - внимательно вникните в CSS, как применяются стили браузера ну и в детали того же БЭМ. То, что "будет присутствовать элемент с классом имя которого никак не сопоставляется с родительским". Это нормально во всех случаях когда элемент самостоятелен и не подразумевает обязательной вложенности в другой.
0
|
||||||
| 12.06.2019, 13:24 | ||
|
Далее в общем случае все же лучше когда стили более конкретны. Через год потребуется добавить элемент, которому этот flex и высота только мешает. Будем переназначать, еще через год следующий... (У меня просто свежи еще воспоминания, где как раз вот этот flex навтыкали с надобностью и без, и на пустом месте лишняя работа нарисовалась)...
0
|
||
|
1 / 1 / 0
Регистрация: 16.02.2015
Сообщений: 38
|
|
| 12.06.2019, 13:27 [ТС] | |
|
Спасибо за ответ, по поводу & не знал!
По поводу злоупотребления flex - почему не стоит злоупотреблять? Если у нас внутри блока все элементы должны свой контент выравнивать по одинаковым правилам, в чем проблема применить для них для всех flex? Думаю это лучше чем в одних местах мы будем давать flex, в других выравнивать другими способами... сейчас пришла мысль что для всех элементов с flex могу задать отдельный класс для которого будет задано display: flex. Это уберет дублирование кода.
0
|
|
| 12.06.2019, 13:38 | ||
|
flex, опять же на мой взгляд, хорош там где есть одна колонка или строка, а где два измерения лучше grid. А где то вообще не нужен ни тот ни другой. Т.е. если я вставлю свой компонент в ваш. (при этом в моем компоненте будет несколько уровней вложенности, да и, точнее, несколько разных классов/элементов), то мне придется для каждого переопределять ваши настройки. Хотя, по хорошему, я должен только верхний элемент "встроить" в вашем компоненте, чтоб он там не был инородным. А вложенные то по что?
Добавлено через 1 минуту Добавлено через 3 минуты Т.е. суть на мой взгляд в следующем. Мы ж не хотим ориентироваться на детские проектики ни кому не нужные ... Только на мега проекты с миллионными посещениями и командой разрабов.... Куча компонентов на странице. Вы делаете компоенент контейнер, и описываете общие правила проживания в нем.... Я делаю маленький компонент, который вставляется в него и по минимум просто адптиурется верхним слоем. (либо при помощи модификатора, либо просто полопав в отведенный для него блок).. Но ваш кмопоент не должен (опять же на мой взгляд) ломать мой.
0
|
||
|
|
||||
| 12.06.2019, 13:51 | ||||
|
0
|
||||
| 12.06.2019, 14:04 | |||
|
А если идти дальше, то ведь однажды СЕОшник захочет сказать, а теперь я хочу чтобы блок из подвала пехал в шапку. Даже точнее был скопирован.... В случае с вашими звездочками. В этом блоке придется перекрывать свойства для каждого класса. Даже если этот блок должен выглядеть так же как и в подвале. Да это экономия на спичках, но главный вопрос нафига, эти лишние микросекунды если не делать этого ни чего не стоит? Ну а про бутстрап..... Ну если только на него ориентроваться то да.... Наверное.. У меня он встречается только на низкобюджетных проектах. Я сомневаюсь что там вообще надо тащить всякие БЭМЫ уж бутсрап так бутстрап.... PS Не навязываю мнение, но меня не переубедить. Воспитан на программировании во времена, когда операционка, компилятор и ИДЕ. умещались на дискету в 360кб... А уменьшение exe-шника на 10 б. - было полезно... Потому и сейчас считаю, что если есть возможность уменьшить количество телодвижений на проде, при этом не затрачивая ни каких усилий - делаю.
0
|
|||
|
|
|||||||||||||||
| 12.06.2019, 14:41 | |||||||||||||||
Неправота автора темы заключается вот в таком именовании класса header__top-line-inner... Методология БЭМ подразумевает следующее:
И собственно в чём проблема? Использование универсального слектора, лишь упрощает запись и сокращает количество стилей, то есть если мs используем flex-вёртку, зачем для каждого вложенного блока указывать display:flex? Если можем указать одним махом для всех .header *{...} Или БЭМ запрещает использование универсальных селекторов?![]() Ужас... Тихий ужас... То есть типа нищебродам итак сойдёт, а перед богачами можно и на цырлах попрыгать... Если что, то в бутстрап вёрсткая атомарная и её можно использовать вместе с БЭМ вне зависимости от стоимости проекта... И уж тем, более опять же на мой взгляд вне зависимости от того сколько платит клиент есть смысл качать скилы одинаково вне зависимости от стоимости проекта. Но это лишь моё мнение, я не капиталист и не терплю менеджеров...)) Что-то не припомню IDE на дискете, если только MC и блокнот...)) Операционка, если только соляра влезала...
0
|
|||||||||||||||
| 12.06.2019, 15:14 | |||||
|
Т.е. в идеале стиль block-lang и ему добавляем модификатор, если он в header. Все же БЭМ несколько больше чем правило именования стилей. Где вы увидели, что качество разное? Просто я считаю, что бутстрап не панацея, не всегда удобен, но у меня, например, тариф почасовой, естественно на бутстрапе, тем более типовой - верстка будет быстрее. Она не будет менее качественной, просто на дизайн, врестку будут "наложены требования бутстрап". Это не всегда оптимально... Если клиент готов платить, чтоб было совсем под него почему нет? Добавлено через 2 минуты Кстати в лине IDE для Pascal (в консоли конечно же) до сих пор в том "дизайне". И ее используют в некоторых школах...
0
|
|||||
|
|
||||||
| 12.06.2019, 15:32 | ||||||
Эксклюзив и так сказать ширпотреб... У меня и по сей день где-то болтается заветная дискетка. Просто мы на ветке вёрстки, говорим о вёрстке - я думал, что Вы и говорите про вёрстку... Поэтому по памяти и начал вспоминать счастливые 90-е... Паскаль мой второй язык после асма... Я ж не знал, что Вы имеете ввиду, поэтому и подумал об IDE для веб-разработчиков...
0
|
||||||
| 12.06.2019, 16:03 | |||||
|
Тут у меня есть два аргумента. Если мы копируем блок в другое место: 1. Если в другом месте он должен выглядеть точно также. То нам не нужны ни какие модификаторы. Утрировано, может быть, он должен просто занимать отводимое для него место/контейнер. А контейнеру - ему все равно что внутри. Он просто задал "рамки". 2. Если отличия должны быть... Тут если иерархию прописывать - все равно нужно вмешательство верстальщика/разработчика (в общем кто в css внесет правки). Точно с таким же успехом можно просто класс миодификатор добавить. При этом как разработчик, я могу вынести это в настройки компонента. И контент менеджер сам справится. (естественно в случае готовых наборов). Т.е, все же, больше пока перевешивают модификаторы. Т.е. я могу дать более гибкий инструмент не требующий вмешательства мое и верстальщика на каждый чих (да я в веб пришел как верстальщик, чтоб разгрузить мозг от программирования, а потом узнали что я программист и понеслось - теперь я уже верстку как таковую на себя не беру). . Т.е. не каждый осознает (правда сейчас в работу попадаются больше качественных версток, да и стал, больше работать, с доработкой/поддержкой существующих проектов) что не все понимают как страница будет порезана на логические блоки и как она может видоизменяться. Т.е. бывает блок гвоздями к определенному месту приколочен, при этом из опыта обслуживания проектов подобные могут мигрировать.... В итоге простая задача перемещения блока превращается в задачу с желательным привлечением верстальщика. А по факту, на многих проектах, (в силу бюджета) поручают программисту, который не всегда хорошо понимает верстку... В итоге, после года подобных правок, брать на обслуживание проект становится просто страшно ... Мне как раз и понравился БЭМ в том понимании как я его понял (я не сторонник слепому следованию какому либо правилу просто потому, что, например, в этом случае это "великий Яндекс" .... Что верстка по максимуму дробится на самосстоятельные блоки... Добавлено через 5 минут Но это не точно. По "нормальному" вебом стал заниматься уже во времена XP. И мой "ИДЕ" был первое время Kate и vim. А дисководы гоняли толкьо в налоговой. да и те уже были 3.5 дюйма
0
|
|||||
| 12.06.2019, 16:03 | |
|
Помогаю со студенческими работами здесь
12
Понимание логики flow разметки Динамический язык стилевой разметки (LESS) Изменение разметки при печати
Основы разметки гипертекста HTML Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11680&d=1772460536
Одним из. . .
|
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
|
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
|
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
|
|
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога
Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
|
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование
. \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json>
Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом.
# Check if. . .
|
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так:
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347
Основана на STM32F303RBT6.
На борту пять. . .
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|