на Русском · Примеры · CSS, HTML, Toolkit для Front-end разработчиков
Перед скачиванием убедитесь что у Вас имеется удобный редактор кода (мы рекомендуем Sublime Text 2), а так же какое-либо понимание и знание технологий HTML и CSS. Здесь мы не дадим описание исходных файлов, но они находятся в свободном доступе на GitHub.
Скачать готовый проект
Быстрый способ начать: скачать скомпилированные и минифицированные файлы CSS, JS, и картинок.
Скачать Bootstrap
Скачать исходники
Оригинальные файлы CSS и JavaScript, с текущей версией Bootstrap можно скачать через GitHub.
Скачать исходный код Bootstrap’а
После скачивания Вы увидите следующую структуру и файлы, Логически сгрупированные и предоставленные в скомпилированном и минифицированном виде.
Разархивировав скаченный архив (скомпилированного) Bootstrap’а. Вы увидите следующую структуру:
bootstrap/ ├── css/ │ ├── bootstrap.css │ ├── bootstrap. min.css ├── js/ │ ├── bootstrap.js │ ├── bootstrap.min.js ├── img/ │ ├── glyphicons-halflings.png │ ├── glyphicons-halflings-white.png └── README.md
Это основной вид Bootstrap’а: скомпилированные файлы для начала быстрой работы, просто загрузите на сервер и Вы готовы к работе. Мы предоставили скомпилированные CSS и JS (
), наряду со скомпилированными и минифицированными CSS и JS (bootstrap.min.*
) файлами. Картинки были сжаты через ImageOptim, приложение для Mac, позволяющее сжимать PNG-файлы.
Учитывайте что все JavaScript-плагины основаны на jQuery.
Bootstrap заряжен порцией высококачественного HTML, CSS, и JS для любого типа веб-разработки.
Документация
Шаблон
Глобальные стили для элемента body
: изменение background’а, ссылки на стили, сетка шаблона и два простых макета.
CSS
Стили основных HTML элементов, оформление и шрифты, код, таблицы, формы и кнопки.
Компоненты
Основные стили компонентов интерфейса: вкладки и навигационные кнопки, навигационный бар (navbar), сообщения, заголовки страниц и т.п.
Javascript-плагины
Схоже с компонентами, Javascript-плагины оживляют ваш веб-проект, и Компоненты такие как всплывающие подсказки (tooltips), всплывающий контент (popovers), всплывающие окна (modals) и много других вкусностей.
Список компонентов
Вместе Компоненты и Javascript-плагины представляют следующий список элементов интерфейса:
- Группы кнопок
- Кнопки с выпадающими списками
- Элементы навигации: вкладки, кнопки и списки
- Навигационный бар (Navbar)
- Этикетки
- Бейджи
- Заголовки страниц и элемент hero
- Миниатюры
- Сообщения
- Индикаторы процесса (прогресса)
- Всплывающие окна
- Выпадающие списки
- Всплывающие подсказки
- Всплывающий контент
- Стек вкладок
- Каруселька
- Вспомогательное меню
input
элемента (Typeahead)
В будущих обзорах, мы рассмотрим эти компоненты по отдельности более подробно. А пока, посмотрите на каждую из них в документации для получения информации о том, как их использовать.
Вместо чтения красочных описаний Bootstrap’a, мы предлагаем Вам начать его использовать. Для начала создайте базовый HTML шаблон ,который будет включать в себя все что писано в Файловой структуре.
Затем обратите внимание на стандартный HTML-файл:
<!DOCTYPE html> <html> <head> <title>Bootstrap 101 Шаблон</title> </head> <body> <h2>Привет! Я Bootstrap...</h2> <script src="http://code.jquery.com/jquery-latest.js"></script> </body> </html>
Что бы
<!DOCTYPE html> <html> <head> <title>Bootstrap 101 Шаблон</title> <!-- Bootstrap --> <link href="css/bootstrap.min.css" rel="stylesheet"> </head> <body> <h2>Привет! Я Bootstrap. ..</h2> <script src="http://code.jquery.com/jquery-latest.js"></script> <script src="js/bootstrap.min.js"></script> </body> </html>
Все готово! Благодаря этим файлам, вы можете начать разрабатывать ваш сайт или приложение на Bootstrap’е.
Для продолжения обратте внимание на стандартные макеты страниц. Используйте эти примеры для начаработы над своим проектом, изменяйте их и содавайте что-то уникальное.
Основной сайт. Маркетинг.
Основной «Hero» элемент и три дополняющие колонки с информацией.
Плавающая разметка
Данный пример использует все преимущества динамического дизайна с плавающей шириной.
Стартаперский шаблон
Полнофункциональный шаблон, включающий в себя все фичи (HTML/CSS/LESS/JS) от Bootstrap.
Классический для продукта
Простой, легкий маркетинговый шаблон для проектов и команд.
Вход (Логин)
Классическая форма входа.
Подвал
Подвал привязанный к низу страницы.
Каруселька «jumbotron»
Интерактивный, приятный и веселый шаблон, подойдет как для продукта так и для команды.
Изучайте документацию, примеры и примеры кода, или же погрузитесь в разработку с целью изменения исходников Bootstrap’а для ваших проектов.
Читать документацию Изменить и скачать BootstrapКак оценить качество html-верстки
В процессе обучения на html-курсах у меня постоянно возникает потребность оценивать качество html-верстки учеников. Данная тематика очень большая и неоднозначная: о неё спотыкались почти все, что так или иначе использует чужой код. Некоторые компании придумывают сложные чек-листы, чтобы хоть как-то форматизировать свои требования. Другие, наоборот, упрощают подход: сайт «не разваливается», уже хорошо. 🙂
Обычно смотрят сразу на весь сайт, поэтому часто возникают требования имеющие лишь второсепенное отношение к html-верстке. Например использование h2-заголовка и SEO-оптимизация. В данном случае верстальщик не обязан знать всю контекстную составляющую сайта, а в большинстве случаев, это даже неизвестно. Например в шаблонах CMS наполнением занимается конечный пользователь.
Существуют и другие, совершенно «безумные» требования, вроде запрета использовать
в CSS. То что это стандарт CSS, автор требования, видимо, не в курсе. Или только один css-файл на все страницы. C учётом lazy-загрузки данное требование можно трактовать исключительно как «вредное»…
Потихонечку я пришел к выводу, что оценивать html-верстку нужно в основном по качеству кода. Причем код бывает двух видов: первый — исходный, второй — готовый (скомпилированный).
Скомпилированный код формируется автоматически, а значит к нему нельзя выставлять никаких требований, вроде красивого оформления, отступов и т.п. Готовый код мы не можем использовать для оценки, поскольку это просто неудобно и нечитабельно. Хотя нет никаких сложностей пропустить его через онлайн-автоформатирование с любым понравившимся вариантом и получить красивый текст.
На сегодняшний день существует только одно требование: готовые файлы должны быть минимизированы, а значит физически отделены от исходных. Когда верстальщик сдаёт работу, то в комплект в обязательном порядке должны входить и исходные файлы.
К исходным файлам уже можно предъявить требование по форматированию кода. Здесь самое главное — это обеспечить высокую читабельность. Обычно речь идёт об отступах, которые формируют визуальные блоки. Будут ли это пробелы или табуляторы — не имеет никакого значения, хотя табулятор проще и для использования и настраивается в любой кодерской программе (то есть у верстальщика и проверяющего могут быть разные настройки по своим предпочтениям, пробелы же фиксированы).
Стиль кодирования желательно использовать какой-то общепринятый. Здесь также разные варианты, главное, чтобы начинающий верстальщик ознакомился с разными вариантами и стал их применять на практике.
Всё это приводит к первому важному критерию оценки: код должен быть аккуратным и читабельным. Неряшливость кода — больше демонстрируюет неуверенность и неумение его создавать.
Хорошо оформленный код ещё ничего не говорит о его качестве. Например верстальщик написал css-класс из 10 стилей и красиво его оформил. Если на странице таких классов несколько десятков/сотен, то никто не будет проверять каждый стиль: скажем вместо padding
нужно было использовать margin
, а для выравнивания использовать не float
, а flex
. Погружаться в код, чтобы его полноценно изучить,- потребуется не только соотвествующая квалификация проверяющего, но и немалого времени. Чтобы упростить эту задачу кодер, по возможности, должен комментировать свой код.
Поэтому следующий критерий — комментирование своего кода
Покажу на простом примере с использованием атомарных классов UniCSS. Вот такой простой блок (можете его загрузить в UniCSS.Builder и проверить):
<div> <h4>Заголовок</h4> <div>Текст</div> </div>
Здесь может возникнуть вопрос зачем верстальщик использовал класс mar0
(это margin: 0
)? На самом деле это нужно, чтобы обеспечить 20px отступ, который задан у родительского блока, ведь h4 имеет ещё и свой 10px верхний отступ. Если померить линейкой, то без mar0
отступ окажется больше. Это неочевидный момент, которы можно легко упустить из виду. Более того, может возникнуть ощущение, что css-класс вообще лишний. Но верстальщик сделал «пуленепробиваемый» код, где h4 можно заменить на любой другой тэг. Осталось только указать это в коммментариях. Теперь код не только хорошо читается, но и понятен его смысл:
<div> <!-- Обнуляем отступы, чтобы они определялись только родителем. Можно использовать другой тэг заголовка. --> <h4>Заголовок</h4> <div>Текст</div> </div>
При этом описывать смысл bg-green
или bg-gray
нет необходимости — это очевидные классы, используемые по своему прямому назначению.
Другой критерий — это понимание основ HTML. Например при html-верстке использование BR вместо P — будет большой ошибкой. Также довольно большая проблема — «новые» семантичные html-тэги, вроде SECTION, ARTICLE и т.п. Использование данных тэгов всегда сопряжено с риском нарваться на критику по их неверному использованию. Верстка — это в первую очередь положение элементов, а семантика обычно требуется на уровне SEO. Поэтому более надежней будет верстать на «обычных» тэгах, а семантику расставлять на заключительных этапах, в зависимости от пожеланий клиента.
Ещё очень важно понимать структурный подход к html-верстке. Современная верстка — модульная, где каждый блок представляет собой некий «компонент» и в идеале должен без каких-либо переделок менять своё положение на странице. Такой подход базируется на разделении модульной сетки сайта от составляющих её блоков. Модульная сетка — это каркас, фундамент, который отвечает только за компоновку главных блоков. В CMS обычно это шапка, подвал, основной контент-блок и сайдбары. При этом модульная сетка может содержать общий контейнер для всех этих блоков — это необходимость, если нужно визуально их объединить (тень, фон или граница).
Очень часто верстальщики смешивают модульную сетку с внутренними блоками, иногда до фатальных зависимостей. Вместо этого нужно стремиться к тому, чтобы модульная сетка могла вообще меняться произвольно без переверстки внутрених блоков. Чем меньше между блоками/кодом зависимостей, тем лучше.
Отдельно стоит отметить верстку лендингов, где часто нет общего контейнера и модульной сетки как таковой (точнее это один общий BODY). Здесь верстальщик должен понимать, что каждый блок лендинга должен быть сверстан так, чтобы мог поменять своё положение на странице. Особо интересны случаи, когда блоки могут занимать разную ширину: в центре по всему браузеру, по центру с ограничением, по краям браузера и т.п. В этом случае модульная сетка как раз и описывает такое расположение, а внутреннее содержимое отвечает за поведение внутри этого контейнера.
Если блок не имеет своего layout-контейнера, то такой код «грязный». И хотя формально он может быть красивым и все стили на месте, но его поддержка и последующая переделка потребует больших усилий. Если такую работу будет выполнять уже другой верстальщик, то ему будет проще всё сделать с нуля самому, чем переделывать чужой код (правда не факт, что он сделает лучше 😉 ). Если верстальщик понимает структурный подход, то таких проблем просто не возникает.
Существуют ли критерии оценки качества CSS-кода (вне описанных выше критериев)? Здесь всё сложно… CSS позволяет решать задачи разными способами, поэтому сказать, что какой-то вариант лучше другого, проблематично. Единственным вариантом, пожалуй, будет выбор в пользу более простого и понятного кода. Если нужно задать отступ, то используем margin
или padding
, но не line-height
. Первые простые и понятные, второй более сложный и не такой очевидный. То есть по возможности css-код должен быть как можно проще.
Мне иногда приходится разбирать сложные css-классы, где ученики использовали с десяток стилей. Как правило это обычное copy/paste с какого-нибудь старого сайта. Объяснить зачем нужные те или инные строчки ученик не может: если код работает, то вроде как всё правильно. Но потом оказывается, что такой код излишний, а задачу можно было решить гораздо проще, нужно было просто над ней подумать.
При именовании css-классов нужно придерживаться какого-то одного стиля или методики. Если всё в разнобой, неявные имена классов, то такой код «грязный» потому что его будет сложно поддерживать. Представьте себе, что этот код будет переделывать другой верстальщик, а значит он должен его понять. Львиная доля времени уходит не на исправление/доработку css-кода, а на поиск его классов в html-коде и sass-файлах.
Именно поэтому верстальщики массово и переходят на Atomic CSS.
Выбор методики — индивидуальные предпочтение, хотя во многих конторах будут свои требования по этому поводу, включая, например запрет на использование транслитерации.
В современных реалиях верстка должна быть адаптивной. Поведение блоков нужно задавать для разной ширины экрана и обязательно проверять в браузере (Ctrl+Shift+M
в FireFox). Настройка адаптивности порой занимает больше времени, чем для обычного десктопа. Часто это приводит к появлению дополнительных css-классов, которые не всегда очевидные с первого взгляда. Верстальщик, после того, как настроил десктопную версию, должен отработать меньшие экраны. Если появляется горизонтальный скроллинг, это значит, что адаптивность скорее всего вообще не настраивалась. Бывают, конечно, сложные блоки, но горизонтальный скролл недопустим.
Затрагивая адаптивность, нельзя не упомянуть о требовании pixel perfect. С моей точки зрения попиксельное соответствие макету возможно, но с рядом оговорок — дизайнер должен проработать все экраны, а также использовать рендеринг шрифтов, скругления, тени и прочие дизайнерские элементы как в браузерах, а не как это делает фотошоп. Потому что когда дизайнер предусмотрел отступ 8px, а размер шрифта 14.8px при непонятном интерлиньяже, то «пиксель перфект» превращается в откровенный мазохизм.
Адаптивность — это «резиновая» верстка, где описывается поведение элементов (выравнивание, отступы и т.д.), причём часто на произвольных текстах и иконках. Задать здесь точные пиксельные размеры уже проблематично, поэтому на сегодняшний день требования к pixel perfect обычно сводятся к «как можно ближе к макету». Если перевести на числа, то в больших блоках (более 50px) точность 10..20px, а на малых 5..10px, вполне достаточна. Поэтому я думаю, что требование к pixel perfect на сегодняшний день мягко говоря неактуальна. В реальности такая точность просто не нужна.
Вот, собственно, и все критерии. Мало, потому что это все имеет непосредственное отношение к работе верстальщика. Всё остальное — это методики и инструменты. Нет никакого смысла обсуждать и требовать html-валидации кода — это и так очевидно. Нет никакого смысла указывать на необходимость использования resets.css или normalize.css — это очевидно даже новичку. Нет никакого смысла указывать на необходимость тестирования верстки на разных экранах — это даже не сколько тестирование, сколько непосредственный процесс верстки. В лучшем случае все эти дополнительные требования можно оформить в виде чек-листа, благо Интернет ими заполонён.
Впрочем возникает ещё один вопрос: как оценить профуровень самого верстальщика? Скорее всего лучшим способом будет его тестирование. Но не опросник/анкета, а практическое задание на верстку каких-то блоков или небольших страниц с обязательным комментированием своего кода. Можно усложнить задачу, например выдвинув требование на использование какого-то css-фреймворка или, наоборот, только свой «ручной» код. Такое тестирование может показать реальный уровень подготовки и способность решать поставленные задачи.
Создание сайтов (Украина) →
Предзаказ будущего шаблона «MF»
Как быстро записывать свои мысли. Фрирайтинг
Введение в HTML · HonKit
«Так что же это за шаблон?» — можешь спросить ты.
Шаблон — это файл, который ты можешь использовать повторно для отображения различной информации в заданном формате; например, ты можешь использовать шаблон, чтобы упростить написание письма, поскольку письма хоть и различаются по содержанию и получателю, но сохраняют общую структуру.
Шаблоны в Django написаны на языке, называемом HTML (это тот HTML, о котором было упоминание в первой главе Как работает Интернет).
Что такое HTML?
HTML — это простой код, который может быть интерпретирован твоим браузером — таким как Chrome, Firefox или Safari — чтобы отобразить веб-страницу пользователю.
HTML (от англ. «HyperText Markup Language») — язык гипертекстовой разметки. Гипертекст — это тип текста, поддерживающий гиперссылки между страницами. Под разметкой понимается введение в текст документа кода, который будет говорить браузеру (в нашем случае), как интерпретировать веб-страницу. HTML код строится при помощи тегов, каждый из которых должен начинаться с <
и заканчиваться >
. Эти теги представляют элементы разметки.
Твой первый шаблон!
Создание шаблона означает создание файла шаблона. Всё есть файл, верно? Ты уже наверняка заметила это.
Шаблоны сохраняются в директории blog/templates/blog
. Для начала создай директорию templates
внутри директории blog. Затем создай другую директорию blog
внутри директории templates:
blog └───templates └───blog
(Ты, вероятно, можешь задаться вопросом: зачем нам нужны две директории с одинаковым названием blog
— как ты узнаешь позже, это просто удобное соглашение об именовании, которое делает жизнь проще, когда вещи серьезно усложняются. )
Теперь создай файл post_list.html
(для начала оставь его пустым) внутри директории blog/templates/blog
.
Посмотри, как выглядит твой веб-сайт после этого: http://127.0.0.1:8000/
Если тебя всё ещё встречает ошибка
TemplateDoesNotExists
, попробуй перезапустить сервер. Перейди в командную строку, останови веб-сервер нажатием Ctrl+C (Ctrl и С одновременно) и запусти его снова командойpython manage.py runserver
.
Ошибки больше нет! Поздравляем 🙂 Однако твой веб-сайт всё равно ничего не отображает, кроме пустой страницы, поскольку твой шаблон пуст. Нам нужно это исправить.
Добавь следующий код в файл шаблона:
blog/templates/blog/post_list.html
<html> <p>Hi there!</p> <p>It works!</p> </html>
Как теперь выглядит твой веб-сайт? Нажми сюда, чтобы узнать: http://127.0.0.1:8000/
Заработало! Хорошая работа 🙂
- Наиболее базовый тег,
<html>
, всегда присутствует в начале веб-страницы, а</html>
— в конце. Как ты можешь заметить, основной контент веб-сайта находится между тегами<html>
и</html>
. <p>
— это тег для параграфов;</p>
, соответственно, закрывает каждый параграф.
Head и body
Каждая HTML-страница также делится на два элемента: head и body.
head — это элемент, содержащий информацию о документе, которая не отображается на экране.
body — это элемент, который содержит всё, что будет отражено на веб-странице.
Мы используем тег <head>
, чтобы сообщить браузеру о настройках страницы, и тег <body>
— о её содержимом.
Например, ты можешь разместить элемент title между тегов <head>
:
blog/templates/blog/post_list.html
<html> <head> <title>Ola's blog</title> </head> <body> <p>Hi there!</p> <p>It works!</p> </body> </html>
Сохрани файл и обнови страницу.
Видишь, как браузер понял, что «Ola’s blog» — это заголовок страницы? Он распознал <title>Ola's blog</title>
и разместил текст в заголовке вкладки в твоем браузере (заголовок также будет использоваться при сохранении закладок и т.п.).
Вероятно, ты уже заметила, что каждый открывающий тег имеет пару — закрывающий, с символом /
, элементы таким образом становятся вложенными (ты не можешь закрыть тег, пока остаются открытыми теги внутри него).
Это как складывать вещи в коробки. У нас есть одна большая коробка, <html></html>
; внутри неё лежит коробка <body></body>
, которая содержит еще меньшие коробки: <p></p>
.
Ты должна следовать этим правилам закрытия тегов и вложенности элементов: если ты их нарушишь, браузер не сможет интерпретировать код и корректно отобразить страницу.
Настраиваем шаблон
Сейчас ты можешь немного повеселиться и попробовать настроить шаблон по своему вкусу! Вот несколько полезных тегов:
<h2>Заголовок</h2>
— главный заголовок страницы<h3>Подзаголовок</h3>
— для заголовков второго уровня<h4>Заголовок третьего уровня</h4>
… и так далее, вплоть до<h6>
<p>Параграф</p>
<em>текст</em>
— курсивный шрифт<strong>текст</strong>
— жирный шрифт<br>
— переход на следующую строку (внутрь br нельзя ничего поместить, также для него нет закрывающего тега)<a href="https://djangogirls. org">link</a>
создаёт ссылку<ul><li>первый элемент</li><li>второй элемент</li></ul>
создаёт список, такой же как этот!<div></div>
определяет раздел страницы
Вот пример готового шаблона, скопируй его содержимое в файл blog/templates/blog/post_list.html
:
blog/templates/blog/post_list.html
<html> <head> <title>Django Girls blog</title> </head> <body> <div> <h2><a href="/">Django Girls Blog</a></h2> </div> <div> <p>published: 14.06.2014, 12:14</p> <h3><a href="">My first post</a></h3> <p>Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum. Donec id elit non mi porta gravida at eget metus. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. </p> </div> <div> <p>published: 14.06.2014, 12:14</p> <h3><a href="">My second post</a></h3> <p>Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum. Donec id elit non mi porta gravida at eget metus. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut f.</p> </div> </body> </html>
Мы создали три div
элемента:
- Первый элемент
div
содержит название нашего блога, которое также является ссылкой. - Два других
div
элемента содержат текст записи и дату публикации:h3
тег с заголовком записи, который также является ссылкой, и дваp
(параграфа) с текстом, один для даты, а другой — для самого текста записи.
Это даёт нам следующий результат:
Ура! Однако до сих пор наш шаблон отображал лишь одну и ту же информацию — тогда как раньше мы говорили, что шаблоны позволяют нам отображать различную информацию в одном и том же формате.
Что мы действительно хотим, так это отображать существующие записи, добавленные через панель администратора Django; этим и займёмся в следующий раз.
И ещё кое-что: публикация!
Хотелось бы увидеть всё это вживую в интернете, согласна? Давай проведём еще одно развёртывание веб-сайта на PythonAnywhere.
Commit и push кода в репозиторий GitHub
Во-первых, давай посмотрим, какие файлы были изменены с момента последнего развёртывания (выполни эти команды локально, не на PythonAnywhere):
command-line
$ git status
Убедись, что находишься в директории djangogirls
, и попроси git
выбрать все изменения в пределах папки:
command-line
$ git add --all .
Примечание:
--all
(«всё») означает, чтоgit
также обратит внимание на удалённые файлы (по умолчанию он отслеживает новые/изменённые файлы). Также помни (из третьей главы), что.
означает текущую директорию.
Прежде чем мы загрузим файлы, давай проверим, что именно git
будет загружать (все файлы, которые git
готов отправить на сервер, отмечаются шрифтом зелёного цвета):
command-line
$ git status
Мы почти у цели, пришло время сохранить изменения в истории. К сохраняемой версии мы добавим небольшое сообщение, в котором кратко опишем изменения. Можешь набрать в качестве сообщения всё, что захочешь, однако полезно использовать информативную запись, так будет проще вспомнить внесённые изменения в будущем.
command-line
$ git commit -m "Changed the HTML for the site."
Примечание: убедись, что используешь двойные кавычки вокруг комментария.
После того, как мы сделали это, мы загрузим (заpush’им) изменения на GitHub:
command-line
$ git push
Загружаем новый код на PythonAnywhere и перезапускаем веб-приложение
- Открой вкладку «терминалы» на PythonAnywhere и переключись на уже запущенную консоль Bash (или новую). Затем набери следующую команду:
PythonAnywhere command-line
$ cd ~/<your-pythonanywhere-domain>.pythonanywhere.com $ git pull [...]
Можешь понаблюдать, как твой код будет загружаться на сервер. Если хочешь проверить успешность процедуры — открой вкладку Файлы и просмотри свой код на PythonAnywhere.
- Наконец, переключись на вкладку Web и нажми кнопку Reload.
Обновления должны отобразиться на веб-сайте! Переключись на него и обнови страницу. Ты должна сразу заметить улучшения 🙂
HTML | PyCharm
PyCharm обеспечивает мощную поддержку HTML, включая подсветку синтаксиса и ошибок, форматирование в соответствии со стилем кода, проверку структуры, завершение кода, предварительный просмотр на лету во время сеанса отладки (Live Edit) или на специальной вкладке предварительного просмотра в редактор кода и многое другое.
Проверить подключаемый модуль HTML Tools
Эта функция зависит от подключаемого модуля HTML Tools . Плагин поставляется в комплекте с PyCharm, но если вы наблюдаете какую-либо неисправность, убедитесь, что плагин включен.
Обратите внимание, что плагин и поддерживаемые функции недоступны для PyCharm Community и Educational, они работают только в версии Professional.
Нажмите Ctrl+Alt+S , чтобы открыть настройки IDE и выбрать Плагины.
Откройте вкладку «Установлено», найдите плагин «Инструменты HTML» и убедитесь, что установлен флажок рядом с названием плагина.
Спецификация HTML настраивается с помощью параметра Уровень языка HTML по умолчанию в разделе Языки и платформы | Страница Schemas and DTD настроек IDE Ctrl+Alt+S . По умолчанию предполагается спецификация HTML 5.0 от W3C.
Создать файл HTML
В главном меню выберите Файл | Создать, а затем выберите HTML-файл из списка. PyCharm создает файл-заглушку на основе шаблона файла HTML и открывает его в редакторе.
Создание ссылок в файле HTML
Внутри тега
,или
PyCharm предлагает завершение пути к файлу,на который вы ссылаетесь.
В качестве альтернативы в окне инструмента «Проект» выберите файл JavaScript,CSS или изображение,на которое вы хотите сослаться,и перетащите его в файл HTML.PyCharm генерирует теги,
или
внутри
.Для тегов
PyCharm также генерирует атрибуты
ширины
ивысоты
.
Оборачивать фрагменты кода в теги
Выберите фрагмент кода для переноса и нажмитеCtrl+Alt+Tили выберите Код|Surround With из главного меню.
В списке выберите Обтекание тегом.PyCharm заключает выбор в пару квадратных скобок(
<>
и>
).Введите тег внутри открывающих скобок
<>
.PyCharm автоматически заполняет тег в закрывающих скобках>
.
Узнайте больше из Генерация кода.
Поиск документации
Для большинства тегов и атрибутов HTML PyCharm может показать вам сводку из соответствующей статьи MDN.Эта сводка отображается во всплывающем окне «Документация»,в котором также отображается статус устаревания тега или атрибута и информация о его совместимости с различными браузерами.
Если тег или атрибут доступны во всех версиях браузеров,PyCharm не показывает никакой информации о его совместимости.
В противном случае во всплывающем окне «Документация» также перечислены браузеры и их версии,поддерживающие тег или атрибут.
Совместимость проверяется только для Chrome,Chrome Android,Safari,Safari iOS,Firefox,Internet Explorer и Edge.
Если тег или атрибут устарели,всплывающее окно также информирует вас об этом статусе.
Просмотр документации по тегу или атрибуту
Поместите курсор на тег или атрибут и нажмитеCtrl+Qили выберите View|Быстрый поиск документации из главного меню.
Когда вы наводите указатель мыши на тег или атрибут,PyCharm немедленно отображает ссылку на него во всплывающем окне «Документация».
Вы можете отключить это поведение или настроить всплывающее окно так,чтобы оно появлялось быстрее или медленнее,см.раздел Настройка поведения всплывающего окна документации ниже.
Чтобы отключить автоматическое отображение документации при наведении указателя мыши на символы кода,щелкните всплывающее окно и отключите параметр «Показывать при перемещении мыши».
Чтобы всплывающее окно с документацией показывалось быстрее или медленнее,откройте диалоговое окно «Настройки/Настройки»(Ctrl+Alt+S),выберите «Редактор|Общие|Завершение кода,затем установите флажок Показать всплывающее окно документации и укажите время задержки.
Открытие документации MDN для тегов и атрибутов в браузере
Предварительный просмотр файлов HTML
Вы можете открыть вывод своего HTML-кода во встроенном предварительном просмотре PyCharm или во внешнем браузере по вашему выбору.
Функция предварительного просмотра зависит от встроенного веб-сервера PyCharm.Этот сервер всегда работает и не требует ручной настройки.Все файлы проекта обслуживаются на встроенном сервере с корневым URL-адресом http:
То,что вы устранили ошибки и поставили работающую программу,не означает,что вам следует расслабиться
Питер Уэйнер
Соавтор,Информационный Мир|
ThinkstockВы прогнали код через все тесты,и они вернулись зелеными.Конвейер непрерывной интеграции работал на всем протяжении.Все флажки в списке функций отмечены.Все заметки Post-it перемещены на завершенную часть стены.Фу.
Заманчиво сказать,что код закончен,и отправиться в отпуск.Ты заслужил это.Команда это заслужила.Пусть код немного сделает свое дело.Разве это не единственная причина,по которой мы это написали?Бросить его через стену,где он мог бы просто напевать и делать свое дело?
Увы,дни самодовольства и бездействия прошли.В эти дни никогда ничего не заканчивается.То,что вы выжали ошибки и поставили работающую программу,не означает,что вы должны расслабиться.Есть десятки вещей,которые вы все еще можете сделать,чтобы улучшить свой код.Некоторые из них являются признаком хорошего гражданина,который убирает для следующей команды.Некоторые из них представляют собой возможности для роста и захвата новых рынков.Некоторые из них являются началом нового пути.
Вот 16 вещей,которые нужно сделать,когда вы вернетесь после небольшого отдыха и восстановления.
[Также на JavaWorld:13 правил разработки безопасных приложений Java.]
Lint
Инструмент,называемый lint или linter,похож на робота для проверки кода,который обеспечивает соблюдение сотен семантических правил.Возможно,их тысячи.Некоторые были написаны одержимыми ругателями из секты программирования,которая считает пустые символы и ругает тех,кто использует слишком много или слишком мало.Некоторые из них были написаны серьезными людьми,которые заметили тонкие семантические паттерны,которые впоследствии могут привести к уязвимостям в системе безопасности.Ваша команда программистов,вероятно,выбрала набор линтеров,и сейчас самое время их запустить.
Профиль
Дон Кнут однажды сказал:«Преждевременная оптимизация — корень всех зол»,потому что глупо тратить время на улучшение тех частей кода,которые запускаются лишь изредка.Теперь,когда вы закончили программировать,пришло время запустить профилировщик и найти эти горячие точки.Часто бывает так,что 10 процентов кода выполняется 90 процентов времени.Иногда встречаются тугие внутренние петли,которые поглощают 99 процентов циклов.Если вы можете отметить их сейчас,несколько настроек действительно окупятся.
Удалить инструменты отладки
Заманчиво оставить параметры подробного ведения журнала,встроенные в производственный код,на всякий случай,но после запуска кода самое время удалить эти инструменты и отключить параметры отладки.Дополнительные данные загромождают компьютер и могут даже угрожать производительности,заполняя часть диска.Оставьте отладку за пределами рабочих серверов.
Анализ с помощью ИИ
Старые программисты использовали базовые регулярные выражения и операторы для поиска проблем;современные программисты также имеют инструменты искусственного интеллекта.Амазонка 9Например,0371 CodeGuru,как говорят,«использует модели машинного обучения» для поиска плохого кода.Это полностью автоматизированный процесс,основанный на профилировании и тщательном анализе.
Курировать данные
При создании приложения легко воспринимать базы данных и файлы журналов как должное.Теперь,когда вы закончили работу с приложением,пришло время приступить к оптимизации базы данных для повышения скорости и стабильности.Добавьте индексы в правые столбцы,чтобы ускорить поиск.Добавьте зеркальное отображение и своевременное резервное копирование для повышения стабильности после потери питания или сбоя диска.
Сейчас самое время сопоставить стоимость хранения и стоимость потери данных.Насколько ценны файлы журналов?Сколько они стоят в обслуживании?Сколько стоит географически распределенный план резервного копирования по сравнению с вероятностью катастрофического отказа центра обработки данных?На эти вопросы нелегко ответить,но как только вы поймете стоимость резервного копирования,вы сможете решить,сколько вы хотите играть.Это как оплачиваемая поездка в Лас-Вегас,только вы бросаете кости со своей карьерой и работой всех вокруг вас.
Оптимизация потока данных
Многие приложения могут извлечь выгоду из быстрого кэширования либо на сервере,либо в Интернете с помощью сети доставки контента.Добавление кэша распределенной памяти или интеграция CDN — один из самых простых способов повысить производительность для пользователей.
Оптимизация данных
Не все данные должны быть такими большими,как они есть.Изображения — одно из самых простых мест,где можно уменьшить размер,не слишком жертвуя.Стилистические детали,такие как сложные фоны,могут быть заменены инструкциями CSS для градиентной заливки,которые занимают небольшую часть дискового пространства и пропускной способности.Фотографы и художники часто любят хранить как можно больше информации и деталей на случай,если они им понадобятся,сохраняя изображения в формате RAW.Такие инструменты,какImageOptimудалит большую часть ненужных деталей ниже порога восприятия пользователя,а также удалит дополнительные значения EXIF,которые отслеживают постороннюю информацию,такую как объектив камеры.Результатом является более быстрая загрузка и более низкие счета за пропускную способность.
Добавление API
Многие архитекторы начинают с хорошо структурированного API для отделения внешнего кода дисплея от нижележащей бизнес-логики,но иногда есть хорошая возможность расширить использование кодовой базы,добавив еще одну дверь или окно..Наборы инструментов API,такие как Swagger,делают это относительно легко,предоставляя синтаксический анализ,маршрутизацию и даже документацию.Если у вас есть хорошие,чистые точки входа в ваш текущий блок кода,приклеивание их к новому API может открыть новые возможности для автоматизации и интеграции.
Объединение в библиотеку
Некоторый код,который вы пишете,будет иметь вторую,третью или,может быть,четвертую жизнь в качестве библиотеки,которая будет включена в другие проекты.Хороший архитектор предвидит некоторые из этих вариантов и вначале разделяет код на библиотеки,но иногда вдохновение приходит позже.Рефакторинг кода в библиотеку — хорошее начало для того,чтобы вдохнуть новую жизнь в работу.
Документ
Ха!Документация сегодня менее важна,чем раньше,но она по-прежнему полезна в правильных дозах.Если вы пишете хорошо структурированный код с заполненными подсказками именами переменных и простой структурой,коду не потребуется много локальных комментариев.Но все же полезно наметить основную роль каждого раздела и,возможно,указать,как данные проходят через код.Также полезно указать на некоторые потенциальные проблемы с кодом и проиллюстрировать,как код восстанавливается после исключений — если это так.
Разделение на микросервисы
Все больше и больше архитекторов берут свое грандиозное видение и разбивают его на части,понимая,что зачастую проще поддерживать несколько небольших приложений,чем одно большое.Разработчики могут работать над разными частями одновременно,кодируя и тестируя независимо друг от друга,прежде чем выполнить один окончательный интеграционный тест.Проекты часто разрастаются со временем,особенно когда вы добавляете дополнительные функции ближе к концу.Иногда преимущества разделения работы на более мелкие части становятся очевидными по мере приближения к финишу.
Containerize
Все больше и больше кода живет своей жизнью в образе контейнера,который указывает новые исходные файлы,а также разъясняет,какие библиотеки и другие службы требуются.Создание этого файла конфигурации в некоторых случаях может быть довольно простым,но есть много возможностей проявить смекалку.Некоторым командам нравится разбивать код на несколько контейнеров на случай,если некоторые из них можно будет использовать отдельно.Как правило,каждый микросервис живет в своем собственном контейнере,но у них может быть причина для совместного использования.Некоторые разработчики даже выступают за более экстремальные подходы,такие как созданиеотдельные контейнеры для каждого документа.Есть много места для дискуссий.
Развертывание на бессерверной платформе
Теперь,когда варианты бессерверных вычислений становятся все более распространенными,может оказаться разумным извлечь основные функции из вашего кода и развернуть их на бессерверной платформе,такой как AWS Lambda или Azure Functions.Счета рассчитываются по звонку,поэтому вы ничего не платите за периоды ожидания,когда нет входящего трафика.Если ваш код уже хорошо сконструирован и не требует никакого локального состояния,часто легко извлечь бизнес-логику из вашего приложения и преобразовать ее в простой вызов функции,используемый в бессерверной системе.
Развертывание на мобильных устройствах
В настоящее время большинство хороших веб-приложений создаются для мобильных дисплеев,и зачастую они настолько хорошо работают на смартфонах,что спрос на создание отдельных приложений становится все меньше и меньше.Кроме того,Интернет не заставляет разработчика преодолевать десятки препятствий и отзывов только для того,чтобы попасть в список App Store или Google Play.Но иногда есть веские причины превратить веб-приложение в родное приложение для iPhone или Android,и есть несколько хороших инструментов,которые упрощают переход,оборачивая веб-сервер встроенной версией браузера.
Пуристы будут утверждать,что запуск JavaScript на встроенной веб-странице на самом деле не является нативным,и они правы в том,что производительность может отставать для некоторых приложений,таких как интенсивные игры,но для многих приложений это самый простой способ получить что-то в магазинах.Есть и другие преимущества.Нативные приложения могут более тщательно контролировать доставку данных за счет локального кэширования больших блоков веб-сайта.Это может сэкономить пропускную способность как для разработчика,так и для мобильного пользователя,немного ускорив взаимодействие и немного снизив плату за пропускную способность.
Переместиться в Интернет
В большинстве случаев гораздо труднее двигаться в другом направлении и преобразовать приложение в веб-сайт.Если вы не использовали один из наборов инструментов,предназначенных для веб-кодирования,вам в основном придется переписывать нативный код,написанный на Java,Swift или Objective-C.Тем не менее,сборка для веб-браузера может дать вам свободу от тирании отзывов в магазине приложений,а также возможность обслуживать настольные компьютеры с помощью одного и того же кода.
Продолжайте в том же духе
Какой-то умный программист переименовал идею переписать наш код,потому что слово «переписать» звучит так,будто вы допустили ошибку в первый раз.«Рефакторинг» звучит лучше.Рефакторинг не допускает предыдущих ошибок,и это облегчает эго.Процесс улучшения кода,часто небольшими прыжками,рекомендуется начинать сразу после того,как вы «закончите».Небольшие улучшения и исправления можно сразу вносить в код.
Многие команды постоянно рефакторят,выпускают или развертывают новые версии ежедневно или даже ежечасно.Сами по себе эти небольшие изменения кажутся несущественными,но в течение недель и месяцев они приводят к значительным улучшениям.Итерации случаются так часто,что начинают стирать грань между завершением кода и его повторным запуском.Это всего лишь один непрерывный цикл улучшения и развертывания.
Связанный:
- Разработка программного обеспечения
- Ява
- Карьера
Copyright © 2020 IDG Communications,Inc.
Как выбрать платформу разработки с низким кодом
Понимание HTML5 и CSS3 для веб-дизайна
Поделиться
- Доля
- Твитнуть
- Поделиться
- Приколи
ПрограммированиеСинди Лау • 27 июня 2012 г.• 6 минут ПРОЧИТАТЬ
Обычный посетитель может не заметить их в готовом продукте,но для веб-разработчика эти небольшие кусочки кода HTML и CSS — это все,что они собрали вместе в финальной версии.показывать.HTML5 и CSS3дает веб-разработчику еще больше инструментов для самовыражения.Вот общий обзор того,что они из себя представляют,чтобы вы могли создавать передовые веб-сайты.
Тег навигации
Заголовки и колонтитулы
Видео,аудио и вывод
Статьи
Холст
Рисунки и подписи
Подробности
Использование CSS3
Селекторы псевдоклассов и атрибуты
Селекторы атрибутов соответствия подстроки
Тег навигации
Это часто упускаемая из виду область HTML5.Короче говоря,вы всегда должны пытаться заключать релевантные ссылки в теги Nav(«
SEO(поисковая оптимизация)предназначен для того,чтобы популярные поисковые системы,обычно Google,выявляли ваш сайт в своих списках.Чем выше вы окажетесь в этом списке,тем больше онлайн-трафика вы,вероятно,получите и тем больше бизнеса вы можете ожидать.
Google просматривает внутренние ссылки,чтобы определить,по каким поисковым запросам вас следует найти.Ссылки в вашей навигации,вероятно,будут хорошим указанием для поисковых роботов,а использование тега Nav означает,что вы явно говорите«это самые важные ссылки на веб-сайте»и помогаете ботам понять,о чем ваш сайт.Это не означает,что вы будете наказаны за неиспользование тега Nav,но вы должны приложить все усилия,чтобы помочь поисковым роботам любым доступным вам способом.
Верхние и нижние колонтитулы
Эти теги довольно просты,но служат важной цели.Верхние и нижние колонтитулы(«
Верхний и нижний колонтитулы отличаются от простого тега
Видео,аудио и вывод
Мультимедиа становится все более популярным среди пользователей,и прошли те времена,когда посетители могли получать информацию только в виде текста.Теги для видео(«
Аналогичным образом HTML5 использует теги вывода(«
Статьи
Предложение вашим посетителям выбора в том,как они будут использовать ваш контент,важно,если вы хотите привлечь все различные типы потребителей.Для тех,кто любит хорошие статьи,есть тег статьи(«<статья>»).
Разработчики могут использовать тег статьи для разметки отдельных фрагментов контента,таких как сообщение в блоге,что снижает потребность в бесконечных тегах Div.Дальнейшее разделение основного текста веб-сайта после заголовка и перед нижним колонтитулом с помощью тега Article означает более четкий код и потенциальную оптимизацию для поисковых систем.
Тег Article,вероятно,является одним из самых полезных тегов с точки зрения SEO.Хотя на данный момент еще ничего не установлено,вполне вероятно,что сканеры поисковых систем будут использовать эти теги,чтобы понять контент на вашем сайте и соответствующим образом взвесить его в алгоритме.Google любит контент,и,помещая свой текст в тег статьи,вы сообщаете Google,что у вас есть контент на сайте,который поможет вашему сайту подняться выше.Также может случиться так,что ключевые слова/якорные тексты в теге статьи будут иметь больший вес,чем ключевые слова вне тега статьи,поскольку вы сообщаете роботам поисковых систем,что написали конкретный контент о поисковом запросе.Вы также можете помочь своим усилиям по SEO,присвоив статье атрибуты Title(«
Canvas
Используемые для вставки различной графики теги canvas(«
Рисунки и подписи
Эти два элемента идут рука об руку и значительно сокращают длительный процесс.Используя тег рисунка(«
Вы также можете использовать эти теги для целей,аналогичных верхним и нижним колонтитулам,статьям и разделам.
Подробнее
Если вы не слышали об этом,то это потому,что это все еще не основная функция,но,тем не менее,становится все более и более распространенной.Короче говоря,детали(«<детали>»)позволяют легко включать выпадающий текст.
Выпадающий текст имеет множество преимуществ.Они не дают страницам выглядеть загроможденными,поэтому вы можете сосредоточиться только на том,чтобы сохранить на странице только релевантную информацию.Вы даже можете определить,сколько посетителей искали дополнительную информацию с помощью JavaScript,и скорректировать свои маркетинговые усилия на основе данных.
Использование CSS3
Каскадные таблицы стилей,или CSS,— это язык таблиц стилей,который можно использовать вместе с HTML5.CSS2 в настоящее время используется консорциумом World Wide Web Consortium(известным как W3c)— организацией,которая проверяет лучшие коды,используемые в Интернете.Последний стабильный моментальный снимок их разработки CSS был в 2010 году.Однако в настоящее время W3c работает над внедрением CSS3;несколько модулей уже одобрены.
CSS3 позволяет больше сосредоточиться на презентации веб-сайта,оставляя HTML5 для общей структуры.CSS3 предлагает новейшие преимущества шрифтов,цветов и различных функций фона и границ.
Однако следует отметить,что не все браузеры совместимы с CSS3.Некоторые из них эффективны с определенными модулями,а некоторые нет.Firefox,например,в настоящее время не поддерживает отражения.Safari и Chrome,с другой стороны,поддерживают все,кроме прокрутки переполнения;к сожалению,в настоящее время ни один из основных веб-браузеров не поддерживает этот модуль.
В самом низу шкалы Internet Explorer поддерживает очень мало модулей,хотя в последних версиях наблюдается улучшение этого показателя.Вот подробная таблица поддержки браузерами CSS3.
Селекторы псевдоклассов и атрибуты
Селекторы псевдоклассов можно использовать для добавления дополнительной информации о функциях к тегам и разделам.Их легко узнать,так как перед ними стоит двоеточие.Hover,например,— это простой селектор,который может добавлять отображаемый текст при наведении указателя мыши на заданный тег.