Подтвердить что ты не робот

Экран и мобильные стили

Я просмотрел темы по этому вопросу, а также некоторые результаты поиска Google, но я не могу решить свою проблему.

Я создал таблицу стилей для мобильных устройств (mobile.css), которая по сути является копией моего main.css с изменениями ко многим атрибутам. Когда я загружаю только mobile.css в качестве таблицы стилей, он отлично выглядит на моем iPhone, как раз то, как я хочу. Однако, когда я помещаю оба в, я получаю смесь обоих, но больше main.css

Любая идея, почему?

<head>
<link rel="stylesheet" href="styles/main.css" type="text/css" media="screen" />
<link rel='stylesheet' media='screen and (max-device-width: 480px)' href='styles/mobile.css' type='text/css' />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
</head>
4b9b3361

Ответ 1

В соответствии с документами синтаксис загрузки другого файла в конкретном устройстве/состоянии выглядит следующим образом:

<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" media="only screen and (max-width: 400px)" href="mobile.css" />
<link rel="stylesheet" media="only screen and (min-width: 401px)" href="desktop.css" />

Это загрузит только один файл css для каждого отдельного количества width

Для iPhone 4 и iPod touch нового поколения с дисплеем Retina есть что-то, что вы должны отметить. Ширина iPhone 4 составляет 640 пикселей, что многие разработчики не считают эту ширину шириной мобильного браузера. Если вы добавите этот ниже метатег в документ, проблема будет решена.

<meta name="viewport" content="width=320">

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

Ответ 2

Его трудно узнать без какой-либо разметки, но я предполагаю, что вы должны сделать что-то вроде:
http://www.stuffandnonsense.co.uk/blog/about/hardboiled_css3_media_queries

<link rel="stylesheet" href="base.css" /> // has all the common classes
<link rel="stylesheet" href="mobile.css" media="screen and (max-device-width: 320px)" />
<link rel="stylesheet" href="largescreen.css" media="screen and (min-device-width: 321px)" />

Ответ 3

@scott; может быть, вам нужно определить mobile.css после main.css следующим образом:

<link rel="stylesheet" href="main.css" media="screen" /> 
<link rel="stylesheet" href="mobile.css" media="screen and (max-device-width: 480px)" />

или вы можете определить свой mobile css в main.css следующим образом:

@media screen and (max-device-width: 480px){
  body {
    background: #ccc;
  }
}

EDIT:

напишите <!DOCTYPE html> вместо <DOCTYPE html> в html.

Ответ 4

Ваша таблица стилей для мобильных устройств загружается условно, что означает, что компьютер будет загружать только main.css, в то время как iPhone будет загружать как main.css, так и mobile.css.

Если вы хотите начать с нуля при загрузке страницы на iPhone, просто добавьте этот кусок CSS в начало вашего mobile.css:

/*
YUI 3.4.0 (build 3928)
Copyright 2011 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
*/
html{color:#000;background:#FFF}body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,code,form,fieldset,legend,input,textarea,p,blockquote,th,td{margin:0;padding:0}table{border-collapse:collapse;border-spacing:0}fieldset,img{border:0}address,caption,cite,code,dfn,em,strong,th,var{font-style:normal;font-weight:normal}li{list-style:none}caption,th{text-align:left}h1,h2,h3,h4,h5,h6{font-size:100%;font-weight:normal}q:before,q:after{content:''}abbr,acronym{border:0;font-variant:normal}sup{vertical-align:text-top}sub{vertical-align:text-bottom}input,textarea,select{font-family:inherit;font-size:inherit;font-weight:inherit}input,textarea,select{*font-size:100%}legend{color:#000}

Он эффективно сбрасывает CSS.