Товаров: 0 (0р.)

Правила формирования имен сайтов: Электронная тетрадь Лукьяновой Натальи: Домашнее задание №3.

Содержание

руководство для программиста / Блог компании NIX / Хабр

Перевод Naming 101: Programmer’s Guide on How to Name Things.

Присвоение имён — одна из главных трудностей в разработке. Невозможно подсчитать, сколько времени мы тратим на обдумывание имён и на попытки разобраться в коде с плохими именами. И не важно, объекты это, методы, классы или что-то другое. Считается доказанным фактом, что мы тратим больше времени на чтение кода, а не на его написание, поэтому хорошие правила присвоения имён в будущем облегчат вам жизнь.

Хорошие имена делают код лучше и чище. Они помогают интуитивно определять, за что отвечает каждая часть кода. В будущем другим разработчикам будет легче читать ваш код, да и вам самим тоже.

Ниже объясним важность хороших правил присвоения имён и поделимся полезными советами.

Уровень абстракции


Методам и переменным нужно присваивать имена в соответствии с их назначением. Прежде чем выбирать имя, поймите, за что отвечает этот кусок кода.

Давайте разберём ситуацию, когда метод возвращает строковое значение расстояния между Варшавой и Парижем:

class DistancePresenter
  def to_s
    'The distance between Warsaw and Paris is 1591 km'
  end
end

Код простой, и вроде бы работает правильно. А если немного поменять требования? Скажем, нужно отображать расстояние в километрах и милях. Для этого введём переменную класса взамен ключевого слова km в методе to_s.

Новую переменную нужно назвать на один уровень абстракции выше её значения. Это значит, что в первую очередь нужно думать о назначении переменной. Это поможет давать более общие имена, но в то же время не слишком причудливые. Иными словами, имя должно предполагать назначение переменной, а не её возможные значения.

Так за что отвечает наша новая переменная? Она предоставляет объекту слова km или mi. Так что назвать переменную можно

kilometers_or_miles, но такое наименование будет на том же уровне абстракции, что и сами значения переменной. Если нам нужна возможность использовать другие единицы измерения (к примеру, дни), то имя kilometers_or_miles будет неверным. Нужно что-то более общее. Раз километры и мили — это единицы измерения, то можем назвать переменную unit. Получается на один уровень абстракции выше (более общее название), чем назначение переменной. Новая реализация класса:

class DistancePresenter
  def initialize(unit)
    @unit = unit
  end
  
  def to_s
    "The distance between Warsaw and Paris is 1591 #{unit}"
  end
  
  private
  attr_reader :unit
end

Расстояние между Варшавой и Парижем 1591 км, но в милях получается 988. Нужно реализовать метод, возвращающий правильное значение. Правило такое же, как и в случае с переменной unit. Давайте сначала подумаем о решаемой задаче. Новый метод должен возвращать значения 1591 или 988. Не важно, как метод будет это делать. Можно было бы назвать его distance_warsaw_paris, но получится тот же уровень абстракции, что и у переменной. То есть имя метода будет предполагать возвращаемые значения. Слишком подробно.

В будущем города могут поменяться, к примеру, на Нью-Йорк и Лондон. Тогда имя distance_warsaw_paris

устареет, а менять его по всему коду будет трудозатратно. Лучше назвать просто distance. Именно то, что нужно: на один уровень абстракции выше тела метода.

Теперь наши методы выглядят так:

class DistancePresenter
  def initialize(unit)
    @unit = unit
  end
  
  def to_s
    "The distance between Warsaw and Paris is #{distance} #{unit}"
  end
  
  private
  attr_reader :unit
  
  def distance
    if unit == 'km'
      1591
    else
      998
    end
  end
end

Уровень абстракции и имена классов


Методы и переменные нужно называть на один уровень абстракции выше, чем их тела, но именование классов подчиняется другому правилу. При создании класса нам не нужно думать о будущем. Именовать класс нужно на основе текущих предположений. Мы не предполагаем, что машина может обрести свойства лодки. Следовательно, если сейчас приложению требуется машина, то класс нужно назвать
Car
, а не Vehicle.

Дочерние классы нужно именовать таким же образом. Если у нас есть класс Car, можно добавить специфическую версию, например, CarPickup для машин Car с большей грузоподъёмностью.

То есть правило, согласно которому именовать нужно на один уровень абстракции выше содержимого, применимо к методам и переменным, но не классам.

Принцип единственной обязанности


Один из SOLID-принципов гласит, что каждый модуль или класс должен отвечать за что-то одно. Гораздо проще выбирать имя элементу, если у него лишь одна функция.

Например, единственная обязанность бутылки — быть контейнером для жидкостей. Не нужно наделять бутылку возможностью двигаться или делать что-то другое, для чего она не предназначена (в приложении). Как бы вы назвали контейнер для жидкостей, который может двигаться? Не так это легко, и бутылка — довольно простой пример. Вместо того, чтобы плодить ходячие (а затем, возможно, танцующие, бегающие и говорящие) бутылки, лучше придерживаться принципа единственной обязанности. Создайте один класс для контейнера под жидкости, назовите Bottle, а потом создайте класс для перемещения бутылки — BottleCarrier
.

Принцип единственной обязанности применим и к переменным. Каждая переменная должна делать что-то одно, будь она хоть переменной метода, класса или переменной иного типа. Как и в случае с классом, гораздо проще выдумать имя переменной, которая отвечает за что-то одно.

Разбивайте всё на более мелкие части


Хорошая архитектура неотделима от хорошего присвоения имён. Если вы понимаете, какую задачу решает элемент, вам будет легче подобрать ему имя. Есть полезная методика, помогающая создавать хорошую архитектуру: разбивайте каждую часть вашей задачи на более мелкие подзадачи. Тогда выбирать имена будет быстрее и проще.

Задумайтесь, разве не лучше давать имена модулям и объектам, когда вы знаете их назначение? Допустим, нужно описать машину. Трудно в одном классе перечислить каждую функциональность, но если разделить на много маленьких частей, то получим классы

Wheel, Tire, steeringWheel и другие, отражающие всевозможные компоненты машины. Этим маленьким компонентам легче подбирать имена, а их назначение легко определить. Так что если вам трудно даются имена компонентов, вероятно, у архитектуры какие-то недостатки.

Итог


Каждое хорошее имя, подобранное для переменной, метода, объекта или класса, рано или поздно облегчит вам жизнь. В этой статье показано несколько простых методик, которые помогут вам выбирать хорошие имена:
  • Поднимайтесь на один уровень абстракции выше тела элемента (за исключением имён классов).
  • Имя класса должно описывать его обязанность.
  • Уважайте принцип единственной обязанности (одно из SOLID-правил).
  • Разбивайте задачу на более мелкие подзадачи.

Выбор хороших имён не должен вызывать затруднения. Рекомендуем потратить время на подбор правильных имён, оно того стоит.

* * *

На эту статью вдохновила книга “99 Bottles of OOP”, написанная Сэнди Метц и Катриной Оуэн. Хорошая книга. Из неё можно узнать много полезного, в том числе о хороших методиках рефакторинга кода.

Соглашение по именованию / Методология / БЭМ

Имя БЭМ-сущности уникально. Во всех технологиях (CSS, JavaScript, HTML) одна и та же БЭМ-сущность всегда называется одинаково. Основная идея соглашения по именованию — вложить смысл в имена и сделать их максимально информативными для разработчика.

Можно сравнить одно и тоже имя CSS-селектора, написанное разными способами:

  • menuitemvisible

  • menu-item-visible

  • menuItemVisible

Чтобы понять смысл первого имени, нужно вчитаться в каждое слово. В последних двух примерах имя явно разделяется на логические части. Но ни одно из имен пока не помогает точно определить, что menu — это блок, item — элемент, а visible — модификатор. Чтобы имена сущностей были однозначными и понятными, в БЭМ были разработаны правила формирования имен БЭМ-сущностей.

Правила формирования имен

block-name__elem-name_mod-name_mod-val

  • Имена записываются латиницей в нижнем регистре.

  • Для разделения слов в именах используется дефис (-).

  • Имя блока задает пространство имен для его элементов и модификаторов.

  • Имя элемента отделяется от имени блока двумя подчеркиваниями (__).

  • Имя модификатора отделяется от имени блока или элемента одним подчеркиванием (_).

  • Значение модификатора отделяется от имени модификатора одним подчеркиванием (_).

  • Значение булевых модификаторов в имени не указывается.

Важно! В методологии БЭМ не существует элементов элементов. Правила именования запрещают создавать элементы элементов, но в DOM-дереве элементы можно вкладывать друг в друга.

Примеры

В HTML БЭМ-сущности представлены атрибутом class. В БЭМ во всех технологиях происходит обращение к классу:

Примеры правил формирования имен приведены на CSS.

Имя блока

menu

Почему префиксы в именах блока не нужны?

HTML

<div>...</div>

CSS

.menu { color: red; }
Имя элемента

menu__item

Важно! Имена одинаковых элементов одного и того же блока совпадают. Например, все пункты в блоке меню называются menu__item.

HTML

<div>
  ...
  <span></span>
</div>

CSS

.menu__item { color: red; }
Имя модификатора блока

menu_hidden

menu_theme_islands

HTML

<div>...</div>
<div>...</div>

CSS

.menu_hidden { display: none; }
.menu_theme_islands { color: green; }
Имя модификатора элемента

menu__item_visible

menu__item_type_radio

HTML

<div>
  ...
  <span>...</span>
</div>

CSS

.menu__item_visible {}
.menu__item_type_radio { color: blue; }

Альтернативные схемы именования

Описанные выше правила формирования имен — это классическая схема именования БЭМ-сущностей. Все инструменты БЭМ по умолчанию настроены на классическую схему.

Существуют альтернативные схемы именования, которые активно используются в БЭМ-сообществе. Чтобы во всех технологиях применять одинаковые имена, созданные по альтернативным схемам, используйте инструмент bem-naming. По умолчанию bem-naming содержит настройки соглашения по именованию, предложенного методологией, но позволяет добавлять правила для применения альтернативных схем.

Стиль Two Dashes

block-name__elem-name--mod-name--mod-val

  • Имена записываются латиницей в нижнем регистре.

  • Для разделения слов в именах БЭМ-сущностей используется дефис (-).

  • Имя элемента отделяется от имени блока двумя подчеркиваниями (__).

  • Булевые модификаторы отделяются от имения блока или элемента двумя дефисами (--).

  • Значение модификатора отделяется от его имени двумя дефисами (--).

Важно! Двойной дефис внутри комментария (--) может вызвать ошибки при валидации HTML-документа.

Стиль CamelCase

blockName__elemName_modName_modVal

  • Имена записываются латиницей.

  • Каждое слово внутри имени пишется с заглавной буквы.

  • Разделители элементов и модификаторов совпадают с классической схемой.

Стиль React

BlockName-ElemName_modName_modVal

  • Имена записываются латиницей.

  • Имена блоков и элементов пишутся с заглавной буквы. Имена модификаторов — со строчной.

  • Каждое слово внутри имени пишется с заглавной буквы.

  • Имя элемента отделяется от имени блока одним дефисом (-).

  • Разделители имени и значения модификаторов совпадают с классической схемой.

Стиль No-namespace

_available

  • Имена записываются латиницей.

  • Имя блока или элемента перед модификатором не указывается.

Такая схема именования ограничивает использование миксов, так как не дает возможности определить, к какому блоку или элементу относится модификатор.

Ваша схема именования

Можно создать собственную схему именования БЭМ-сущностей. Важно, чтобы разделители в новой схеме давали возможность на программном уровне отделять блоки от элементов и модификаторов.

Правила составления имен в MySQL

Работая с базами данных мы постоянно обращаемся как к самим БД, так и к их составляющим. Для избежания ошибок, связанных с синтаксически неверным наименованием элементов, мы рассмотрим в этой статье какие существуют правила и ограничение на создание имен в MySQL.

На подбор имени элемента, с которым мы работаем, может оказывать влияние ряд факторов, ключевыми среди которых являются:

  • Ограничения по набору символов, которые могут быть использованы
  • Ограничения по количеству символов
  • Контекст в котором используется имя
  • Режим в котором работает сервер, на котором расположена наша СУБД

Теперь рассмотрим их подробнее:

Символы, которые мы можем использовать

К допустимым относят:

  • Все цифры и буквы, которые используются и корректно распознаются на сервере
  • Значок доллара «$»
  • Значок нижнего подчеркивания «_»

Обратите внимание, что все символы мы можем использовать в любом порядке, начиная названия как с чисел и букв, так и со спецсимволов.

Ограничением в именах столбцов будет необходимость наличия в имени кроме цифр еще букв или оговоренных выше символов. Поскольку если имя будет составлено исключительно из цифр, то оно практически ничем не будет отличаться от простого числа для сервера. Мы же хотим избежать подобных казусов в нашей работе?

Ограничением в именах псевдонимов будет только то, что в случае появления в коде псевдонима только из цифр, с пробелами или же тождественного какому-либо ключевому слову MySQL, возникает необходимость заключить его в кавычки.

К ограничениям имен баз данных и таблиц помимо двух вышеперечисленных относится следующие:

  • Запрещено использовать в именах точки. Даже если имя заключено в кавычки. Это связанно с тем, что сервер считывает точку как специальный разделитель, что в конечном итоге ведет к ошибкам.
  • Запрещено использовать слеши « /» «\». При их появлении в имени появляется ошибка связанная с тем, что сервер некорректно считывает символы запрещенные в именах файлов и каталогов операционных систем, на которых он работает.

Длина, которой могут достигать имена

  • 64 символа – максимально допустимый размер для имен БД, таблиц, столбцов и индексов.
  • 256 символов — максимально допустимый размер для псевдонимов.

Обращения по именам (квалификаторы)

Базы данных

Выбрать вариант обращения к БД проще всего, поскольку он у нас всего один – просто указание имени…

Таблицы
  • Обращение к таблице по полностью квалифицированному имени:
    SHOW TABLES FROM db_name.tbl_name
  • Указать просто имя таблицы, при таком варианте сервер обратится к текущей базе данных. (Осторожно! Если текущая база данных не определена, то такое обращение вызовет ошибку в коде)
Столбцы
  • Аналогично таблицам мы можем использовать в обращении полностью квалифицированное имя: При таком варианте у нас в запросе четко определены как БД, так и таблица со столбцом к которым мы обращаемся: db_name.tbl_name.col_name
  • При использовании частично квалифицированного имени мы указываем таблицу и столбец, но не указываем БД: tbl_name.col_name
  • Не квалифицированные имена. Это наиболее распространенная форма запросов, поскольку необходимости в их полной квалификации зачастую просто нет. Стоит только помнить, что в обработке запроса будет участвовать текущая БД. Для доступа к данным из другой БД нам нужны более квалифицированные запросы.
    SELECT last_variable FROM mytable

Режим работы сервера

Если при запуске сервера были заданы параметры —ansi или —sql-mode=ANSI_QUOTES при составлении имен могут быть использованы и обычные двойные кавычки «”».

Оценок: 3 (средняя 4.3 из 5)

  • 6255 просмотров

Понравилась статья? Расскажите о ней друзьям:

Еще интересное

Несколько доменных имен для сайта: как это правильно сделать

Сайт может иметь несколько доменных имен (псевдонимов), в принципе, их количество ограниченно только здравым смыслом. Но зачастую создание синонимов существующего доменного имени вызвано практической необходимостью, например, наиболее распространенный случай – старое доменное имя было получено у провайдера и является доменным именем третьего уровня (например, site.ural.ru), оно известно многим клиентам и партнерам организации и ликвидировать его нельзя, но оно не принадлежит организации, трудно написуемо, непрестижно, и вкладывать деньги в его продвижение – неразумно.

Рекомендуется зарегистрировать доменное имя второго уровня (например, site.ru) и сделать его синонимом существующего. Важно сделать это правильно, так чтобы поисковые машины индексировали такой сайт как один сайт, а не как три сайта:

  • site.ural.ru
  • site.ru
  • www.site.ru

Ваши действия:

  1. Зарегиструйте доменное имя site.ru на вашу организацию, действуя в рамках договора вашей организации с RU-CENTER (www.nic.ru) либо в рамках вашего договора с партнером RU-CENTER.
  2. Ваш сайт существует на каком-либо хостинге, необходимо «привязать» новое доменное имя к этому хостингу.
  3. Обратитесь к администрации хостинга для предоставления DNS серверов (минимум двух) для поддержки домена. Также попросите прописать адресные записи (A) с IP адресом, ведущим на site.(.*)$ http://www.site.ru/$1 [NC,R=301,L]
  4. служит для редиректа зеркал сайта на основной, т.е. если у вас есть сайты www.site.ru и site.ural.ru, то, указав такой код, вы создаете ситуацию, когда пользователь, набрав в адресной строке site.ural.ru, попадет на site.ru

    Замечание!!! Метод применим для хостингов, использующих сервер apache с поддержкой модуля Rewrite (mod_rewrite).
    Создайте файл «robots.txt » в корне сайта, где укажите:

    • User-Agent: *
    • Host: www.site.ru

    После того, как вы сделаете все вышеуказанное:

    • какое бы доменное имя не набрал бы пользователь в адресной строке, оно мгновенно сменится на главное www.site.ru.
    • поисковые машины проиндексируют именно тот домен, который вы захотите — www.site.ru.

    Business Name Generator — БЕСПЛАТНЫЙ генератор названия компании для вашего стартапа или веб-сайта от Getsocio

    Независимо от того, создаете ли вы запоминающийся веб-сайт, новый стартап, интернет-магазин или любой малый бизнес, важным шагом является выбор имени. А в мире, где находятся миллионы сайтов и компаний, это не так просто, как кажется. Особенно, если богиня искусства Муза, похоже, не торопится и у вас кончились идеи. Если вы думаете о найме профессионала, мы хотели бы убедить вас в обратном.Создайте крутой бренд или название магазина с помощью бесплатного генератора названий компаний Getsocio.

    Генератор имени запуска

    Наш классный генератор имен никогда не устает. Этот инструмент может безостановочно в считанные минуты проводить мозговой штурм по ключевым словам для компаний.

    Генератор имен веб-сайтов

    Конструктор имен дает вам довольно хорошее представление о названии вашего сайта.Даже незнакомая фраза может вдохновить и дать свежие мысли.

    Генератор торговых марок

    Приложение помогает создать уникальный бренд, бесплатно генерирует неограниченное количество случайных идей в Интернете, предлагает лучшие идеи названия магазина.

    5 советов, как увеличить ваши шансы на успех в поиске имен для вашего бизнеса

    1. Чем проще написание, тем легче его найти, тем меньше ошибок он сделает при вводе.
    2. За основу возьмите построение из первых букв вашего имени / фамилии.
    3. Комбинируйте слова. Вы можете зашифровать имя основателя или ингредиенты, содержащиеся в вашем продукте.
    4. Переведите идею вашего бизнеса на другие языки.
    5. Вовлеките своих родственников и друзей в поиск идей для названия компании.Пусть вам помогут выбрать самый крутой и креативный из списка, предложенного создателем имени Getsocio.


    Введите все идеи одну за другой в средство создания имен Getsocio и посмотрите, что у вас есть. Желаем удачи.

    Правил для единой политики разрешения споров о доменных именах («Правила»)

    Перейти к основному содержанию
      • Поиск на ICANN.org

      • Войти
      • Зарегистрироваться
      Приступить к работеРуководство для начинающихПрограмма для новичковПрограмма стипендийИстория Новости и MediaAnnouncementsBlogFor JournalistsGlobal NewslettersLegislative / Нормативные ReportsMultimediaRegional Отчеты PolicyICANN PolicyDevelop PolicyImplement PolicyPolicy UpdateParticipateTeam общественного CommentOpenRecently ClosedUpcomingArchive ResourcesBoardAccountability & TransparencyRegistrarsRegistry OperatorsDomain Имя RegistrantsContractual ComplianceComplaints OfficePrivacy & Proxy ServicesHelpCareers CommunityGroupsCalendar IANA попечительские
      & Accountability Факт SheetIANA попечительского TransitionEnhancing ICANN AccountabilityImplementationCustomer Постоянного CommitteeRoot зона Комитет Эволюция Обзор

      Ресурсы 9 0003

      • Об ICANN
        • Обучение
          • Информационные бюллетени
          • Руководства для начинающих
          • Аббревиатуры и термины
          • Подкасты
            • Архив
        • Участвуйте
          • Что делает ICANN
          • Влияние на Интернет
          • Что происходит сейчас
          • Как принять участие
          • Программа для новичков
          • Стипендии
            • Комитет
            • Положения и условия
        • Уголок президента
        • Организационная структура управления ICANN
        • Персонал
        • Карьера
        • В фокусе
          • Непрерывность
          • DNSSEC
            • Стандарты
            • Информация о корне IANA DNSSEC
            • Отчет DNSSEC TLD
            • Корневое развертывание
            • Карта развертывания
            • График развертывания
            • Инструменты
            • Обучение
            • Key Ceremony
            • Новости
            • Сообщения в блоге
            • Pre рассылки
            • Связанные сайты
          • Улучшения GNSO
          • Поддержка командировок
          • Рекомендации группы проверки политики WHOIS — внедрение
        • Для журналистов
          • Выпуски и рекомендации
          • Ресурсы
      • Правление
        • Деятельность Правления
        • Деятельность комитетов
          • Отчеты о деятельности комитетов
            • 2016
        • Решения
        • Рекомендации Совету директоров
        • Заседания Совета директоров
          • 2020
          • 2019
          • 2018
          • 2017
          • 2016
          • 2015
          • 2014
          • 2013
          • 2012
          • 2011
          • 2010
          • 2009
          • 2008
          • 2007
          • 2006
          • 2005
          • 2004
          • 2003
          • 2002
          • 2001
          • 2000
          • 1999
          • 1998
        • Комитеты Совета директоров
          • Комитет по аудиту
          • Комитет по вознаграждениям
          • Исполнительный комитет
          • Финансовый комитет
          • Комитет по управлению
          • Комитет по организационной эффективности
            • Влияние программы New gTLD
          • Комитет по рискам
          • Технический комитет
          • Подотчетность Комитет по механизмам
          • Прошлые комитеты
        • Рабочие группы Правления и собрания
          • Списки членов рабочих групп Правления
          • Правление RDS WG
          • Списки членов Правления
      • Подотчетность
        • Механизмы подотчетности
          • Пересмотр
          • Независимый Процесс обзора
            • Обновление IRP
          • Омбудсмен
            • О
            • Программа
            • Структура
            • Стандарты практики
            • Уважительное общение
            • Отчеты
            • Выступления
            • Ссылки
            • Вопросы
          • Сообщество с полномочиями
            • Администрация сообщества с полномочиями
            • Список рассылки с полномочиями администратора сообщества
            • Переписка с полномочным сообществом
          • Раскрытие документов
            • Политика раскрытия информации
            • Процесс ответа DIDP
        • Обзоры
          • Начало работы
          • Организационные проверки
            • ALAC
            • ASO
            • Правление
            • ccNSO
            • GNSO
            • Комитет по назначениям
            • RSSAC
            • SSAC
            • Группа технических контактов
          • Специализированные обзоры
            • Подотчетность и прозрачность
            • Служба регистрационного каталога
            • Безопасность, стабильность и отказоустойчивость
            • Конкуренция, доверие потребителей и выбор потребителей
            • Показатели CCT
        • Ожидаемые стандарты поведения
        • Улучшение подотчетности и управления ICANN
      • Управление
        • Управляющие документы
          • Руководства
          • Учредительный договор
            • Текущий
            • Архив
          • Устав
            • Текущий Устав
            • Архив
            • Кодекс поведения Правления
            • Политика Правления в отношении конфликтов интересов
            • Заявления Правления о заинтересованности
            • Раскрытие информации о лоббировании и отчеты о взносах
            • Сводка по рассмотрению конфликтов интересов и этических практик
          • Развитие MSM ICANN
          • Соглашения
            • NTIA Передача координирующей роли в исполнении функций IANA
              • Призыв к участию общественности: проект процесса разработки предложения (8 апреля — 8 мая 2014 г.)
              • Процесс разработки предложения и дальнейшие действия
            • Реестр
              • Архив
            • Подтверждение обязательств
              • Отслеживание AOC
            • ccTLD
            • Партнерские меморандумы о взаимопонимании
            • Регистратор
              • Архив
          • Годовые отчеты
          • Финансовые показатели
            • Финансовые отчеты
            • Политики, руководящие принципы и процедуры
          • Планирование
            • Стратегический план
            • Пятилетний операционный план
            • Годовой операционный план и бюджет
            • Отчетность о достижениях и прогрессе
              • Непрерывное улучшение
              • Информационная панель Бета
              • Система управления портфелем

      HTML Списки


      Списки HTML позволяют веб-разработчикам группировать набор связанных элементов в списки.


      Пример

      Упорядоченный список HTML:

      1. Первая позиция
      2. Второй предмет
      3. Третий объект
      4. Четвертый объект
      Попробуй сам »

      Неупорядоченный список HTML

      Неупорядоченный список начинается с тега

        . Каждый элемент списка начинается с
      • тег .

        По умолчанию элементы списка будут отмечены кружками (маленькими черными кружками):


        Упорядоченный список HTML

        Упорядоченный список начинается с тега

          .Каждый элемент списка начинается с тега
        1. .

          По умолчанию элементы списка будут отмечены цифрами:


          Списки описаний HTML

          HTML также поддерживает списки описаний.

          Список описаний — это список терминов с описанием каждого термина.

          Тег

          определяет список описаний, тег
          определяет термин (имя), а тег
          тег описывает каждый термин:

          Пример


          Кофе

          — черный горячий напиток

          Молоко

          — белый холодный напиток

          Попробуй сам »

          Теги списка HTML

          Тег Описание
            Определяет неупорядоченный список
              Определяет упорядоченный список
            1. Определяет элемент списка
              Определяет список описаний
              Определяет термин в списке описания
              Описывает термин в списке описания


              .

      Добавить комментарий

      Ваш адрес email не будет опубликован. Обязательные поля помечены *