HTML
<div>
<img src="http://imgur.com/kj4qwHl.jpg">
<img src="http://imgur.com/q6pFhhE.jpg">
<img src="http://imgur.com/ngdnoYI.jpg">
<img src="http://imgur.com/FkrSS5O.jpg">
<img src="http://imgur.com/ux0Om6X.jpg">
<img src="http://imgur.com/2ProEc9.jpg">
<img src="http://imgur.com/iu39yRs.jpg">
<img src="http://imgur.com/gx0iOdT.jpg">
<img src="http://imgur.com/6kEuRYX.jpg">
</div>
CSS (SASS)
@mixin rspv($w) {
@media screen and (max-width:$w) {
@if $w==680px {
img:nth-child(n1) {
width:100%;
}
} @else {
@content;
}
}
}
@mixin grid($pc...) {
$len:length($pc);
img {
vertical-align:top;
transition:all 0.5s;
@for $i from 1 through $len {
&:nth-child(#{$i}) {
width: nth($pc,$i)+'%';
}
}
}
}
div {
margin:0 auto;
padding:0 100px;
+grid(26,40.7,33.3,41.9,26.7,31.4,29,38.5,32.5);
@include rspv(860px) {
+grid(39,61,45,55,46,54,42.9,57.1,100);
}
+rspv(680px);
}
ОБЪЯСНЕНИЕ
В rspv
Mixin (отзывчивым) проверяет, если ширина соответствует 680px
затем (even)
и (odd)
изображения будут иметь полный размер. Если нет, то вступает в игру mixin grid
.
Помимо нормального свойства: пары значений, grid
принимает ширину от заданного параметра $pc
(в процентах) и использует его в цикле for
. Он будет проходить через $i
в зависимости от длины $pc
и возвращает каждое значение с карты $pc
.
Поскольку все изображения находятся внутри div
, все микшины будут включены туда. Сначала grid
не требует ответного требования, второе - и последнего +rspv(680px)
не требует расчета ширины.
Это должно работать так, как показывает ваша ссылка на автомобили. Не много кода. Я рекомендую, получить прекомпилятор для CSS. Без этого было бы намного больше кода и намного сложнее составить план.
DEMO HERE
для этого вам не нужна библиотеки JavaScript, Theres только некоторые небольшой код в CSS требуется – Thielicious
@TheDefinitionist Вы можете уточнить? Я не вижу, как вы можете получить каждую строку той же ширины, когда каждое изображение отличается от другого? – Bakitai
Мне бы очень хотелось увидеть, что CSS тоже –