| Internet Explorer | Chrome | Opera | Safari | Firefox | Android | iOS | |
| 6.0+ | 8.0+ | 1.0+ | 4.0+ | 1.0+ | 1.0+ | 1.0+ | 1.0+ |
Завдання
Зробити горизонтальну пунктирну лінію з зображенням ножиць.
Рішення
У квитанціях, купонах або газетах часом можна зустріти пунктирну лінію з зображенням ножиць і написом «лінія відрізу». Така фраза говорить, що треба відрізати цей шматок за наведеною лінії, щоб надалі використовувати за призначенням. На сайтах подібні дії не мають ніякого сенсу, ніхто тикати в монітор ножицями в здоровому глузді не стане. Але можна використовувати горизонтальну лінію в якості елемента дизайну сторінки, наприклад, для візуального відділення одного матеріалу від іншого.
Наша лінія буде містити три елемента: саму пунктирну лінію, малюнок половини ножиць і напис «лінія відрізу». На рис. 1 показано, що хотілося б отримати в результаті.
![]()
Рис. 1. Горизонтальна лінія
В ідеалі, лінія повинна формуватися єдиним тегом <div>, а все інше покладається на стилі, включаючи вивід зображення і напис.
Для початку в HTML вставимо основу лінії.
<div class="line"><div class="line"></div></div>
Оскільки ножиці виводяться під лінією, то скористаємося властивістю border-top. Якби малюнок виводиться над лінією, відповідно потрібно border-bottom. Сам малюнок ножиць має висоту 37 пікселів, віднімемо один піксель на товщину лінії, розділимо отримане значення навпіл і отримаємо 18 пікселів видимій частині. Це число буде висотою блоку і значенням для зсуву фону вгору.
.line {
border-top: 1px dashed #000; /* Параметри лінії */
height: 18px; /* Висота блоку */
background: url(images/scissors.png) no-repeat 10px -18px; /* Параметри фону */
}
Властивості background вказується шлях до малюнка, скасовується повторення фону і задається зсув вправо на 10px і вгору на 18px. Зсув по вертикалі потрібен, тому що у нас на картинці цілі ножиці, а не їх половинка (рис. 2).
![]()
Рис. 2. Зображення ножиць для лінії
Залишилося додати текст під лінією. Скористаємося псевдоелементом :after, в поєднанні з властивістю content він дозволяє виводити текст після елемента. Додаємо :after до класу line.
.line:after{
content: "Лінія відрізу";
}
Остаточно вирівнюємо текст по центру лінії через властивість text-align та налаштовуємо вид тексту (приклад 1).
Приклад 1. Лінія
HTML5CSS 2.1IECrOpSaFx
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Лінія відрізу</title>
<style>
.line{
text-align: center; /* Вирівнюємо текст по центру */
border-top: 1px dashed #000; /* Параметри лінії */
height: 18px; /* Висота блоку */
background: url(images/scissors.png) no-repeat 10px -18px; /* Параметри фону */
}
.line:after{
content: "Лінія відрізу";
font-family: Arial, sans-serif; /* Рубаний шрифт для тексту */
font-size: 12px; /* Розмір шрифту */
vertical-align: top; /* Вирівнювання по верхньому краю */
}
</style>
</head>
<body>
<p>Текст</p>
<div class="line"><div class="line"></div>
<p>Текст після</p>
</body>
</html>
Браузери
Браузер IE6-7 не підтримує псевдоелемент :after, тому текст під лінією в ньому виводитися не буде.
