@Медиа-мин-ширина и максимальная ширина


у меня есть это @media настройка:

HTML:

<head>
  <meta name="viewport" content="width=device-width, user-scalable=no" />
</head>

CSS:

@media screen and (min-width: 769px) {
    /* STYLES HERE */
}

@media screen and (min-device-width: 481px) and (max-device-width: 768px) { 
    /* STYLES HERE */
}

@media only screen and (max-device-width: 480px) {
    /* STYLES HERE */
}

С этой настройкой он работает на iPhone, но он не работает в браузере.

это потому что у меня уже есть device В мета, а может и есть max-width:480px вместо этого?

3 175

3 ответа:

Я нашел лучший способ, чтобы написать CSS по умолчанию для старых браузеров, как старые браузеры, включая т. е. 5.5, 6, 7 и 8. Не могу читать @media. Когда я использую @media, я использую его так:

<style type="text/css">
    /* default styles here for older browsers. 
       I tend to go for a 600px - 960px width max but using percentages
    */
    @media only screen and (min-width:960px){
        /* styles for browsers larger than 960px; */
    }
    @media only screen and (min-width:1440px){
        /* styles for browsers larger than 1440px; */
    }
    @media only screen and (min-width:2000px){
        /* for sumo sized (mac) screens */
    }
    @media only screen and (max-device-width:480px){
       /* styles for mobile browsers smaller than 480px; (iPhone) */
    }
    @media only screen and (device-width:768px){
       /* default iPad screens */
    }
    /* different techniques for iPad screening */
    @media only screen and (min-device-width: 481px) and (max-device-width: 1024px) and (orientation:portrait) {
      /* For portrait layouts only */
    }

    @media only screen and (min-device-width: 481px) and (max-device-width: 1024px) and (orientation:landscape) {
      /* For landscape layouts only */
    }
</style>

но вы можете делать все, что вам нравится с вашим @media, это просто пример того, что я нашел лучше всего для меня при создании стилей для всех браузеров.

спецификации iPad CSS.

также! Если вы ищете для печати вы можете использовать @media print{}

основная проблема заключается в использовании max-device-width против простого старого max-width.

использование ключевого слова "устройство" нацелено на физический размер экрана, а не на ширину окна браузера.

например:

@media only screen and (max-device-width: 480px) {
    /* STYLES HERE for DEVICES with physical max-screen width of 480px */
}

и

@media only screen and (max-width: 480px) {
    /* STYLES HERE for BROWSER WINDOWS with a max-width of 480px. 
       This will work on desktops when the window is narrowed.  */
}

правильное значение content атрибут должен включать initial-scale вместо:

<meta name="viewport" content="width=device-width, initial-scale=1">
                                                   ^^^^^^^^^^^^^^^