Медиа-запросы для каждого интервала 250 пикселей

0

Я не уверен, возможно ли это, но мне просто интересно, есть ли более сложный способ достижения следующих медиа-запросов: jsFiddle: http://jsfiddle.net/neal_fletcher/XMmyA/
CSS:

.block {
    position: relative;
    width: 1000px;
    height: 100px;
    background: red;
    margin: 0 auto;
}

@media only screen and (max-width: 1000px) {
    .block {
        width: 750px;
    }
}

@media only screen and (max-width: 750px) {
    .block {
        width: 500px;
    }
}

@media only screen and (max-width: 500px) {
    .block {
        width: 250px;
    }
}

Таким образом, вместо объявления другого медиа-запроса каждые 250 пикселей, есть ли лучший способ достичь этого с помощью css или jquery? Поэтому каждые 250 .block ширина .block уменьшается на 250 пикселей. Любые предложения будут ценны!

  • 3
    То, что у вас есть, это единственный способ в CSS - это лучшее решение, поскольку вы не должны полагаться на JS для пользовательского интерфейса.
  • 0
    В качестве альтернативы, вы можете иметь PHP (или любой другой язык сценариев на стороне сервера, который вы используете) генерировать CSS медиазапроса для вас настолько широко, насколько вам нужен ваш экран.
Показать ещё 1 комментарий

3 ответа

1
Лучший ответ

Вы можете использовать sss препроцессор sass для этого, а также цикл for.

@for $i in 1 through 3 {
    @media only screen and (max-width: (5-$i) * 250px) {
        .block {
            width: (4-$i) * 250px;
        }
    }
}
0

Если вы хотите пропустить использование медиа-запросов, почему бы просто не установить ширину вашего блока с помощью процента (демо):

.block {
    width: 75%;
    min-width: 250px;
    height: 100px;
    background: red;
    margin: 0 auto;
}
  • 0
    Предположительно, ОП хочет, чтобы ширина блока увеличивалась с шагом 250 пикселей, а не плавно.
-2
<script>
$(function() {
var windowsize = parseInt($(window).width());
var block = parseInt($(".block").outerWidth(true));

if(windowsize <= block && windowsize%250==0) {
$(block).css('width',windowsize-250+"px");
}
});
</script>
  • 1
    На мой взгляд, стили должны быть установлены в CSS, насколько это возможно. И это возможно в этом случае ...
  • 0
    @ Anders G: Это невозможно без препроцессора - и с препроцессором вы все равно просто генерируете статический CSS. Нет способа сделать это динамически с помощью CSS.

Ещё вопросы

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