各位大佬请问有没有思路实现“代码片段在 linux 上启用,Windows 上不启用”?

本贴最后更新于 484 天前,其中的信息可能已经时移世改

如题,希望是在代码片段本体上实现,不修改思源代码(需要用官方的 binary)。

#windowControls { order: -1; } #closeWindow { order: -1; } #minWindow { order: 0; } #maxWindow { order: 1; }

用 js 实现了,跪求 css 的方法,会重新开贴重新给分,感激不尽!

if (navigator.platform.toLowerCase().includes("linux")) { windowControls.style.order = "-1"; closeWindow.style.order = "-1"; minWindow.style.order = "0"; maxWindow.style.order = "1"; } ```
  • 思源笔记

    思源笔记是一款隐私优先的个人知识管理系统,支持完全离线使用,同时也支持端到端加密同步。

    融合块、大纲和双向链接,重构你的思维。

    24808 引用 • 102059 回帖
  • Q&A

    提问之前请先看《提问的智慧》,好的问题比好的答案更有价值。

    9409 引用 • 42877 回帖 • 110 关注
2 操作
zxkmm 在 2023-12-01 01:46:05 更新了该帖
zxkmm 在 2023-12-01 00:46:21 更新了该帖

相关帖子

被采纳的回答
  • 我只能给你提供向 GPT 问问题的思路 trollface


    我试着问了一下 GPT(下面的回答可能没什么用,但至少可以不断问 GPT):

    【Q】有什么思路能实现“拓展 CSS 代码片段在 linux 上生效,Windows 上不生效”?


    【A】要实现在 Linux 上生效而在 Windows 上不生效的 CSS 代码片段,可以考虑使用 CSS 媒体查询(CSS media queries)来实现。媒体查询是一种 CSS 技术,允许根据设备的特性和属性来应用不同的样式。

    在 Linux 和 Windows 上,可以使用不同的用户代理字符串(User Agent String)来区分两个操作系统。用户代理字符串是浏览器发送给服务器的一部分,其中包含有关浏览器和操作系统的信息。

    以下是一种可能的实现思路:

    1. 首先,检测用户代理字符串中的操作系统信息。可以使用 JavaScript 或服务器端的语言来获取用户代理字符串。
    2. 如果用户代理字符串指示当前操作系统为 Linux,那么在 CSS 中应用特定的样式。可以为 Linux 编写一个 CSS 类或 ID 选择器,并在需要应用样式的元素上使用该选择器。
    3. 如果用户代理字符串指示当前操作系统为 Windows,可以使用 CSS 媒体查询来排除 Linux 样式的应用。在 CSS 中,使用媒体查询来检查操作系统是否为 Windows,并在媒体查询中排除 Linux 样式。例如:
    @media not all and (pointer: fine) and (hover: hover) and (pointer: coarse) and (pointer: none) and (os: linux) { /* 在Linux上生效的样式 */ }

    这个媒体查询将匹配所有操作系统,除了 Linux。在媒体查询内部,可以编写应用于 Linux 以外操作系统的样式规则。

    请注意,用户代理字符串可以被伪造或修改,因此这种方法并不是绝对可靠的。不同的浏览器和操作系统可能会有不同的用户代理字符串格式。因此,在实际应用中,可能需要进行更多的测试和调整来确保样式在目标操作系统上生效。

    这只是一种可能的实现思路,具体的实现方式可能因应用的环境和需求而有所不同。


    (重新生成)【A】要实现在 Linux 上生效,而在 Windows 上不生效的 CSS 代码片段,你可以使用 CSS 媒体查询(Media Queries)来实现。媒体查询允许你根据设备的属性或特征来应用不同的 CSS 样式。

    在 Linux 上,大多数用户代理(User Agents)会提供一个标识来指示操作系统类型,比如 Linux。而在 Windows 上,用户代理通常会提供 WindowsWin 的标识。

    你可以利用这些标识来编写媒体查询,只在 Linux 上应用特定的 CSS 样式。下面是一个示例:

    /* 应用于Linux的CSS样式 */ @media only screen and (any-pointer: fine) and (pointer: fine) and (pointer: coarse) and (hover: none) and (pointer: none) and (device-orientation: landscape) and (device-aspect-ratio: 16/9) and (os: linux) { /* 在这里编写你的CSS代码 */ }

    通过使用媒体查询和 os 属性,你可以在 Linux 上选择性地应用 CSS 样式。请注意,这只是一个示例,你可以根据自己的需求和具体的 CSS 代码进行调整。

    需要注意的是,用户代理可以被修改或伪造,所以这种方法并不是绝对可靠的。但对于大多数普通用户来说,这种方法应该是有效的。

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...
  • 我只能给你提供向 GPT 问问题的思路 trollface


    我试着问了一下 GPT(下面的回答可能没什么用,但至少可以不断问 GPT):

    【Q】有什么思路能实现“拓展 CSS 代码片段在 linux 上生效,Windows 上不生效”?


    【A】要实现在 Linux 上生效而在 Windows 上不生效的 CSS 代码片段,可以考虑使用 CSS 媒体查询(CSS media queries)来实现。媒体查询是一种 CSS 技术,允许根据设备的特性和属性来应用不同的样式。

    在 Linux 和 Windows 上,可以使用不同的用户代理字符串(User Agent String)来区分两个操作系统。用户代理字符串是浏览器发送给服务器的一部分,其中包含有关浏览器和操作系统的信息。

    以下是一种可能的实现思路:

    1. 首先,检测用户代理字符串中的操作系统信息。可以使用 JavaScript 或服务器端的语言来获取用户代理字符串。
    2. 如果用户代理字符串指示当前操作系统为 Linux,那么在 CSS 中应用特定的样式。可以为 Linux 编写一个 CSS 类或 ID 选择器,并在需要应用样式的元素上使用该选择器。
    3. 如果用户代理字符串指示当前操作系统为 Windows,可以使用 CSS 媒体查询来排除 Linux 样式的应用。在 CSS 中,使用媒体查询来检查操作系统是否为 Windows,并在媒体查询中排除 Linux 样式。例如:
    @media not all and (pointer: fine) and (hover: hover) and (pointer: coarse) and (pointer: none) and (os: linux) { /* 在Linux上生效的样式 */ }

    这个媒体查询将匹配所有操作系统,除了 Linux。在媒体查询内部,可以编写应用于 Linux 以外操作系统的样式规则。

    请注意,用户代理字符串可以被伪造或修改,因此这种方法并不是绝对可靠的。不同的浏览器和操作系统可能会有不同的用户代理字符串格式。因此,在实际应用中,可能需要进行更多的测试和调整来确保样式在目标操作系统上生效。

    这只是一种可能的实现思路,具体的实现方式可能因应用的环境和需求而有所不同。


    (重新生成)【A】要实现在 Linux 上生效,而在 Windows 上不生效的 CSS 代码片段,你可以使用 CSS 媒体查询(Media Queries)来实现。媒体查询允许你根据设备的属性或特征来应用不同的 CSS 样式。

    在 Linux 上,大多数用户代理(User Agents)会提供一个标识来指示操作系统类型,比如 Linux。而在 Windows 上,用户代理通常会提供 WindowsWin 的标识。

    你可以利用这些标识来编写媒体查询,只在 Linux 上应用特定的 CSS 样式。下面是一个示例:

    /* 应用于Linux的CSS样式 */ @media only screen and (any-pointer: fine) and (pointer: fine) and (pointer: coarse) and (hover: none) and (pointer: none) and (device-orientation: landscape) and (device-aspect-ratio: 16/9) and (os: linux) { /* 在这里编写你的CSS代码 */ }

    通过使用媒体查询和 os 属性,你可以在 Linux 上选择性地应用 CSS 样式。请注意,这只是一个示例,你可以根据自己的需求和具体的 CSS 代码进行调整。

    需要注意的是,用户代理可以被修改或伪造,所以这种方法并不是绝对可靠的。但对于大多数普通用户来说,这种方法应该是有效的。

    2 回复
  • Wetoria 2 1 评论 via macOS

    如果是 CSS 片段,你可以像 JC 提供的 GPT 回答里的方式。使用媒体查询,判断操作系统是什么。

    如果是 JS 片段,可以从 navigator.userAgent 里获取到操作系统的信息,然后进行判断。

    大佬如果您能写一个能用的 css 版本的我重新开个贴把积分也给您
    zxkmm
  • zxkmm 2 评论

    谢谢大佬!好像这个写了以后,在 windows 上也会被启用。

    @media not all and (pointer: fine) and (hover: hover) and (pointer: coarse) and (pointer: none) and (os: linux){ #windowControls { order: -1; } #closeWindow { order: -1; } #minWindow { order: 0; } #maxWindow { order: 1; } } ```
    毕竟我也没学过,只能你自己慢慢琢磨啦 😁
    JeffreyChen
    @a2930610542 感谢大佬,我还是采纳您的答案了
    zxkmm
  • @Wetoria @a290841209 谢谢两位大佬,这么晚还热心帮忙,这个积分我现在不知道该给谁了哈哈哈哈哈哈哈

    我这样写了好像没用,然后用第一个好像不管哪个系统都会被启用。js 应该比较好实现但是如果可以写 css 就太棒了

    /* 应用于Linux的CSS样式 */ @media only screen and (any-pointer: fine) and (pointer: fine) and (pointer: coarse) and (hover: none) and (pointer: none) and (device-orientation: landscape) and (device-aspect-ratio: 16/9) and (os: linux) { /* 在这里编写你的CSS代码 */ #windowControls { order: -1; } #closeWindow { order: -1; } #minWindow { order: 0; } #maxWindow { order: 1; } }
  • JeffreyChen 1 1 评论

    你可以按 Wetoria 提到的关键词去搜索

    如果是 CSS 片段,你可以像 JC 提供的 GPT 回答里的方式。使用媒体查询,判断操作系统是什么。

    如果是 JS 片段,可以从 navigator.userAgent 里获取到操作系统的信息,然后进行判断。

    感谢,我之前用 js 实现了,但是不太想用 js 因为太臃肿了,如果能 css 实现就太好了
    zxkmm
  • Wetoria 1 via macOS

    我稍微查了一下,CSS 似乎是没有直接通过媒体查询实现的,你可以这样做:

    增加如下 js 片段:

    const userAgent = navigator.userAgent if (userAgent.includes('Windows')) { document.body.classList.toggle('windows', true) }

    然后 css 片段可以这样写:

    .windows { /* 这里面写 windows 的样式,我指的是正常写 CSS,比如我用你的代码举例 */ #windowControls { order: -1; } #closeWindow { order: -1; } #minWindow { order: 0; } #maxWindow { order: 1; } } .linux { /* 这里面写 Linux 的样式 */ }

    js 那一部分,我手上只有 mac,你自己测试一下,按照同样的逻辑加一下 Linux 的代码。

    这样,以后要根据平台加样式也方便了。

    另外,我刚起床-,-,我的一天才刚开始。

    1 回复
    1 操作
    Wetoria 在 2023-12-01 02:47:34 更新了该回帖
  • 谢谢大佬,我还是用 js 实现了。js 有个 navigator.platform (https://developer.mozilla.org/en-US/docs/Web/API/Navigator/platform)可能比读 UA 好一点。只是我一总觉得动 js 不太稳定

    ,所以一直想找纯 css 实现。

    请问我怎样给您积分比较合适

    1 回复
  • platform 也适用于我提供的那段代码。用那种方式,你只需要提供一次,剩下的全可以单独写 CSS 控制了。

    积分倒是无所谓,以后看到的我的内容,好的点点赞也可以。

请输入回帖内容 ...

推荐标签 标签

  • Excel
    31 引用 • 28 回帖
  • 小说

    小说是以刻画人物形象为中心,通过完整的故事情节和环境描写来反映社会生活的文学体裁。

    31 引用 • 108 回帖
  • 尊园地产

    昆明尊园房地产经纪有限公司,即:Kunming Zunyuan Property Agency Company Limited(简称“尊园地产”)于 2007 年 6 月开始筹备,2007 年 8 月 18 日正式成立,注册资本 200 万元,公司性质为股份经纪有限公司,主营业务为:代租、代售、代办产权过户、办理银行按揭、担保、抵押、评估等。

    1 引用 • 22 回帖 • 786 关注
  • 数据库

    据说 99% 的性能瓶颈都在数据库。

    345 引用 • 742 回帖 • 1 关注
  • Caddy

    Caddy 是一款默认自动启用 HTTPS 的 HTTP/2 Web 服务器。

    12 引用 • 54 回帖 • 165 关注
  • 旅游

    希望你我能在旅途中找到人生的下一站。

    93 引用 • 901 回帖
  • SOHO

    为成为自由职业者在家办公而努力吧!

    7 引用 • 55 回帖 • 5 关注
  • 爬虫

    网络爬虫(Spider、Crawler),是一种按照一定的规则,自动地抓取万维网信息的程序。

    106 引用 • 275 回帖 • 2 关注
  • Elasticsearch

    Elasticsearch 是一个基于 Lucene 的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于 RESTful 接口。Elasticsearch 是用 Java 开发的,并作为 Apache 许可条款下的开放源码发布,是当前流行的企业级搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。

    117 引用 • 99 回帖 • 204 关注
  • 996
    13 引用 • 200 回帖 • 2 关注
  • CloudFoundry

    Cloud Foundry 是 VMware 推出的业界第一个开源 PaaS 云平台,它支持多种框架、语言、运行时环境、云平台及应用服务,使开发人员能够在几秒钟内进行应用程序的部署和扩展,无需担心任何基础架构的问题。

    5 引用 • 18 回帖 • 176 关注
  • ZooKeeper

    ZooKeeper 是一个分布式的,开放源码的分布式应用程序协调服务,是 Google 的 Chubby 一个开源的实现,是 Hadoop 和 HBase 的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。

    59 引用 • 29 回帖 • 2 关注
  • iOS

    iOS 是由苹果公司开发的移动操作系统,最早于 2007 年 1 月 9 日的 Macworld 大会上公布这个系统,最初是设计给 iPhone 使用的,后来陆续套用到 iPod touch、iPad 以及 Apple TV 等产品上。iOS 与苹果的 Mac OS X 操作系统一样,属于类 Unix 的商业操作系统。

    87 引用 • 139 回帖 • 1 关注
  • 反馈

    Communication channel for makers and users.

    126 引用 • 929 回帖 • 268 关注
  • SVN

    SVN 是 Subversion 的简称,是一个开放源代码的版本控制系统,相较于 RCS、CVS,它采用了分支管理系统,它的设计目标就是取代 CVS。

    29 引用 • 98 回帖 • 689 关注
  • Firefox

    Mozilla Firefox 中文俗称“火狐”(正式缩写为 Fx 或 fx,非正式缩写为 FF),是一个开源的网页浏览器,使用 Gecko 排版引擎,支持多种操作系统,如 Windows、OSX 及 Linux 等。

    7 引用 • 30 回帖 • 391 关注
  • 叶归
    5 引用 • 16 回帖 • 10 关注
  • TextBundle

    TextBundle 文件格式旨在应用程序之间交换 Markdown 或 Fountain 之类的纯文本文件时,提供更无缝的用户体验。

    1 引用 • 2 回帖 • 79 关注
  • Office

    Office 现已更名为 Microsoft 365. Microsoft 365 将高级 Office 应用(如 Word、Excel 和 PowerPoint)与 1 TB 的 OneDrive 云存储空间、高级安全性等结合在一起,可帮助你在任何设备上完成操作。

    5 引用 • 34 回帖
  • OpenCV
    15 引用 • 36 回帖 • 1 关注
  • Love2D

    Love2D 是一个开源的, 跨平台的 2D 游戏引擎。使用纯 Lua 脚本来进行游戏开发。目前支持的平台有 Windows, Mac OS X, Linux, Android 和 iOS。

    14 引用 • 53 回帖 • 544 关注
  • sts
    2 引用 • 2 回帖 • 226 关注
  • PWL

    组织简介

    用爱发电 (Programming With Love) 是一个以开源精神为核心的民间开源爱好者技术组织,“用爱发电”象征开源与贡献精神,加入组织,代表你将遵守组织的“个人开源爱好者”的各项条款。申请加入:用爱发电组织邀请帖
    用爱发电组织官网:https://programmingwithlove.stackoverflow.wiki/

    用爱发电组织的核心驱动力:

    • 遵守开源守则,体现开源&贡献精神:以分享为目的,拒绝非法牟利。
    • 自我保护:使用适当的 License 保护自己的原创作品。
    • 尊重他人:不以各种理由、各种漏洞进行未经允许的抄袭、散播、洩露;以礼相待,尊重所有对社区做出贡献的开发者;通过他人的分享习得知识,要留下足迹,表示感谢。
    • 热爱编程、热爱学习:加入组织,热爱编程是首当其要的。我们欢迎热爱讨论、分享、提问的朋友,也同样欢迎默默成就的朋友。
    • 倾听:正确并恳切对待、处理问题与建议,及时修复开源项目的 Bug ,及时与反馈者沟通。不抬杠、不无视、不辱骂。
    • 平视:不诋毁、轻视、嘲讽其他开发者,主动提出建议、施以帮助,以和谐为本。只要他人肯努力,你也可能会被昔日小看的人所超越,所以请保持谦虚。
    • 乐观且活跃:你的努力决定了你的高度。不要放弃,多年后回头俯瞰,才会发现自己已经成就往日所仰望的水平。积极地将项目开源,帮助他人学习、改进,自己也会获得相应的提升、成就与成就感。
    1 引用 • 487 回帖 • 2 关注
  • Wide

    Wide 是一款基于 Web 的 Go 语言 IDE。通过浏览器就可以进行 Go 开发,并有代码自动完成、查看表达式、编译反馈、Lint、实时结果输出等功能。

    欢迎访问我们运维的实例: https://wide.b3log.org

    30 引用 • 218 回帖 • 642 关注
  • Outlook
    1 引用 • 5 回帖
  • Swift

    Swift 是苹果于 2014 年 WWDC(苹果开发者大会)发布的开发语言,可与 Objective-C 共同运行于 Mac OS 和 iOS 平台,用于搭建基于苹果平台的应用程序。

    36 引用 • 37 回帖 • 545 关注
  • Hexo

    Hexo 是一款快速、简洁且高效的博客框架,使用 Node.js 编写。

    22 引用 • 148 回帖 • 8 关注