Содержание

Что такое border-image? | CSS-Tricks по-русски

Что такое border-image?

В CSS3 появилось новое свойство border-image, которое выглядит немного запутанным. Это свойство позволит вам создавать элементы с границей, сформированной из картинки. В этой статье я расскажу как свойство border-image работает с сегодняшними браузерами.

Основная идея

Сокращённая запись свойства состоит из трёх частей:


border-image: url(border-image.png) 25% repeat;

Таким образом, вы можете указать:

  1. Файл с изображением, которое будет использоваться для границы;
  2. Каким образом разбивать изображение при показе, изображение разбивается на 9 частей;
  3. Каким образом браузер должен применять каждую часть изображения к соответствующим частям элемента.

Необходимые подробности

Давайте рассмотрим каждую часть процесса более детально. Первый пункт очень прост, источник изображения записывается точно также как и в свойстве background-image.

Для нашего примера я буду использовать изображение размером 100px на 100px:

Разбиение изображения

Вторая часть может иметь от одного до четырёх значений, как например свойство border-width, которые применяются в привычном нам порядке: top, right, bottom и left.


border-image: url(my-image.gif) 25% 30% 10% 20% repeat;
border-image: url(my-image.gif) 25 30 10 20 repeat;

В нашем случае, поскольку изображение размером 100px x 100px, два правила из примера эквивалентны — картинка будет разбиваться на части в одних и тех же местах. Я добавил разметку на рисунок, чтобы продемонстрировать это:

Repeat, Round, Stretch

Свойство border-image всегда располагает угловые секции вашего изображения в соответствующие углы вашего элемента. Третья часть правила говорит браузеру как расположить средние секции вашей картинки, как они будут вести себя на границах элемента. Значения repeat (повторять часть изображения) и stretch (растягивать) говорят сами за себя.

Значение round подразумевает что картинку надо повторять, но только целое количество раз, если же осталось свободное пространство, то результат надо растянуть. Однако Safari и Opera интерпретируют round также как и repeat. Всего может быть два значения, для верхней и нижней границ, а также для левой и правой. Рассмотрим пример, в котором значения для верхней и нижней границ установлено в repeat, а для левой и правой в stretch:


#example-one {
	border-width: 25px 30px 10px 20px;
	-moz-border-image: url("border-image.png") 25 30 10 20 repeat stretch;
	-webkit-border-image: url("border-image.png") 25 30 10 20 repeat stretch;
	border-image: url("border-image.png") 25 30 10 20 repeat stretch;
}

Результат:

Border-width

Свойство border-image не позволяет указать толщину границы элемента. Браузер просто растягивает изображение вдоль границы с уже имеющейся шириной. Если вы будете использовать дополнительно свойство border, то вы обеспечите хорошую обратную совместимость для браузеров, которые не поддерживают border-image.


#example-two {
	border: 50px double orange;
	-moz-border-image: url("border-image.png") 25 30 10 20 repeat;
	-webkit-border-image: url("border-image.png") 25 30 10 20 repeat;
	border-image: url("border-image.png") 25 30 10 20 repeat;
}

Также вы можете указать ширину каждой границы отдельно (в следующем примере я указал ширины так, чтобы они совпадали с ширинами картинок):


#example-three {
	border-color: orange;
	border-style: double;
	border-width: 25px 30px 10px 20px;
	-moz-border-image: url("border-image.png") 25 30 10 20 repeat;
	-webkit-border-image: url("border-image.png") 25 30 10 20 repeat;
	border-image: url("border-image.png") 25 30 10 20 repeat;
}

Использование простой границы вмести изображения не всегда будет выглядеть идеально, поэтому для IE вы можете использовать собственные таблицы стилей.

Особенности браузеров

Как и ожидалось, IE не поддерживает это свойство. Браузеры, которые поддерживают border-image, на самом деле поддерживают только короткую его запись и не все свойства, которые описаны в спецификации. Некоторые полезные свойства не поддерживаются всеми браузерами, например border-image-outset, которое бы решило вот эту проблему.

Также, поведение по умолчанию предполагает что центральная часть изображения будет отброшена. Для того чтобы задействовать её, необходимо использовать ключевое слово fill для свойства border-image-slice

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

Пример

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

CSS. Выравнивание картинки по центру

Уже давно существуют разные методы выравнивания картинок по центру с помощью CSS. На реализацию этих методов сильно влиял Internet Explorer 5. Но сегодня эта версия браузера мало кого интересует, поэтому можно избавиться от лишнего кода.

Раньше IE5 и IE5.5 диктовали свои правила — для того, чтобы выровнять элемент страницы по центру, необходимо использовать CSS-свойство text-align:center. И чтобы отцентровать, например, картинку, необходимо размещать её внутри дополнительного блока:

<p>Текст параграфа.</p>

  <div>
    <img src="фото.gif" border="0" alt="" />
  </div>

<p>Далее по тексту параграфа.</p>

Для этого дополнительного блока присваивается соответствующие CSS-свойство:

.imgCenter {text-align:center;}

Всё это было необходимо потому, что Internet Explorer пятых версий не поддерживает уже тогда существовавшее и поддерживаемое другими браузерами свойство внешних отступов auto, которое автоматически налету присваивает одинаковое расстояние слева и справа от выравниваемого элемента.

Вышеприведённый способ всё ещё используется.

Но IE5 и IE5.5 уже в прошлом, поэтому HTML-код можно сделать проще и элегантнее:

<p>Текст параграфа. <img src="Фото.gif" border="0" alt="" /> Далее по тексту параграфа.</p>

Отсутствие ненужных дополнительных блоков достигается благодаря соответствующему CSS:

.center {display:block; margin:0 auto;}

Свойство display:block присваивает картинке характеристику блочного элемента, что избавляет от необходимости использовать <div> или <p> вокруг картинки. Далее декларация

margin:0 auto присваивает верхнему и нижнему отступам нулевое значение, а левому и правому отступам — автоматически равнозначное значение, которое выравнивает картинку по центру.

Нужно присвоить разные отступы сверху и снизу? Без проблем. Не забываем про сокращения:

.imgCenter {display:block; margin:15px auto 25px;}

К сожалению, в отличие от случаев выравнивания картинок по левому и правому краям (float:left и float:right), нет возможности стандартными методами завёртывать текст вокруг отцентрованной картинки. Конечно, если это очень важно, то выполнимо.

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

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

Как сделать обтекание картинки текстом в HTML и CSS

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

Обтекание картинки текстом при помощи HTML

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

Рассмотрим все по порядку. Для вставки картинки в HTML страницу используется тег img, подробнее смотрите урок, как вставлять картинки в HTML:  http://webmastermix.ru/lessons-html/14-how-inser-a-picture-in-html.html. Поэтому, чтобы вставить картинку в текст HTML страницы, достаточно в коде прописать следующее:

— где foto.jpg — это относительный путь к картинке. Можно задать и абсолютный путь, тогда нужно прописать URL вида: http://webmastermix.ru/foto.jpg

У тега img имеется  атрибут align, который и определяет по какому краю будет расположена картинка и с какого края ее будет обтекать текст (например align=»left» по левому краю). Атрибут align имеет следующие значения:

  • left — изображение будет расположено по левому краю, а текст будет обтекать его справа;
  • right — изображение расположится справа, а текст будет обтекать его слева;
  • bottom — отвечает за вертикальное выравнивание, при этом картинка будет находится слева, а нижняя часть изображения на против первой строки текста, это значение задано по умолчанию;
  • top — тоже, что и предыдущее значение, только строчка текста будет располагаться по верхней границе изображения;
  • middle — при данном значении происходит выравнивание середины изображения по базовой линии строки.

Теперь рассмотрим каждый элемент на практике.

1. Как я уже упоминал, по умолчанию картинке заданно значение bootom, т. е. не зависимо от того, пропишем мы его или нет наша картинка по отношению к тексту будет позиционирована так:

2. Чтобы выровнять изображение по левому краю, а текст его обтекал справа нужно прописать следующее:

<img src= "foto.jpg" align="left">

Пример:

3. Для выравнивания изображения по правому краю нужно соответственно прописать:

<img src= "foto.jpg" align="right">

Пример:

4. Теперь рассмотрим вертикальное выравнивание. Если применить значение top, то первая строчка текста будет расположена на против верхней границы изображения.

<img src= "foto.jpg" align="top">

Пример:

5. Выравнивание текста по центру картинки. Данный прием очень хорошо применять если вам нужно небольшую картинку расположить по центру строки.

<img src= "foto. jpg" align="middle">

Пример:

Обтекание картинки текстом при помощи свойств CSS 

Как вы могли заметить на вышеприведенных примерах наша картинка и текст не совсем красиво располагаются по отношению друг к другу. Расположить их красиво на помогут CSS стили, которые можно добавить к картинке задав ей определенный класс и применив нужные свойства. Если вы не знаете, что такое CSS смотрите урок Основы CSS и важные понятия: http://webmastermix.ru/lessons-css/17-bases-css.html.

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

Разберем простой пример, как сделать обтекание картинки текстом, когда картинка расположена по левому краю, а текст обтекает ее справа. При этом между текстом и картинкой зададим определенные отступы.

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

<img src= "foto.jpg">

Теперь классу leftfoto нужно присвоить определенные CSS стили.  


.leftfoto{
 float:left;
 margin: 4px 10px 2px 0px; 
}

Данный код располагают между тегами <head>…</head>, заключив в теги <style>…</style> или помещают во внешний файл стилей CSS. 

Разберем те элементы, которые мы здесь задали:

  • float:left; — мы позиционировали картинку по левому краю и заставили обтекать текст вокруг картинки справа, это по сути то же самое, что и атрибут align=»left».
  • margin: 4px 10px 2px 0px; — мы задали внешние отступы, 4px — от верха, 10px — справа, 2px снизу и 0px слева от изображения.

Пример:

Добавив к данным стилям рамку и внутренний отступ можно придать изображению некий эффект фотографии с белыми краями:


. leftfoto{
float:left;
 margin: 4px 10px 2px 0px;
 border:1px solid #CCC;
 padding:6px;
}

Здесь мы добавили следующие элементы:

  • border:1px solid #CCC; — задали сплошную линию размером 1 пиксель и светло серым цветом;
  • padding:6px; — задали внутренний отступ между изображением и рамкой, равный 6 пикселям.

Пример:

Материал подготовлен проектом: WebMasterMix.ru

Рекомендуем ознакомиться:

Подробности

Обновлено: 14 Декабрь 2013

Создано: 14 Декабрь 2013

Просмотров: 190133

CSS Галерея изображений


CSS можно использовать для создания галереи изображений.

Добавьте сюда описание изображения

Добавьте сюда описание изображения

Добавьте сюда описание изображения

Добавьте сюда описание изображения


Галерея изображений

Следующая галерея изображений создана с помощью CSS:

Пример




div. галерея {
маржа: 5 пикселей;
граница: 1px solid #ccc;
плыть налево;
ширина: 180 пикселей;
}

div.gallery:hover {
border: 1px solid # 777;
}

div.gallery img {
width: 100%;
высота: авто;
}

div.desc {
отступ: 15 пикселей;
выравнивание текста: по центру;
}




 Чинкве-Терре

Добавьте сюда описание изображения



Лес

Добавьте сюда описание изображения



 Северное сияние

Добавьте сюда описание изображения


jpg»>
Горы

Добавьте сюда описание изображения


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

Другие примеры

Галерея адаптивных изображений

Как использовать медиа-запросы CSS для создания отзывчивой галереи изображений, которая будет хорошо смотрятся на настольных компьютерах, планшетах и ​​смартфонах.

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

сайтов с фотографиями высокого качества, которые можно использовать бесплатно

Я веду такой список какое-то время, и персонал CSS-Tricks просто добавил к нему кучу новых ссылок, так что я подумал, ЭЙ, это звучит как забавный небольшой пост на выходных. Их так много, что на самом деле нет оправдания тому, что в вашей работе есть дрянные фотографии, будь то веб-сайты, презентации, печатные издания и т. Д.

Новый Старый сток

Винтажные фотографии из публичных архивов.Без известных ограничений авторского права.

Unsplash

Бесплатные (делайте что хотите) фото в высоком разрешении. 10 новых фото каждые 10 дней.

Также думаю re: splashed — это те же фото с другим интерфейсом? Не уверен.

Flickr Commons

Основная цель The Commons — поделиться скрытыми сокровищами из мировых публичных фотоархивов.

Кекс

Угощение фотографа от Йонаса Нильссона Ли.Бесплатные (делайте что хотите) фотографии.

Джей Мантри

Бесплатные фото. Делайте что-нибудь (CC0). Творите магию. 7 новых фотографий каждый четверг.

Magdeleine

Отобранные вручную бесплатные фотографии для вашего вдохновения.

млн т

Бесплатные стоковые фотографии Джеффри Беттса для коммерческого использования. Лицензия CC0. Новые фото каждую неделю.

ДЖЕШУТЫ

JÉSHOOTS Я основал, потому что они любят фотографировать, и жаль, что некоторые фотографии скрывают весь мир бесплатно, все дизайнеры, все работают с фотографиями, для тех, кому нужна тематическая фотография бесплатно.

ISO Республика

Качественные бесплатные фото для креативщиков

FuriousCamera

Бесплатные фотографии Hi-Fi Life. Вы можете использовать в личных и коммерческих проектах. Новые фото каждый день.

Реалистичные кадры

Бесплатные стоковые фото (высокое разрешение) для личного и коммерческого использования. 7 новых фотографий каждую неделю. Просто сделайте что-нибудь творческое!

Запас природы бесплатно

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

НОБЛ ВЕБ

Бесплатные (делайте как хотите) фото и текстуры высокого разрешения.

Бара Арт

Бесплатные фото высокого разрешения для личных и даже коммерческих проектов!

FancyCrave

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

Бесплатные фото

Совершенно бесплатная христианская стоковая фотография высокого качества Все фотографии публикуются под потрясающей лицензией CC0.Делай с ними что хочешь!

Barn Изображения

Barn Images предлагает вам коллекцию бесплатных стоковых фотографий с высоким разрешением.

Бревно

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

Маленькие образы

Автор этого сайта, Ник, внезапно скончался.Тем не менее, архив бесплатных фотографий все еще находится в сети, и на сайте есть дополнительная информация и способы сделать пожертвование.

Смерть стоковому фото

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

Суперсемейные изображения

Сверхизвестные изображения доступны на условиях Creative Commons Attribution 3.0 лицензия. Это означает, что вы можете использовать произведение в своих целях при условии предоставления кредита.

Библиотека паттернов

Гратисография

Бесплатные картинки в высоком разрешении, которые можно использовать в личных и коммерческих проектах.

Корм ​​для гурманов

Изображение

Бесплатные фото в высоком разрешении. Используйте их как хотите.

raumrot

Бесплатные стоковые фотографии для ваших коммерческих и личных работ.

Подробнее!

  • На многих стоковых фото-сайтах есть «бесплатные фотографии дня» — ищите их. Не повредит иметь папку Dropbox, полную дизайнерских ресурсов!
  • Google Images позволяет фильтровать результаты поиска по лицензии:
  • IM Free: тщательно подобранная коллекция бесплатных ресурсов для коммерческого использования.
  • Запас

Если вы знаете еще несколько хороших, напишите о них в комментариях.

Как разместить изображение в CSS

Существует множество методов позиционирования изображения в CSS, например, использование свойства object-position , использование свойства float (для выравнивания элементов по левому или правому краю).

Используя свойство object-position

Свойство object-position в CSS определяет выравнивание содержимого внутри контейнера. Он используется со свойством object-fit , чтобы определить, как такой элемент, как

При использовании свойства object-fit значение по умолчанию для object-position равно 50% 50% , поэтому по умолчанию все изображения располагаются в центре своего поля содержимого. Мы можем изменить выравнивание по умолчанию, используя свойство object-position .

Синтаксис

объект-позиция: <позиция> | начальная | наследовать;

Значение position свойства object-position определяет положение видео или изображения внутри контейнера. Он принимает два числовых значения, где первое значение контролирует ось x, а второе значение контролирует ось y. Мы можем использовать такую ​​строку, как слева, справа или в центре и т. Д.для размещения изображения в контейнере. Это допускает отрицательные значения.

Мы можем понять это более ясно на некоторых примерах.

Пример

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

свойство CSS object-position <стиль> #center { ширина: 400 пикселей; высота: 150 пикселей; граница: 5 пикселей сплошной красный; цвет фона: светло-зеленый; соответствие объекта: нет; позиция объекта: центр вверху; } #левый { ширина: 400 пикселей; высота: 150 пикселей; граница: 5 пикселей сплошной красный; цвет фона: светло-зеленый; соответствие объекта: нет; позиция объекта: слева вверху; } #Правильно { ширина: 400 пикселей; высота: 150 пикселей; граница: 5 пикселей сплошной красный; цвет фона: светло-зеленый; соответствие объекта: нет; позиция объекта: справа вверху; }

объект-позиция: по центру вверху;