Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html CSS媒体查询不工作-尝试根据浏览器宽度加载两个不同的样式表_Html_Css_Browser_Width_Media Queries - Fatal编程技术网

Html CSS媒体查询不工作-尝试根据浏览器宽度加载两个不同的样式表

Html CSS媒体查询不工作-尝试根据浏览器宽度加载两个不同的样式表,html,css,browser,width,media-queries,Html,Css,Browser,Width,Media Queries,因此,我在页面上使用了两个媒体查询: <link rel="stylesheet" media="screen and (max-device-width: 1099px)" href="./src/css/narrow.css" /> <link rel="stylesheet" media="screen and (min-width: 1100px)" href="./src/css/main.css" /> 默认情况下加载main.css one,但当浏览器的

因此,我在页面上使用了两个媒体查询:

<link rel="stylesheet" media="screen and (max-device-width: 1099px)" href="./src/css/narrow.css" />

<link rel="stylesheet" media="screen and (min-width: 1100px)" href="./src/css/main.css" />
默认情况下加载main.css one,但当浏览器的大小重新调整到1100px以下时,它只加载任何样式表,因此整个页面都不会呈现任何样式


有人知道我做错了什么吗?另外,是否可以在main.css中使用媒体查询?所以我只能根据浏览器宽度修改某些元素,而不是加载一个全新的样式表?非常感谢各位:

是的,您可以在主样式表中完成这一切,因此如下所示:

@media only screen and (max-width: 1099px){
 /* css here */
}

@media only screen and (min-width: 1100px){
 /* css here */
}

事实上,我还注意到你有最大设备宽度:开,所以这将只针对iPad/iPhone等,这可能就是为什么你没有在桌面上看到此样式表的原因。另一种方法是使用Javascript/Jquery检测屏幕大小,并根据该屏幕大小加载不同的样式表,但Adam的解决方案可能更好,除非您出于特定原因需要分离样式表


本文将为您提供使用jquery所需的所有信息-

您也可以使用多个查询-每次我确定一个看起来不太合适的宽度时,我都会创建一个新的查询

@media (max-width:319px) {
 // styles
}
@media (min-width:320px) and (max-width:479px) {
 // styles
}
@media (min-width:480px) and (max-width:479px) {
 //styles
}
etc..., etc...
我通常还会在需要它们的每个元素上构建查询。我发现,当您将媒体查询的所有规则放在样式表的一个部分时,维护起来会很混乱

例如:

div.box {
  width: 100%;
}
@media (...) {
  width: 80%;
}
@media (...) {
  width: 60%;
}
etc...
然后在另一个需要调整大小的元素上,我将执行相同的操作:

div.otherbox {
  width: 100%;
}
@media (...) {
  width: 80%;
}
@media (...) {
  width: 60%;
}
etc...

更新:根据你的建议,这就是我的想法。我的设计看起来很棒,直到它在浏览器中达到大约700px的宽度,所以我将其配置为在桌面上当宽度<700px时加载窄.css,在任何设备上宽度<1200px时加载窄.css。这样的设置听起来是否正确且有效,以覆盖任何分辨率的桌面用户以及纵向和横向模式下的移动设备。