Экран и мобильные стили
Я просмотрел темы по этому вопросу, а также некоторые результаты поиска 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>
Ответы
Ответ 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.