Lorem ipsum *text text*
Я хочу представлять новости для новостного сайта горизонтально, а не вертикально. Когда кто-то открывает страницу, они должны увидеть несколько статей, и вместо прокрутки список статей должен прокручиваться влево или вправо. Это должно выглядеть довольно круто на планшетах, так как это дает вам ощущение, будто вы прокручиваете изображения, это также имеет ощущение приложения для чтения новостей, которое видно в Windows 8. (например: http://blog.jasedigitalmedia.com/wp-content /uploads/2011/10/Windows-8-Metro-News-Reader-550x413.png )
Мои статьи новостей имеют заданную ширину, но высота может варьироваться в зависимости от длины сообщения. Я хочу, чтобы они выровнялись, когда они достигли конца своего родительского div, они должны свернуться вправо и продолжить оттуда, это очень похоже на поведение WPF WrapPanel с его набором ориентации к вертикали.
Это то, что у меня есть (коробки имеют синий фон, чтобы было легче видеть границы)
Текущая версия http://img546.imageshack.us/img546/6629/27149541.png
Это то, что я хотел бы (макет Photoshop, основанный на изображении выше):
Будущая версия http://img522.imageshack.us/img522/4974/41526451.png
Чтобы понять и разобраться, вот мой код
div.post: a single post, with fixed width
Lorem Ipsum Dolor
Lorem ipsum *text text*
Lorem Ipsum Dolor
Lorem ipsum *text text*
И CSS:
#wrap
{
width:100%;
height:500px;
background-color: rgba(0,0,0,0.5);
overflow:scroll;
overflow-y:hidden;
}
#newswrap
{
width:2500px;
height:500px;
}
.post
{
width: 300px;
float: left;
/* display:inline-block; */
background: rgba(0,0,120,0.5);
padding: 10px;
margin: 30px 0px 30px 30px;
}
Я попытался использовать display: inline-block, но он тоже не работал. Выглядит довольно легко, но я не могу найти способ сделать это. Некоторая помощь будет принята с благодарностью.
Additional Question Can I capture the scroll event with jQuery/JS so the newswrap scrolls when I scroll down? I tried using the $("#").mousewheel function but it didn't seem to scroll (though it did trigger the event when tested with an alert)
Измените свой css на это,
#wrap
{
width:100%;
height:500px;
background-color: rgba(0,0,0,0.5);
overflow:scroll;
overflow-y:hidden;
}
#newswrap
{
width:2500px;
height:500px;
text-align: center;
}
.post
{
width: 300px;
/* display:inline-block; */
background: rgba(0,0,120,0.5);
padding: 10px;
margin: 30px 0px 30px 30px;
}
Это должно сделать трюк, чтобы очистить дополнительные промежутки, вызванные отображением: встроенный блок, затем убедитесь, что пробелы между каждым .post в вашем html исключены.
С помощью функций CSS3 вы можете использовать столбцы ( http://www.quirksmode.org/css/multicolumn.html ) и используйте column-break-inside: avoid;
для каждого элемента, чтобы держать их в блоках. (Для этих свойств CSS вам понадобятся конкретные настройки браузера.) Однако это не будет работать в старых браузерах.