2016-01-15 2 views
-2

Я хочу для того чтобы достигнуть границ, которая является простой линией, а в середине его есть квадратный кайт-форма, некоторые вещи, как это:Как: CSS граница с кайт-формой в середине

enter image description here

, но я предпочел бы не используя границы изображения, так как если DIV будет натянута «змее» выглядит натянута, а я хочу, змей он сам, чтобы быть фиксированного размера (скажем 10px от левого края до справа), а остальное - прямая.

Заранее спасибо.

+3

Ожидается, что вы по крайней мере попытаться закодировать это для себя. Stack Overflow не является службой записи кода. Я бы предположил, что вы проводите дополнительные исследования, либо через Google, либо путем поиска SO, сделайте попытку и. если у вас все еще есть проблемы, вернитесь ** с кодом ** и объясните, что вы пробовали, и почему это не сработало. –

+0

Поскольку вы не приложили много усилий в своем вопросе, по крайней мере, отождествив то, что вы пробовали, я буду настаивать на том, чтобы вы проводили исследование (так вы учитесь). Однако я укажу вам в правильном направлении: проверьте свойство border-image. https://developer.mozilla.org/en-US/docs/Web/CSS/border-image Прочитайте детали, и если вы все еще не можете успешно реализовать, обновите свой вопрос с помощью своего кода. – Korgrue

ответ

3

Вы можете добиться того, что с помощью CSS transform и :beforepseudo-element как это:

div { 
 
    position: relative; 
 
    border: 1px solid #FF0000; 
 
    top: 100px; 
 
} 
 

 
div:before { 
 
    content: ""; 
 
    width: 10px; 
 
    height: 10px; 
 
    background: #FF0000; 
 
    position: absolute; 
 
    transform: rotate(45deg); 
 
    left: 50%; 
 
    margin-left: -5px; 
 
    transform-origin: 100% 0%; 
 
}
<div></div>

0

Если вам нужен только один квадрат, я бы с элементом псевдо :: после, как это https://jsfiddle.net/6fLuagsv/

.class-with-border{ 
    position: relative; 
    box-sizing: border-box; 
    height: 100px; 
    border: 3px solid #c00; 
    width: 100px; 
} 

.class-with-border::after{ 
    content: ''; 
    position: absolute; 
    bottom: -8px; 
    left: 50%; 
    width: 8px; 
    height: 8px; 
    border-radius: 1px; 
    background-color: #c00; 
    transform: rotate(45deg) translateX(-50%); 
} 

если вам нужен один квадрат на си de, просто вставьте в контейнер 4 элемента и отрегулируйте их по своему усмотрению.

1

HTML:

<div class="kite-separator"><span class="kite-center"></span></div> 

CSS:

.kite-separator { 
    width: 100%; 
    height: 2px; 
    background-color:#cb0009; 
    position:relative; 
} 
.kite-center { 
    display: block; 
    width: 8px; 
    height: 8px; 
    background-color: #cb0009; 
    position: absolute; 
    left: 50%; 
    top: -3px; 
    margin-left: -4px; 
    transform: rotate(45deg); 
} 

Рабочий пример: https://jsfiddle.net/azq2gcqq/

+0

Это работает как вариант для стиля HR, но из вопроса, я понимаю, что он ищет границу в этом стиле, а не горизонтальное правило с бриллиантом. border-image будет более универсальным вариантом здесь. – Korgrue

+2

Вместо того, чтобы оставить отрицательный запас, я бы пошел с переводом (-50%), поэтому, если вы хотите изменить размер кайта, вам тоже не придется менять границу –

+1

@MattiaNocerino Спасибо за отзыв. Я никогда не пробовал этого, но выглядел как аккуратный маленький трюк. –

Смежные вопросы