Как сделать надпись на изображение при верстке. Пишем текст поверх изображения

  • Изменение вида стандартного маркера для нумерованных списков
  • Установка типа маркера для маркированных списков
  • Установка изображения вместо маркера для элементов списка

С помощью HTML-тегов можно создать два типа списков, имеющих маркеры: нумерованные и маркированные . По умолчанию большинство браузеров отображает маркеры маркированных списков в виде окружности, а маркеры нумерованных в виде чисел, идущих по порядку. CSS предоставляет возможность изменения внешнего вида стандартных маркеров. Далее будут продемонстрированы примеры с различными видами маркеров, с помощью которых, вы сможете изменить внешний вид своих списков.

Изменение и удаление маркеров

Для изменения стандартного внешнего вида маркера в CSS используется свойство list-style-type , в качестве значения задается тот вид маркера, на который вы хотите заменить стандартный.

Пример, демонстрирующий некоторые виды маркеров для нумерованных списков:

CSS Свойство:

list-style-type:

Результат:

  1. Кликните на значение свойства list-style-type
  2. Наблюдайте за сменой маркеров
  3. Используйте для своих списков наиболее подходящие маркеры

Ol#myList {
list-style-type: decimal ;
}

Кликните на любое значение свойства, чтобы увидеть результат

Для маркированных списков существует всего три вида маркеров, которые можно задать с помощью значений circle, disk и squred:

Название документа

  • Кофе
  • Чай
  • Кофе
  • Чай
  • Кофе
  • Чай
Попробовать »

С помощью значения none можно удалить маркеры у пунктов в списке, но отступ слева при этом все равно останется:

Название документа

  • Кофе
  • Чай
  1. Кофе
  2. Чай
Попробовать »

Замена маркеров картинками

Если вам не подходит ни один из предлагаемых по умолчанию маркеров, то CSS предоставляет возможность заменить их любой картинкой, в этом вам поможет свойство list-style-image , в значении которого нужно прописать путь к выбранному изображению.

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

Название документа

  • Кофе
  • Чай
  1. Кофе
  2. Чай
Попробовать »

Отступ списка

При удалении маркеров у пунктов списка можно также удалить или уменьшить размер левого отступа, устанавливаемый браузером по умолчанию. Для полного удаления отступа нужно будет воспользоваться свойством padding-left , которое позволяет регулировать внутренний отступ:

Название документа

  • Кофе
  • Чай
  1. Кофе
  2. Чай
Попробовать »

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

  • , а просто скрываются за краем окна браузера.

    Свойство list-style-position указывает, должен ли маркер располагаться внутри или снаружи пунктов списка. Данное свойство может принимать два значения:

    • outside - маркер располагается слева от содержимого (является значением по умолчанию)
    • inside - маркер располагается внутри пункта списка вместе с содержимым

    Теперь можно переписать предыдущий пример так, чтоб отступ с левой стороны был убран, но маркеры при этом не уезжали за край браузера:

    Название документа

    • Кофе
    • Чай
    • Кофе
    • Чай
    • Кофе
    • Чай
    Попробовать »

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

    Задача

    Изменить вид маркеров в списке и заменить их на другой символ.

    Решение

    С помощью HTML или CSS допускается устанавливать один из трех типов маркеров: disc (точка), circle (кружок), square (квадрат). Добавлять эти значения нужно к стилевому свойству list-style-type , которое указывается для селектора UL или LI (пример 1).

    Пример 1. Стандартные маркеры

    HTML5 CSS 2.1 IE Cr Op Sa Fx

    Квадратные маркеры

    • Чебурашка
    • Крокодил Гена
    • Шапокляк

    В данном примере в качестве маркеров используется квадрат (рис. 1).

    Рис. 1. Вид маркеров

    Выбор и установка собственного символа маркера происходит весьма своеобразно, через псевдоэлемент :before . Вначале следует вообще убрать маркеры у списка, присвоив значение none стилевому свойству list-style-type , а затем добавить псевдоэлемент :before к селектору LI . Сам вывод символа осуществляется с помощью свойства content , в качестве значения которого и выступает желаемый текст или символ (пример 2).

    Пример 2. Использование:before и content

    HTML5 CSS 2.1 IE Cr Op Sa Fx

    Символ в качестве маркера

    • Чебурашка
    • Крокодил Гена
    • Шапокляк

    В данном примере маркер, установленный по умолчанию, прячется, а взамен добавляется символ (рис. 2).

    Рис. 2. Маркеры в виде символа

    Чтобы установить в качестве маркера какой-нибудь хитрый символ, можно воспользоваться программой Microsoft Word или таблицей символов, это стандартная программа входящая в комплект Windows. Кодировка кода должна быть обязательно UTF-8.

    position:relative; overflow: hidden;

    Если же нужно показать только часть светлого блока, неравномерно убрав ненужные пиксели, то используется свойство clip: rect(вверх, вправо, вниз, влево); которое не применимо без position: absolute. auto показывает, что сторона остаётся без изменений.

    position:relative;

    clip: rect(auto, 200px, auto, 30px);

    Взаимодействие блока с position: absolute с другими элементами

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

    А
    Б

    Если блоку А присвоить position: absolute, то блок Б расположиться так, словно блока А не существует - он займёт его место. Блок А уже не сможет влиять на положение блока Б ни посредством , ни своей площадью, словно он парит над ним.

    А
    Б

    Блок А перекрывает блок Б. Но стоит второму добавить position в значении relative, absolute или fixed, как ситуация измениться.

    position: absolute;

    position: relative;


    position: absolute;

    position: absolute;


    Теперь приоритетным будет тот блок, который расположен ниже в коде, в данной случае белый Б. Для того, чтобы изменить естественный порядок, мы используем z-index . Чем больше значение этого параметра, тем выше находится элемент. Стоит помнить лишь то, что для position: static это свойство игнорируется (искл. свойство ) и то, что в IE существует .

    А
    Б

    Поскольку элементы не могут влиять на положение друг друга, то без указания для них значений (или если значения одинаковы) top, bottom, right, left, и margin, ложатся друг поверх друга. А высота родительского блока, коли она не установлена фиксировано, равна нулю. На этом принципе основаны многие вещи, в том числе .

    А
    Б

    width (ширина) и position: absolute

    width (или height) не применяется для большинства встроенных элементов. Имеет по умолчанию значение auto, что для блочного элемента равнозначно width: 100%.

    Блочный
    Встроенный

    Встроен ный


    Встроенный

    Встроен ный


    width: 100%; для обоих - это ширина родителя, для которого задано позиционирование отличное от static.

    Блочный
    Встроенный

    Встроен ный


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

    Блочный
    Встроенный

    Встроен ный

    Пример как написать текст на изображении.

    Указанные ниже образцы продемонстрируют возможности применения CSS наложения.

    Лес и поле белые,
    Белые луга.
    У осин заснеженных
    Ветки как рога.

    Подо льдами крепкими
    Дремлют воды рек.
    Белыми сугробами
    Лег на крыши снег.

    В небе звезды яркие
    Водят хоровод.
    Старый год прощается -
    Входит Новый год.

    Е. Трутнева.

    стих
    автор

    Образец как наложить один текст на другой.

    Пример
    Обра зец

    Пример
    Образец

    Пример как разместить текст поверх изображения на HTML

    Как написать текст на изображении Этот вариант приобретает всё большую популярность и возможен благодаря наложению одного слоя на другой с помощью свойств CSS
    ЗАГОЛОВОКпрозрачная область

    Каждый день на форумах html новички спрашивают: «Как разместить текст поверх изображения?». Некоторые находят неправильный выход: они рисуют текст на картинке в графических редакторах, после чего размещают изображение с текстом в html документах. Но что делать, если текст надо заменить? Опять перерисовывать картинку? Есть более простые решения.

    Используя методы, описанные в уроке, мы можем получить такой результат:

    Подготовка

    Возьмём картинку

    Её размер — 350px × 200px. И этой информации достаточно для того, чтобы приступить к работе.
    Теперь попробуем разместить поверх неё текст несколькими способами.

    Способ первый: картинка как фон div

    Сразу оговорюсь, что этот способ мне самому не нравится из-за примитивного конечного результата, но тем не менее он существует, поэтому я расскажу о нём.

    Суть способа заключается в том, что мы берём тег div, задаём ему размеры, совпадающие с размером изображения, и устанавливаем картинку в качестве фона.
    Обратите внимание, что размер тега = собственный размер + размер отступов padding. Таким образом, если мы хотим сделать отступ содержимого от края картинки на 20px, то размер самого div нужно указать на эти 20px меньше. То есть: 350-20 = 330 в ширину и 200-20 = 180 в высоту.

    Текст

    Example1 {
    padding-top:20px;
    width:330px;
    padding-left:20px;
    height:180px;
    background-image:url("/examples/20120821/bg.png");

    /*оформление текста*/
    color:#FFF;

    font-size:40px;
    }

    Результат:

    Способ простой по структуре хтмл кода (требуется всего один тег), но зато он не позволяет задать тексту какие-то особые стили. В результате чего может получиться так, что текст будет сложно прочитать. Кроме того, блок жёстко привязан к размерам картинки, а значит, в случае изменения картинки придётся переписывать и css

    Способ второй: наложение двух тегов друг на друга

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



    Текст

    Example2 {
    display:inline-block;
    position:relative;

    }
    .example2 span {
    display:inline-block;
    position:absolute;
    top:30px;
    left:0px;

    /* Оформление текста */
    color:#FFF;
    font-family:Arial, Helvetica, sans-serif;
    font-size:20px;

    /* Фон */
    background-color:rgba(0,0,0,.4);
    padding:10px 30px;
    }

    Example2:
    display:inline-block нам нужен, чтобы контейнер не растягивался по ширине на всю страницу.
    position:relative заставляет все вложенные блоки с position:absolute вести отсчёт координат своего положения не от окна браузера, а от блока.example2.

    Example2 span:
    display:inline-block — для того, чтобы стили, относящиеся к блочным элементам, могли быть применены к нашему тексту.
    position:absolute — для вынимания тега из общего потока и дальнейшего его размещения с помощью задачи конкретных координат. top, left — отступы сверху и слева (координаты). возможно вместо них использовать bottom (снизу) и right (справа)

    Результат:

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

    Играя с css и структурой тегов можно добиться и такого результата:

    Данный результат довольно неплохо подходит для оформления галлерей, витрин интернет-магазинов и прочих сервисов.

    Код последнего результата:


    Я — заголовок

    А я — комментарий к этой прекрасной картинке. Я такой длинный, что занимаю несколько строчек.

    Example3 {
    display:inline-block;
    position:relative;
    }
    .example3 .example_text {
    display:block;
    position:absolute;
    left:0;
    bottom:0;
    width:100%;
    box-sizing:border-box;
    -moz-box-sizing: border-box;
    -webkit-box-sizing: border-box;
    box-sizing: border-box;

    padding:10px;
    background-color:rgba(0,0,0,.3);

    }
    .example3 h6 {
    font-family:Arial, Helvetica, sans-serif;
    font-size:18px;
    }
    .example3 span {
    font-size:12px;
    }