1. Стандарты кодирования

1.1 Структура проекта
---/html/ |---- /index |---- /index/index.html 首页 |---- /user/ 与用户相关的页面 |---- /user/login.html 登录页 ---/css/ |---- /base.css 重置浏览器样式 |---- /page 逻辑页面的css |---- /page/pagename.css 单独书写的css |---- /common.css css通用样式库 ---/js/ |---- /lib 公用组件 |---- /lib/jquery.2.2.3.min.js 调用jq库文件 |---- /page 逻辑页面的js |---- /page/pagename.js 单独书写的js |---- /common.js 公用方法 ---/img/ |---- /page 页面对应的图片 |---- /page/wap 手机端图片夹 |---- /page/wap/wap_icon.png 手机端图标 |---- /logo.png 公用图片
1.2 Соглашения об именовании проекта
Проект: назовите его, используя соответствующее английское слово для проекта
Файлы и папки:
- Разрешены только строчные английские буквы и дефисы (средние тире), другие символы не допускаются, например: login, my-order
- Файлы, подключаемые из `/lib`, должны включать номер версии; сжатые файлы должны включать ключевое слово `min`; другие плагины могут его не указывать, например: `/lib/jquery.1.9.1.js`
1.3 Формат и кодировка
- Текстовые файлы: `.xxx` кодировка UTF-8_(без BOM)_
- Файлы изображений: `.png` _(PNG-24)_ `.jpg` _(коэффициент сжатия 8-12)_
- Анимированные изображения: `.gif`
- Сжатые файлы: `.tar.gz` `.zip` `.rar`
2. Стандарты CSS
2.1 Соглашения об именовании CSS
- Все имена должны состоять из английских слов в нижнем регистре
- Не используйте простые слова, обозначающие направления, непосредственно в качестве имен, например "left", "bottom"
- Не используйте сокращения, если они не понятны сразу
- В длинных именах или фразах можно использовать подчеркивания в качестве соединителей
- Избегайте чрезмерного количества уровней вложенности селекторов; не превышайте 3 уровней
- Не используйте ids произвольно; ids следует использовать по мере необходимости и не злоупотреблять ими
- Используйте сокращенные свойства CSS, такие как padding:0 10px 5px 5px, и т. д. Это делает код более компактным и улучшает удобство чтения для пользователя.
Справочник по именованию выглядит следующим образом:
| Именование стилей CSS | Описание |
|---|---|
| Распространенное именование веб-страниц | |
| wrapper | Внешняя обёртка страницы, управляющая общей шириной макета |
| container или content | Container, используется для самого внешнего слоя |
| layout | Layout |
| head, header | Секция заголовка |
| foot, footer | Секция футера |
| nav | Основная навигация |
| sub_nav | Вторичная навигация |
| menu | Меню |
| sub_menu | Подменю |
| side_bar | Боковая панель |
| sidebar_l, sidebar_r | Левая боковая панель или правая боковая панель |
| main | Основное содержимое страницы |
| тег | Тег |
| сообщение msg | Сообщение-подсказка/совет |
| tips | Советы/приёмы |
| vote | Голосование |
| friendlink | Дружественные ссылки |
| title | Title |
| summary | Резюме/Аннотация |
| login_bar | Панель входа |
| search_input | Поле поиска |
| hot | Горячие темы/тренды |
| search | Поиск |
| search_output | Вывод поиска похож на результаты поиска |
| search_bar | Строка поиска |
| search_results | Результаты поиска |
| авторские права | Информация об авторских правах |
| branding | Товарный знак |
| logo | Логотип сайта |
| site_info | Информация о сайте |
| site_info_legal | Правовая информация |
| site_info_credits | Достоверность/Доверие |
| join_us | Присоединяйтесь к нам |
| partner | Партнеры |
| service | Сервисы |
| регистрация | Регистрация |
| стрелка | Стрелка |
| гильдия | Руководство |
| site_map | Карта сайта |
| list | Список |
| home_page | Главная страница |
| sub_page | Второстепенные/подстраницы |
| инструмент, панель инструментов | Панель инструментов |
| drop | Выпадающий список |
| dorp_menu | Выпадающее меню |
| status | Status |
| scroll | Прокрутка |
| tab | Страница вкладки |
| слева справа по центру | Выравнивание по левому краю, по центру, по правому краю |
| news | Новости |
| download | Скачать |
| баннер | Баннер (верхний рекламный баннер) |
2.2 Стандарты написания CSS
Следуйте принципу «без ID, без уровней вложенности, без тегов», чтобы эффективно повысить переиспользуемость, уменьшить размер файла и повысить эффективность рендеринга
2.3 Формат комментариев CSS
Комментарии, используемые для различения страниц, например: /******************************************Центр продукции****************************************/
Комментарии к модулю, например: /*Панель навигации главной страницы*/
2.4 Порядок свойств CSS: не строго обязателен
- Позиционирование (например, position, top, z-index)
- Блочная модель (например, display, box-sizing, width, border)
- Типографические (например, font, line-height, text-align)
- Визуальные (например, background, color, opacity)
- Прочие (например, cursor)
Поскольку позиционирование может удалять элементы из нормального потока документа и также может переопределять стили, связанные с блочной моделью, оно размещается первым. Блочная модель определяет размер и положение компонента, поэтому она размещается второй. Другие свойства влияют только на внутреннюю часть компонента или не влияют на первые две группы свойств, поэтому они размещаются последними.
2.5 Форматирование CSS
Пишите без переносов, чтобы увеличить скорость написания
.box{background: none repeat scroll 0 0 transparent;bottom: 11px;position: relative;width: 22px;z-index: 33;}
2.6 Единицы измерения шрифта CSS
- px — это пиксель (Pixel), относительная единица длины. Пиксель px зависит от разрешения экрана монитора.
- em — относительная единица длины. Она зависит от размера шрифта текста внутри текущего объекта. Если размер шрифта текущего строчного текста не был задан вручную, она зависит от размера шрифта браузера по умолчанию.
- rem — также относительная единица длины, но она относительна только к корневому элементу HTML.
- vw представляет 1% ширины области просмотра. Если ширина области просмотра равна 1000px, то 50vw = 500px
- vh представляет процент от высоты области просмотра. Если высота области просмотра равна 800px, то 50vh = 400px
- Примечания по использованию в проектах компании: во всех существующих проектах в качестве единицы используется px. Теперь рекомендуется использовать rem, vw, vh в качестве единиц измерения
3. Стандарты JS
3.1 Соглашения об именовании JS
3.1.1 Именование переменных JS
Способ именования: lower camel case
Соглашение об именовании: префикс должен быть существительным. (Имена функций имеют глагольные префиксы, чтобы отличать функции от переменных)
Рекомендация по именованию: старайтесь отражать тип в имени переменной, например length, count и т. д., для числовых типов; и имена, содержащие name, title, для строковых типов.
Пример
// 好的命名方式 var maxCount = 10; var tableTitle = 'LoginTable'; // 不好的命名方式 var setCount = 10; var getTitle = 'LoginTable';
3.1.2 Именование функций JS
Способ именования: lower camel case
Соглашение об именовании: префикс должен быть глаголом
Рекомендация по именованию: можно использовать общепринятые глагольные соглашения
| Глагол | Значение | Возвращаемое значение |
| can | Определяет, можно ли выполнить действие (разрешение) | Функция возвращает логическое значение. true: выполнимо; false: невыполнимо |
| has | Определяет, содержится ли определённое значение | Функция возвращает логическое значение. true: содержит это значение; false: не содержит это значение |
| является | Определяет, является ли оно определённым значением | Функция возвращает логическое значение. true: является определённым значением; false: не является определённым значением |
| get | Получает определённое значение | Функция возвращает значение, не являющееся логическим |
| set | Устанавливает определённое значение | Нет возвращаемого значения, возвращает признак успешности установки или возвращает объект, поддерживающий цепочку |
| load | Загружает некоторые данные | Не возвращает значение или возвращает результат того, завершена ли загрузка |
3.1.3 Именование констант JS
Способ именования: все заглавные буквы
Соглашение об именовании: используйте сочетание заглавных букв и подчёркиваний для именования; подчёркивания используются для разделения слов
Пример
var MAX_COUNT = 10; var URL = 'http://www.example.com';
3.1.4 Именование файлов JS
Используйте дефисы (-) или точки (.) в качестве разделителей; рекомендуются точки. Предпочтительно использовать строчные английские буквы, не используйте другие символы или расширенные символы. Например, исходный файл jQuery UI 1.9.0 можно назвать "jquery-ui-1.9.0.js"
Используйте расширение .js, которое обладает наилучшей совместимостью. Фактически, подходит любое расширение, если это текстовый тип и правильная кодировка.
Используйте точки для указания подчинённых связей в именах, начиная с более широкой области. Например, плагин формы Form для jQuery можно назвать jquery.form.js.
3.2 Формат комментариев JS
Используйте многострочные комментарии, начинающиеся с /* и заканчивающиеся */
3.3 Примечания по JS
Форматирование
- Отступ при переносе строк в JS: используйте табуляцию (расширяется до 4 пробелов)
- Завершайте строки точкой с запятой `;`
Производительность
- Старайтесь использовать локальные переменные вместо глобальных
- Старайтесь использовать цепочный стиль
- Сведите к минимуму вызовы DOM
- Размещайте JS-скрипты внизу страницы
- Используйте data в jQuery для хранения и извлечения данных, сокращая операции с DOM
- Используйте метод on для привязки событий; это рекомендуемая практика jQuery
- Выбор селекторов: старайтесь не использовать селекторы тегов; если можно использовать селектор ID, не используйте селектор класса
4. Стандарты HTML
4.1 Стандарты использования тегов
Сведите к минимуму иерархию тегов
Парные теги должны быть закрыты; одиночные теги закрываются слэшем
Первая строка HTML должна единообразно использовать стандарт HTML5 <!DOCTYPE html>
Единообразно используйте формат с завершающим слэшем для тегов: `<br />` `<hr />` обратите внимание на пробел между ними
Избегайте устаревших тегов, таких как: `<font>` `<frame>` `<s>`
Формат по умолчанию для тега `<img>`: `<img src="../index.html" alt="DefaultwhentextCharacter" />`
Формат по умолчанию для тега `<a>`: `<a href="../index.html" title="LinksName">xxx</>` Примечание: `target="_blank"` зависит от требований
style, link, script могут опускать атрибут type, потому что text/css и text/javascript являются их значениями по умолчанию соответственно
4.2 Комментарии HTML
<!--内容--> <div class="content"> <p>content</p> </div>
4.3 Примечания
Для мобильной адаптивной верстки старайтесь использовать гибкую верстку, а не проценты
Все файлы `css` должны размещаться в head
Отступы при переносе строк HTML: используйте табуляцию
Другие файлы эффектов `js` и `statistics code` должны располагаться внизу
Мобильные страницы должны разрабатываться с шириной 750px, а отображаться при 375px
5. Стандарты изображений
5.1 Стандарты изображений
Размер изображения: используйте веб-формат при нарезке изображений, чтобы уменьшить размер файла
Размеры изображения: всегда используйте целые числа, например, 20X20, 50X50
Объединение изображений: маленькие изображения необходимо объединять, а соответствующие PSD-файлы следует сохранять для последующих изменений
Исходная ссылка: https://lingdianit-com.github.io/Front-End-Standards/