Страницы

Поиск по вопросам

Показаны сообщения с ярлыком media-queries. Показать все сообщения
Показаны сообщения с ярлыком media-queries. Показать все сообщения

четверг, 5 марта 2020 г.

Строгое сравнение в min-width и max-width

#css #media_queries


Если одновременно использовать @media (max-width: 1000px) и @media (min-width: 1000px),
то при ширине ровно 1000px будут выполняться оба правила

Если использовать @media (max-width: 1000px) и @media (min-width: 1001px), то при
масштабе в 1,25 и ширине 1251px не будет выполняться ни одно из этих правил (т.к. 1251/1,25=1000,8)

Вопрос: как сделать так, чтобы одно правило выполнялось при ширине меньшей либо равной
1000px, а другое выполнялось при ширине строго большей 1000px?
    


Ответы

Ответ 1



Задачу решает использование оператора отрицания для второго медиа-запроса. @media not all and (max-width: 1000px) { /* ... */ }

четверг, 23 января 2020 г.

Хотел узнать насчет адаптивной верстки, как правильно прописывать медиа запросы?

#media_queries #html #css


Проверяю сайт на смартфоне 480 на 800. Пишу верстку если смартфон горизонтально расположен,
то-есть ширина его 800px. Написал медиа запрос @media screen and (max-width:800px).
Но почему то не отображает такая раскладка блоков, как написано в стилях для данного
медиа запроса. Подскажите как правильно верстать адаптивно. И как правильно прописывать
медиа запрос для девайсов.    


Ответы

Ответ 1



Вот тут можно очень детально посмотреть /* Smartphones (portrait and landscape) ----------- */ @media only screen and (min-device-width : 320px) and (max-device-width : 480px) { /* Styles */ } /* Smartphones (landscape) ----------- */ @media only screen and (min-width : 321px) { /* Styles */ } /* Smartphones (portrait) ----------- */ @media only screen and (max-width : 320px) { /* Styles */ } /* iPads (portrait and landscape) ----------- */ @media only screen and (min-device-width : 768px) and (max-device-width : 1024px) { /* Styles */ } /* iPads (landscape) ----------- */ @media only screen and (min-device-width : 768px) and (max-device-width : 1024px) and (orientation : landscape) { /* Styles */ } /* iPads (portrait) ----------- */ @media only screen and (min-device-width : 768px) and (max-device-width : 1024px) and (orientation : portrait) { /* Styles */ } /********** iPad 3 **********/ @media only screen and (min-device-width : 768px) and (max-device-width : 1024px) and (orientation : landscape) and (-webkit-min-device-pixel-ratio : 2) { /* Styles */ } @media only screen and (min-device-width : 768px) and (max-device-width : 1024px) and (orientation : portrait) and (-webkit-min-device-pixel-ratio : 2) { /* Styles */ } /* Desktops and laptops ----------- */ @media only screen and (min-width : 1224px) { /* Styles */ } /* Large screens ----------- */ @media only screen and (min-width : 1824px) { /* Styles */ } /* iPhone 4 ----------- */ @media only screen and (min-device-width : 320px) and (max-device-width : 480px) and (orientation : landscape) and (-webkit-min-device-pixel-ratio : 2) { /* Styles */ } @media only screen and (min-device-width : 320px) and (max-device-width : 480px) and (orientation : portrait) and (-webkit-min-device-pixel-ratio : 2) { /* Styles */ } /* iPhone 5 ----------- */ @media only screen and (min-device-width: 320px) and (max-device-height: 568px) and (orientation : landscape) and (-webkit-device-pixel-ratio: 2){ /* Styles */ } @media only screen and (min-device-width: 320px) and (max-device-height: 568px) and (orientation : portrait) and (-webkit-device-pixel-ratio: 2){ /* Styles */ } /* iPhone 6 ----------- */ @media only screen and (min-device-width: 375px) and (max-device-height: 667px) and (orientation : landscape) and (-webkit-device-pixel-ratio: 2){ /* Styles */ } @media only screen and (min-device-width: 375px) and (max-device-height: 667px) and (orientation : portrait) and (-webkit-device-pixel-ratio: 2){ /* Styles */ } /* iPhone 6+ ----------- */ @media only screen and (min-device-width: 414px) and (max-device-height: 736px) and (orientation : landscape) and (-webkit-device-pixel-ratio: 2){ /* Styles */ } @media only screen and (min-device-width: 414px) and (max-device-height: 736px) and (orientation : portrait) and (-webkit-device-pixel-ratio: 2){ /* Styles */ } /* Samsung Galaxy S3 ----------- */ @media only screen and (min-device-width: 320px) and (max-device-height: 640px) and (orientation : landscape) and (-webkit-device-pixel-ratio: 2){ /* Styles */ } @media only screen and (min-device-width: 320px) and (max-device-height: 640px) and (orientation : portrait) and (-webkit-device-pixel-ratio: 2){ /* Styles */ } /* Samsung Galaxy S4 ----------- */ @media only screen and (min-device-width: 320px) and (max-device-height: 640px) and (orientation : landscape) and (-webkit-device-pixel-ratio: 3){ /* Styles */ } @media only screen and (min-device-width: 320px) and (max-device-height: 640px) and (orientation : portrait) and (-webkit-device-pixel-ratio: 3){ /* Styles */ } /* Samsung Galaxy S5 ----------- */ @media only screen and (min-device-width: 360px) and (max-device-height: 640px) and (orientation : landscape) and (-webkit-device-pixel-ratio: 3){ /* Styles */ } @media only screen and (min-device-width: 360px) and (max-device-height: 640px) and (orientation : portrait) and (-webkit-device-pixel-ratio: 3){ /* Styles */ }

Медиа-запрос или аналог относительно родителя, а не вьюпорта или экрана

#media_queries #html #адаптивная_верстка #css #вёрстка


Имеется вот такой блок:



Хотелось бы сделать так, чтобы при достаточности ширины он трансформировался в такой
блок:



Как писать свойства - понятно: заменить инлайн-блоки на блоки, добавить отступы и т.д.

С запросами, на первый взгляд, тоже понятно. Пишем что-то типа:

.selector {
    свойства для телефонов
}

@media screen and (min-width: 768px) {
    .selector {
        свойства для планшетов и десктов
    }    
}


Но как быть в случае, если этот блок встречается на разных страницах и в одном случае
брейкпойнтом должно быть 768px, а в другом 1024px, например? Например, на одной странице
есть сайдбар, уменьшающий пространство, а на другой нету.





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

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

@media (ширина контекста: 480px) { ... }


Подскажите, пожалуйста, есть ли возможность организовать медиазапросы таким образом?

Другими слова: я вижу, что этот блок должен трансформироваться, если есть свободных
400px, но как мне определить, что ширина родителя 400+? Медиазапросом я могу определить
только ширину вьюпорта или экрана и она не всягда связана с шириной родителя.

Я пока что вижу два варианта:

а) На разных страницах проставлять нашему блоку разные классы, например

@media screen and (min-width: 768px) {
    .selector_unfold-on768 { ... }
}
@media screen and (min-width: 1024px) {
    .selector_unfold-on1024 { ... }
}


Но тогда придется дублировать одни и теже свойства (ну или убирать в миксины и инклюдить).

б) отказаться от медиа-запросов как таковых и пасть JS`ом.
    


Ответы

Ответ 1



Верно мыслите, тут либо через классы либо JS, ибо медиа запросы не умеют работать с DOM элементами

Ответ 2



Подозреваю, что такое можно сделать с помощью flexbox. Media-запросы работают только с viewport'ом.

пятница, 10 января 2020 г.

Медиа запросы для iPhone

#css #ios #iphone #media_queries


Не могу заставить работать вёрстку на айфонах так, как требуется.

На всех остальных девайсах всё работает как мне нужно.

Пробовал разные варианты, некоторые из них:  

@media (device-height : 568px) 
   and (device-width : 320px) 
   and (-webkit-min-device-pixel-ratio: 2)

@media
    only screen and (max-device-width: 1136px) and (min-device-width: 960px) and
(max-device-height: 640px) and (min-device-height: 560px),
    only screen and (max-device-height: 1136px) and (min-device-height: 960px) and
(max-device-width: 640px) and (min-device-width: 560px) {
    /* iPhone only */
}

@media only screen 
    and (max-device-width: 640px), 
    only screen and (max-device-width: 667px), 
    only screen and (max-width: 480px)
{ }


Но ничего не помогло.
Сейчас я использую такие media queries(для iPhone они всёравно не работают):

@media screen and (max-width: 420px), only screen and (max-device-width: 667px) and
(-webkit-device-pixel-ratio: 2), screen and (min-device-width : 414px) and (max-device-height
: 736px) and (max-resolution: 401dpi)
    .l-wrapper
        flex-direction: column
        .l-item
            width: 100%

    .projects
        figure.project
            width: 100%
            margin-right: 0

    .edu-places
        .edu-place
            span
                &.period
                    padding-top: 3em

                    &:before
                        top: 3em
    .h-wrapper
        flex-direction: column
        align-items: center

@media screen and (max-width: 768px), only screen and (max-device-width: 667px) and
(-webkit-device-pixel-ratio: 2), screen and (min-device-width : 414px) and (max-device-height
: 736px) and (max-resolution: 401dpi)
    #wrapper
        flex-direction: column

    #header
        flex: 1

    #main
        flex: 1


Подскажите, что ещё попробовать? Может я что-то неверно делаю? Нужна помощь и советы.

UPDATE:
На iPhone желаю получить такой же результат как на скриншоте Android

iPhone на данный момент, скриншот одинаков для iPhone6,6+,5,5S

    


Ответы

Ответ 1



У вас слишком жесткие критерии для Media Queries, плюс нет вендорных префиксов для того же определения плотности пикселей. Например вот так: @media only screen and (-webkit-min-device-pixel-ratio: 2), only screen and ( min--moz-device-pixel-ratio: 2), only screen and ( -o-min-device-pixel-ratio: 2/1), only screen and ( min-device-pixel-ratio: 2), only screen and ( min-resolution: 192dpi), only screen and ( min-resolution: 2dppx) { Ваши свойства } Определение плотности пикселей требуется в том случае, если вам необходимо добавить картинки большего разрешения, в остальных случаях нет смысла это использовать. Посмотреть нужные Media Queries для iPhone можно вот здесь. И свойство flex из-за своей новизны так же требует вендорных префиксов. В коде у вас этого не вижу. Здесь можно посмотреть как поддерживается свойство flex.

Ответ 2



Вот сайтец, где все есть Iphone media query

суббота, 14 декабря 2019 г.

Как правильно верстать макет, когда ширина экрана меньше ширины макета в пикселях?

#html #css #вёрстка #адаптивная_верстка #media_queries


Ширина макета 1920px.
Ширина монитора 1600px.
Вопрос: как правильно верстать такой макет и соблюсти все размеры и отступы?
    


Ответы

Ответ 1



1 - Уточните у заказчика, что он в курсе, что дизайнер сделал такой широкий макет. Предупредите, что без адаптивизации хорошо будет смотреться только на больших мониторах. Порой заказчики могут проглядеть ширину в макете дизайнера, не обратить внимания. 2 - Можете воспользоваться в дев тулс в хроме toggle device toolbar ctrl+shift+m. Там, в режиме reponsive можно вручную задать экрану ширину больше, чем монитор, при этом автоматически подберется зум. Работать будет даже пиксель перфект, однако будет достаточно мелко. 3 - Можете задать изначально для body в стилях фиксированную минимальную ширину равную 1920px. Появится горизонтальный скролл, и вы будете верстать пиксель в пиксель, не очень удобно конечно скроллить, однако не будет мелко, как в предыдущем варианте. Причем, обратите внимание, что обратный зум не покажет вам реальной картины, и результат верстки может отличаться от настоящих больших экранов. Обратный зум - это когда нажимаете ctrl+- в хроме например, т.е 90%, 75% и.т.д.

суббота, 7 декабря 2019 г.

Как эмулировать большое разрешение экрана для адаптивной вёрстки? [дубликат]

#html #css #media_queries


        
             
                
                    
                        
                            This question already has an answer here:
                            
                        
                    
                
                        
                            Как правильно верстать макет, когда ширина экрана меньше
ширины макета в пикселях?
                                
                                    (1 ответ)
                                
                        
                                Closed 2 года назад.
            
                    
Как эмулировать большое разрешение экрана для адаптивной вёрстки?
    


Ответы

Ответ 1



Для более точного определения разрешения, можно сделать следующим образом: В мозилле: ctrl+shift+m Вверху можете вручную писать нужное разрешение В хроме: Правой кнопкой мыши на сайте и выбираете посмотреть код Тоже самое, можете задавать свои параметры

четверг, 5 декабря 2019 г.

Как сверстать скошеные углы у блоков?

#html #css #media_queries




Народ подскажите как сверстать блоки(div) с кошеными углами на полной версии сайта,
а на планшетной блоки должны быть ровными + в каждом блоке разная картинка в качестве
фона и она заполняет всю область блока.


    


Ответы

Ответ 1



Вот вариант более похожий на то, что в вопросе body { margin: 0; overflow: hidden; } @media (min-width: 600px) { .item { transform: skewX(-15deg); } .content { transform: skewX(15deg); } div.content h1 { transform: rotate(-75deg); } } .accordion { display: flex; } .item { flex: 1; transition: 0.4s; margin-left: -2px; overflow: hidden; display: flex; } .content div { opacity: 0; transition: 200ms; } div.item:hover, div.item:focus { flex: 5; } div.item:hover h1, div.item:focus h1{ opacity: 0; transition: 100ms; } div.item:hover div, div.item:focus div{ opacity: 1; transition: 100ms; } .item:first-child { border-left: 0; flex: 1.25; margin-left: -5em; padding-left: 5em; } .item:last-child { flex: 1.25; margin-right: -5em; padding-right: 5em; } .content { padding: 4em; background-position: 50% 50%; background-size: cover; margin: 0 -5em; flex: 1; display: flex; justify-content: center; } .bg1 { background-image: url("https://i.stack.imgur.com/gW9Md.png"); } .bg2 { background-image: url("https://i.stack.imgur.com/gFeUb.png"); } h1 { color: #fff; font-size: 2em; transform: rotate(-90deg); font-family: monospace; text-align: center; line-height: 1; justify-content: center; } .text { top:0; left:0; width:100%; height:100% }

Агротехника

Легковой
транспорт

Грузоперевозки

Спецтехника

ЖД транспорт



Ответ 2



.button { transform: skewX(-45deg); } .button > div { transform: skewX(45deg); } .button { display: inline-block; padding: .5em 1em; border: 0; margin: .5em; background: #58a; color: white; text-transform: uppercase; text-decoration: none; font: bold 200%/1 sans-serif; }
Click me


Ответ 3



Такой блок с скошенными бордерами, можно сделать с помощью clip-path, угол и сторону можно настраивать отдельно Советую "поиграть с этим свойством" здесь, это поможет #block { width: 200px; height: 400px; -webkit-clip-path: polygon(25% 0%, 100% 0%, 79% 100%, 0% 100%); clip-path: polygon(25% 0%, 100% 0%, 79% 100%, 0% 100%); background: red; }
UPD: Заранее извиняюсь за слабый пример кода

Ответ 4



* { padding: 0; margin: 0; } .skew { -webkit-transform: skewX(-15deg) translate(-50%, -50%); -moz-transform: skewX(-15deg) translate(-50%, -50%); -ms-transform: skewX(-15deg) translate(-50%, -50%); -o-transform: skewX(-15deg) translate(-50%, -50%); transform: skewX(-15deg) translate(-50%, -50%); background-color: blue; position: absolute; top: 50%; left: 50%; width: 250px; }

Hello

World

How's

it

going?



Ответ 5



В этом примере skew включается медиа запросом на ширину экрана $('.info').first().show().animate({ width: '40%' }); $('.item').click(function() { $(this) .next().show().animate({ width: '40%' }) .siblings(".info").animate({ width: 0 }); }); body { overflow: hidden; margin: 0; } @media (min-width: 600px) { .info, .item { transform: skewX(-15deg); } .content { transform: skewX(15deg); } } section { margin-left:50px; text-align:center } .info, .item { height: 150px; float: left; } .item { width: 60px; float:left; background-color: #19B5FE; cursor: pointer; } .info { background-color:#003171; width: 0; display: none; color: #fff }
abc
abc
abc
abc
abc
abc
abc
abc


пятница, 9 ноября 2018 г.

Как правильно верстать макет, когда ширина экрана меньше ширины макета в пикселях?

Ширина макета 1920px. Ширина монитора 1600px. Вопрос: как правильно верстать такой макет и соблюсти все размеры и отступы?


Ответ

1 - Уточните у заказчика, что он в курсе, что дизайнер сделал такой широкий макет. Предупредите, что без адаптивизации хорошо будет смотреться только на больших мониторах. Порой заказчики могут проглядеть ширину в макете дизайнера, не обратить внимания.
2 - Можете воспользоваться в дев тулс в хроме toggle device toolbar ctrl+shift+m. Там, в режиме reponsive можно вручную задать экрану ширину больше, чем монитор, при этом автоматически подберется зум. Работать будет даже пиксель перфект, однако будет достаточно мелко.
3 - Можете задать изначально для body в стилях фиксированную минимальную ширину равную 1920px. Появится горизонтальный скролл, и вы будете верстать пиксель в пиксель, не очень удобно конечно скроллить, однако не будет мелко, как в предыдущем варианте.

Причем, обратите внимание, что обратный зум не покажет вам реальной картины, и результат верстки может отличаться от настоящих больших экранов.
Обратный зум - это когда нажимаете ctrl+- в хроме например, т.е 90%, 75% и.т.д.

четверг, 11 октября 2018 г.

Как эмулировать большое разрешение экрана для адаптивной вёрстки? [дубликат]

На данный вопрос уже ответили: Как правильно верстать макет, когда ширина экрана меньше ширины макета в пикселях? 1 ответ Как эмулировать большое разрешение экрана для адаптивной вёрстки?


Ответ

Для более точного определения разрешения, можно сделать следующим образом:
В мозилле:
ctrl+shift+m
Вверху можете вручную писать нужное разрешение
В хроме:
Правой кнопкой мыши на сайте и выбираете посмотреть код
Тоже самое, можете задавать свои параметры