【发布时间】:2012-11-30 15:05:58
【问题描述】:
我目前正在尝试设计一种与多种屏幕尺寸兼容的布局。我设计的屏幕尺寸如下:
屏幕尺寸:
- 640x480
- 800x600
- 1024x768
- 1280x1024(及更大)
我遇到的问题是创建 css3 媒体查询,这样当窗口的宽度达到这些宽度之一时,我的布局就会发生变化。下面是我目前正在使用的媒体查询示例,但它对我不起作用,所以我想知道是否有人可以帮助我解决它。
<link rel="stylesheet" type="text/css" media="screen and (max-width: 700px)" href="css/devices/screen/layout-modify1.css">
<link rel="stylesheet" type="text/css" media="screen and (min-width: 701px) and (max-width: 900px)" href="css/devices/screen/layout-modify2.css">
<link rel="stylesheet" type="text/css" media="screen and (max-width: 901px)" href="css/devices/screen/layout-modify3.css">
我尝试使用一组新的媒体查询,但它们仍然不适合我。有人可以帮助解释我错了什么。你们中的一些人已经尝试过解释,但我不明白。新的媒体查询如下所示:
<link rel="stylesheet" type="text/css" media="screen and (max-width: 640px)" href="css/devices/screen/layout-modify1.css">
<link rel="stylesheet" type="text/css" media="screen and (max-width: 800px)" href="css/devices/screen/layout-modify2.css">
<link rel="stylesheet" type="text/css" media="screen and (max-width: 1024px)" href="css/devices/screen/layout-modify3.css">
<link rel="stylesheet" type="text/css" media="screen and (max-width: 1280px)" href="css/devices/screen/layout-modify4.css">
【问题讨论】:
-
可以改用javascript吗?
-
@Titanium 媒体查询不是静态的。调整浏览器的大小将根据浏览器现在满足的条件重新设置元素的样式。
-
@JaPerk14 您能否更具体地说明什么不起作用?你知道一个 640px 宽的设备会加载所有 4 个样式表,对吧? (因为所有这些表达式都是真的:640
-
好的,我会尽量说得更具体一些。例如,假设浏览器宽度为 640,则不应应用 800、1024 和 1280 大小的媒体查询的样式。我想你可能已经解决了我的问题,西马农。您可以更改我的新媒体查询,以便它们在浏览器宽度更改为特定宽度时正常工作并更改样式。
-
这与“响应式”设计相反,您的工作量增加了 4 倍,因为您需要维护四种设计。您应该为所有内容采用一种“流体响应式”设计,然后仅使用媒体查询来解决特定问题。例如,如果侧边栏没有足够的空间,这不是特定于设备的问题,这只是意味着您不希望您的内容超出某个限制,并且该限制不应该由设备决定,而是它应该由内容决定。默认情况下,HTML 是独立于设备的——你将朝着依赖于设备的方向前进。
标签: html css media-queries