Как скрыть переполнение «сверху»?

0

Есть ли способ скрыть переполнение div "сверху", а не "внизу"?

Этот jsFiddle иллюстрирует, что я имею в виду. Вложенный div имеет overflow-y:hidden, но это скрывает нижнюю часть его содержимого. Я хочу скрыть верхнюю часть.


Обязательный исходный код (дословно из jsFiddle):

*{
  -webkit-box-sizing:border-box;
     -moz-box-sizing:border-box;
          box-sizing:border-box;
}
*{margin:0;padding:0;border:0;}
#centered{
  margin:20px auto 0;
  overflow-y:hidden;
  height:150px;
  outline:5px solid green;
}
#centered,
#top,
#bottom{width:150px;}
#top   {height:120px;background-color:red;}
#bottom{height:150px;background-color:#555;}
#top,#bottom{
  color:white;
  text-align:center;
  padding:0 10px;
}
#top{padding-top:50px;}
#bottom{padding-top:60px;}


<div id="centered">
  <div id="top">
    this div should be "overflowed away"
    <em>at the top!</em>
  </div>
  <div id="bottom">
    this content should show
  </div>
</div>
  • 0
    Вы имеете в виду, что вы хотите, чтобы контент проходил снизу вверх, а не сверху вниз?
  • 0
    Я думаю, что инкапсуляция всего в контейнере, а затем выравнивание по дну должны помочь: jsfiddle.net/eithe/fK867/6 Вам все равно придется поэкспериментировать с отступами.
Теги:

1 ответ

2

См. Этот FIDDLE, вам нужно обернуть содержимое в absolute позиционированном DIV с bottom значением, равным 0, в то время как родительскому контейнеру задана позиция relative

HTML

<div id="centered">
    <div id='content'>
        <div id="top">this div should be "overflowed away" <em>at the top!</em>

        </div>
        <div id="bottom">this content should show</div>
    </div>
</div>

CSS

*{
    box-sizing:border-box;
    margin:0;
    padding:0;
}
#centered {
    margin:20px auto;
    overflow-y:hidden;
    height:150px;
    border:5px solid green;
    width:150px;
    position:relative;
}
#content {
    bottom:0px;
    position:absolute;
}
#top {
    min-height:120px;
    background-color:red;
    padding-top:50px;
}
#bottom {
    background-color:#555;
    padding:60px 10px 0 0;    
}
#top, #bottom {
    color:white;
    text-align:center;
}
  • 0
    Не совсем верно: jsfiddle.net/isherwood/fK867/4
  • 1
    Смотрите: jsfiddle.net/fK867/9 - там были некоторые плохо структурированные CSS и конфликтующие свойства
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню