2016-10-23 2 views
5

Есть ли css, где я мог бы размер и положение border-left? Или «взломать»? Ниже показано, что я хотел бы иметь. Черный прямоугольник представляет столбец и красный, границы, которые я хотел бы иметь в этой колонке. Возможное?Калибровка и позиционирование свойства границы

Если нет, могу ли я добавить еще один div внутри, то дайте этому div свойство границы?

enter image description here

ответ

5

Вы можете использовать :before псевдо элемент с position: absolute

.column { 
 
    position: relative; 
 
    height: 200px; 
 
    width: 100px; 
 
    border: 1px solid black; 
 
    display: flex; 
 
    align-items: center; 
 
    justify-content: center; 
 
} 
 
.column:before { 
 
    content: ''; 
 
    height: 50px; 
 
    width: 3px; 
 
    background: red; 
 
    position: absolute; 
 
    left: 0; 
 
    top: 50%; 
 
    transform: translateY(-50%); 
 
}
<div class="column">Column</div>

+0

Nice один! Я искал это точно. Теперь, чтобы удалить все те divs! – Sylar

+1

В качестве примечания, 'flexbox' часть css - это просто разместить текст столбца в центре, но не обязательно для границы. –

3

Вы можете также сделать это с помощью градиентов и фона клипа.

div { 
 
    width: 100px; 
 
    height: 300px; 
 
    border-width: 2px; 
 
    border-style: solid; 
 
    border-color: black black black transparent; 
 
    background-image: linear-gradient(white, white), linear-gradient(to bottom, black 30%, red 30%, red 60%, black 0); 
 
    background-clip: padding-box, border-box; 
 
}
<div></div>

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