Установить высоту для границы слева

#html #css

#HTML #css

Вопрос:

HTML-код:

 <div class="program-contents">

   <div class="program-item"> ... </div>
   <div class="program-item"> ... </div>
   ...
   <div class="program-item"> ... </div>

</div>
  

Стили для .program-содержимого:

 margin-left: 25px;
margin-top: -35px;
padding: 35px 25px 0 25px;
border-left: 2px solid #e2e0e0;
  

Как я могу установить высоту для границы слева от .program-contents как 90%? Я пытаюсь не отображать нижнюю часть границы слева для .program-contents. Мне нужно 90% высоты «слева от границы» для этого блока.

Комментарии:

1. используйте calc() для достижения того, что вы ищете.

2. остерегайтесь, что это calc() еще не на стадии реализации «почти 100%».

3. Не является height of .program-contents - 10% of its height = 90% of its height ?

4. «высота .program-contents» — «10% от высоты .program-contents»? — что это?

5. Как я могу применить функцию calc() для «границы слева»? Мы не можем установить высоту для «границы слева»…

Ответ №1:

Вы можете попробовать использовать псевдоэлементы. Вот как:

 .program-contents {
    height: 300px;
    width: 300px;
    background-color: #EEE;

}

.program-contents::before {
    display: block;
    height: 90%;
    content: ' ';
    border-left: 1px #AAA solid;
}
  

:before Псевдоэлемент может использоваться для вставки сгенерированного содержимого перед содержимым элемента. Я установил его высоту равной 90% от его родительского элемента (который является .program-contents ), а затем добавил к нему левую границу.

И если вам нужно, чтобы граница была центрирована по вертикали, вы можете добавить top: 5% . Что-то вроде этого:

 .program-contents::before {    
    position: relative;
    top: 5%;
    display: block;
    height: 90%;
    content: ' ';
    border-left: 1px #AAA solid;
}
  

Комментарии:

1. Спасибо, но я не могу использовать height amp; width для .program-contents. Этот код не работает: .program-listing .program-contents { отображение: отсутствует; поле слева: 25 пикселей; верхнее поле: -35 пикселей; отступ: 35 пикселей 25 пикселей 0-25 пикселей; граница слева: 2px сплошная # e2e0e0; } .program-listing .program-contents::перед { отображение: блок; высота: 90%; содержимое: ‘ ‘; граница слева: 1px # AAA сплошная; }

2. Если вы не можете установить высоту для .program-contents , попробуйте это: jsfiddle.net/47m9s/2

3. Джон, спасибо тебе! Да, это работает. Вы мне очень помогли.