#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/23. Джон, спасибо тебе! Да, это работает. Вы мне очень помогли.