有没有办法在某些条件下禁用媒体查询?

发布于 2024-12-07 03:35:52 字数 274 浏览 0 评论 0原文

我在主站点以及站点的“预览”中使用相同的样式表(不在 iframe 中,因为我需要它具有交互性)。问题是,预览不会占用 100% 的屏幕宽度,因此当媒体查询基于屏幕尺寸时,页面的行为会很奇怪。不过,我可以将编辑器/预览模式设置为固定宽度,所以我想也许有某种方法可以在某些条件下禁用媒体查询?但我不知道如何解决这个问题。要么通过 JavaScript,要么可能在媒体查询之后加载一个额外的通用样式表,这会以某种方式重置内容。

否则,我可能必须制作备用样式表,这将很难维护,或者重新设计页面,使预览区域为宽度的 100%。

I am using the same stylesheet for the main site as well as a 'preview' of the site (NOT in an iframe because I need it to be interactive). The issues is, the preview does not take up 100% of the screen width, so when media queries are based on screen size, the page behaves oddly. I am ok with making the editor/preview mode fixed width, though, so I thought perhaps there is some way I can disable the media-queries under certain conditions? I have no idea how to approach that, though. Either through javascript, or potentially loading an additional, generic stylesheet after the mediaqueries that would somehow reset things.

Otherwise I may have to make alternate stylesheets, which would be a pain to maintain, or redesign the page so that the preview area is 100% of the width.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

往事随风而去 2024-12-14 03:35:52

您有多种选择。

  • 首先,您可以禁用“有问题的”样式表:
    使用 ,您可以在 onload 处理程序中运行此命令: document.getElementById("mediaSheet ").sheet.disabled = true;
  • 如果您想编码,您可以有条件地将此链接添加到最终的 HTML 中。例如,如果使用 GET 参数 ?preview=true 请求页面,则不会生成样式表元素。

You've got a number of options.

  • First off, you can disable the "offending" stylesheet:
    with <link id="mediaSheet" rel="stylesheet" href="....">, you may run this in your onload handler: document.getElementById("mediaSheet").sheet.disabled = true;.
  • If you feel like coding, you may add this link to your final HTML conditionally. E.g. if the page is requested with a GET parameter ?preview=true, the stylesheet element will not be generated.
一笑百媚生 2024-12-14 03:35:52

将视口元设置为符合媒体查询的特定宽度。

确保您的比例设置正确。如果您希望移动设备能够看到桌面版本,我倾向于将其删除。

Set the viewport meta to be a certain width that complies with the media query.

Ensure you have the scale set correctly though. I tend to remove it if you want a mobile to be able to see the desktop version.

爱格式化 2024-12-14 03:35:52

就像添加到A.Pavlov的答案(我还不能添加评论):

如果你想使用JQuery

$('#mediaSheet')[0].sheet.disabled = true

或者如果你想禁用所有媒体查询,请使用class =“mediaSheet”而不是ID:

$('.mediaSheet').each(function(){
    $(this)[0].sheet.disabled = true;
});

Just like to add to A.Pavlov's answer (I can't add comments yet):

If you want to use JQuery

$('#mediaSheet')[0].sheet.disabled = true

Or if you want to disable all media queries, use class="mediaSheet" instead of ID:

$('.mediaSheet').each(function(){
    $(this)[0].sheet.disabled = true;
});
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文