Ошибка CSS Columns - разрывы на мобильных устройствах при использовании псевдокласса:checked

Я создаю веб-сайт портфолио, который использует только CSS3 для отображения сетки и отфильтровывает эскизы изображений.

Вы можете увидеть, что я сделал здесь.

Я получил функциональность фильтра для работы с помощью этого учебника и с помощью псевдокласса: checked.

Сетка сделана с использованием колонок css3 для создания бесшовной адаптивной фото-сетки. Я использовал пример Криса Койера.

В большинстве современных браузеров все работает, но в мобильном сафари для iPhone оно ломается. После дальнейшего тестирования он, похоже, также ломается в браузере Sleipnir для iPhone, но работает в браузере Opera Mini. Кроме того, он делает то же самое на iOS Safari для iPad.

Также важно отметить, что ошибка не возникает из-за небольшой ширины браузера. Он отлично работает при небольшой ширине браузера на Mac OSX Safari 5.

Теперь о проблеме: при просмотре на iPhone все выглядит великолепно, пока вы не нажмете на ярлык фильтра (веб-дизайн, иллюстрация, гарнитуры, идентификация и печать). После нажатия на ярлык ничего не должно двигаться. Меняются только непрозрачности миниатюр. Например, после нажатия "Идентификация" правый столбец разрывается, и изображения исчезают. Теперь нажмите "Все", и изображения появятся в правом столбце, и все выглядит так, как при первом посещении страницы.

Изображения, кажется, попадают под первый столбец изображений, ниже нижнего колонтитула и вне поля зрения.

Вот как это должно выглядеть после нажатия "Идентичность" - http://cl.ly/1M3F1t1N410s150h1o40

Вот как это выглядит сейчас - http://cl.ly/0r1v0Z2c1f0I2U0X0T3m

ОБНОВЛЕНИЕ: Удаление list-style: none; от моего CSS, кажется, это значительно улучшилось. Понятия не имею почему. Тем не менее, не работает идеально, хотя. Некоторые из миниатюр все еще исчезают. Будет работать над этим еще немного.

ОБНОВЛЕНИЕ 2: Я проверил сайт на двух планшетах Android с нативным браузером. Кажется, сделать то же самое на Android. Это действительно раздражает, поскольку это происходит только в мобильных браузерах (я думаю). Может быть, это как-то связано с метками / входами. Это единственное, о чем я могу думать, в мобильных браузерах. Мне пришлось ввести немного javascript, чтобы iOS-сафари разрешало сенсорные события на ярлыках. По умолчанию iOS не позволяет вам прикоснуться к метке, чтобы выбрать вход (я использую скрытые переключатели). Я не знаю, почему это переместило изображение вокруг страницы. может быть, это связано с функцией увеличения при касании?

ОБНОВЛЕНИЕ 3: Работы над инструментами для мобильных разработчиков Firefox можно найти здесь: http://www.mozilla.org/en-US/mobile/. Это наводит меня на мысль, что это определенно проблема мобильного webkit, а не только iOS.

Если вам интересно, вот код, который я использую для: проверенной фильтрации миниатюр псевдокласса.

.ff-container input{
display: none;
}

.ff-items li img{
display: block;
}

.clr {
clear:both;
}

.ff-items li{
opacity: 0;
-webkit-transition: opacity 0.2s ease-in-out;
        transition: opacity 0.2s ease-in-out;   
}

.ff-container input.ff-selector-type-all:checked ~ .ff-items li,
.ff-container input.ff-selector-type-1:checked ~ .ff-items .ff-item-type-1,
.ff-container input.ff-selector-type-2:checked ~ .ff-items .ff-item-type-2,
.ff-container input.ff-selector-type-3:checked ~ .ff-items .ff-item-type-3,
.ff-container input.ff-selector-type-4:checked ~ .ff-items .ff-item-type-4,
.ff-container input.ff-selector-type-5:checked ~ .ff-items .ff-item-type-5{
opacity: 1;
}

.ff-container input.ff-selector-type-1:checked ~ .ff-items li:not(.ff-item-type-1),
.ff-container input.ff-selector-type-2:checked ~ .ff-items li:not(.ff-item-type-2),
.ff-container input.ff-selector-type-3:checked ~ .ff-items li:not(.ff-item-type-3),
.ff-container input.ff-selector-type-4:checked ~ .ff-items li:not(.ff-item-type-4),
.ff-container input.ff-selector-type-5:checked ~ .ff-items li:not(.ff-item-type-5){
opacity: 0.1;
}

Небольшой раздел HTML: <li class="ff-item-type-1">
<a href="projects/emily-patridge/">
<img src="images/em_c.jpg" alt="Emily Patridge Website" /></a>
</li>

2 ответа

Решение

ОК... Короткий ответ: я получил его, устраняя css-columns, Я создал сетку, используя inline-block вместо этого, и сделал это легко с помощью vertical-align:middle, Вы могли бы также сделать сетку, используя поплавки.

И работает здесь: http://test.davewhitley.com/not-wp/debug/index.php

Насколько я могу судить, фильтрация непрозрачности css-columns + css вызывает действительно неясную ошибку в iOS. Забавно, что это только в iOS. Я чувствую, что никто никогда не столкнется с этой ошибкой, потому что она так неясна.

Я хотел бы сломать его однажды и отправить сообщение об ошибке... но я слышал только о том, чтобы отправить его в Safari, а не в iOS Safari.

Это потому что :checked поддерживается только в браузерах Opera.

Смотрите здесь для получения дополнительной информации.

Другие вопросы по тегам