css border-left 50% высоты - PullRequest
       6

css border-left 50% высоты

27 голосов
/ 15 мая 2010

Я хочу, чтобы левая граница моего div показывалась только половине div. То же самое я хотел бы сделать с моей правой границей, но это должно быть установлено от основания div до середины div Как мне этого добиться?

Ответы [ 4 ]

36 голосов
/ 24 января 2014

Подобный, но другой подход к @ Pekka's: используйте псевдоселектор :after, например:

HTML-разметка:

<div class="mybox">
    Le content de box.
</div>

CSS:

.mybox {
    position: relative;
    padding: 10px 20px;
    background-color: #EEEEEE;
}

.mybox:after {
    content: '';
    position: absolute;
    bottom: 0px;
    left: 25%;
    width: 50%;
    border-bottom: 1px solid #0000CC;
}

... и jsFiddle для хорошей меры.

13 голосов
/ 15 мая 2010

Хороший вопрос. Невозможно использовать свойство border.

Единственное, что приходит на ум, если вы можете установить position вашего div'а на relative, это использовать абсолютно позиционированный, шириной 1 пиксель div. Не проверено полностью, но это должно работать:

<div style='width: 1px; top: 0px; bottom: 50%; left: 0px; 
            background-color: blue; overflow: hidden'>
 &nbsp;
</div>

Вы бы сделали то же самое с правой стороны, заменив свойство left на right.

Помните, окружающее div должно быть position: relative, чтобы это работало. Я не уверен в том, будет ли настройка высоты 50% работать одинаково во всех браузерах - обязательно проверьте ее. Возможно, вам придется прибегнуть к мерам в пикселях, если это не так.

4 голосов
/ 23 января 2018

2018: Для современных браузеров :

Вы можете использовать border-image с градиентами что-то вроде ...

border-image: linear-gradient(to bottom, rgba(0,0,0,0) 25%,rgba(0,0,0,1) 25%,rgba(0,0,0,1) 75%,rgba(0,0,0,0) 75%);
border-image-slice: 1;

enter image description here

Демо: https://jsfiddle.net/hz8wp0L0/

Инструмент: Градиентный редактор

Могу ли я использовать: border-image (IE11)

3 голосов
/ 13 февраля 2014

Вы можете использовать:

line-height:50%; /*(or less, much less)*/
overflow:visible;

Текст виден, но цвет рамки будет только на половине размера div.

...