Подтвердить что ты не робот

Изображение верхней границы в CSS3

Я использовал border, border-top-image, border-image, и никто, кажется, не делает то, что я делаю после.

У меня есть следующий CSS:

#footer {
    overflow: hidden;
    clear: both;
    width: 100%;
    margin: 0 auto;
    padding: 26px 0 30px 0;
    border-top-image: url('http://www.mycelticcrossstitch.com/celtic%20knot%20cross%20stitch.jpg');
    font-size: 0.8461538461538462em;
    color: #aaa;
}

Это не похоже на веб-сайт, на котором я пытаюсь работать, я пробовал его в Firefox и Chrome.

Я хочу, чтобы изображение отображалось на верхней границе и не имело других границ (так что это похоже на <hr />)

4b9b3361

Ответ 1

Я не думаю, что существует такое свойство, как border-top-image, чтобы предоставить границу изображения любой стороне элемента - Используйте

border-image:url('http://www.mycelticcrossstitch.com/celtic%20knot%20cross%20stitch.jpg') 30 30 round;

но он дает границу вокруг всех сторон. Чтобы удалить границу вокруг остальных сторон, я дал -

border-bottom:0;
border-left:0;
border-right:0;

Это сработало, и вот моя скрипка - http://jsfiddle.net/ashwyn/c7WxG/1/

Ответ 2

Существует свойство border-image-width: a b c d;. Подробности:

  • a-d - это ширина верхней, правой, нижней и левой границ, соответственно
  • значения a-d могут иметь вид:
    • [x]px
    • [x] - кратность значения ширины границы
    • [x]% - процент фрагмента изображения (отображается неработоспособным в Safari 7)
    • auto - выводится из ширины соответствующего среза изображения
  • значение по умолчанию 1.
  • Если вы опустите d, значение b используется для ширины левой границы
  • Если вы также опускаете c, значение a также используется для ширины нижней границы
  • Если вы также опускаете b, значение a используется для всех границ:)

Итак, для вашего примера вы можете использовать:

border-image-width: 100% 0 0 0;

В качестве альтернативы, стенографическое свойство border-image включает border-image-width в качестве параметра, поэтому в одной строке CSS:

border-image: url(image.png) 100% 0 0 0 / [desired_border_width]px 0 0 0 repeat;

Это использует все изображение для верхнего слоя ( "100% 0 0 0" ) и применяет его как верхнюю границу с нужной шириной.

Ответ 3

Другое РЕШЕНИЕ - создать визуальный "ПЕРЕД" phseudo-element:

.yourDiv::before{
    background:url("http://lorempixel.com/200/100/");
    width:100%;
    height:20px;
}

Ответ 4

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

Подробнее см. w3.org