2013-06-01 3 views
2

Предположим, у меня есть два элемента DIV: внешний контейнер DIV и внутренний DIV внутри контейнера. Я хочу, чтобы внутренний DIV был намного больше внешнего DIV, но внешний DIV имеет свойство overflow:hidden, поэтому большая часть внутреннего DIV не видна.Скрытый внутренний DIV

Целью было бы реализовать функции прокрутки или прокрутки, где вы могли бы перемещать внутренний DIV внутри внешнего DIV.

Базовая реализация может быть что-то вроде:

<!DOCTYPE html> 
<html> 

<head> 
<style> 

.container { 
    width: 500px; 
    height: 40px; 
    border: 1px solid #a8a8a8; 
    padding: 5px; 
    overflow: hidden; 
} 

.inner-content { 
    white-space: no-wrap; 
    position: relative; 
    display: inline-block; 
} 

.inner-element { 
    display: inline-block; 
} 

</style> 

</head> 

<body> 
<div class = "container"> 
    <div class = "inner-content"> 
     <div class = "inner-element">Lots of content goes here</div> 
     <div class = "inner-element">Lots of content goes here</div> 
     <div class = "inner-element">Lots of content goes here</div> 
     <div class = "inner-element">Lots of content goes here</div> 
     <div class = "inner-element">Lots of content goes here</div> 
     <div class = "inner-element">Lots of content goes here</div> 
    </div> 
</div> 

</body> 

</html> 

Проблема заключается в том, что я хочу, чтобы все элементы во внутренней DIV появляются бок о бок, на одной горизонтальной линии, так что пользователь может прокручиваться влево или вправо.

Таким образом, этого можно достичь, просто используя display: inline-block для всех элементов (или float). Кроме того, проблема заключается в том, чтобы предотвратить обертывание внутренних элементов, мне нужно указать очень большую ширину на .inner-content. (Например, если я указываю width:10000px или что-то в этом роде, то внутренние элементы, конечно же, не обертываются.) Но тогда проблема заключается в том, что пользователь сможет бесконечно прокручивать внутренний DIV вправо.

Итак, как я могу устроить вещи так, чтобы все (частично скрытые) элементы внутри внутреннего DIV оставались на одной и той же горизонтальной линии (без явного указания ширины)?

ответ

1

Вы были очень близки к вашему образцу кода! Установив внутренние элементы на inline-block и указав nowrap, вы убедитесь, что каждый элемент не будет помещен в контейнер. Но тогда вам также понадобится цепочка элементов, которые нельзя обернуть в конце каждого внутреннего элемента. Таким образом, просто добавляя в контейнер nowrap, все элементы будут в одной строке.

http://jsfiddle.net/ere4x/

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