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

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

如题,希望是在代码片段本体上实现,不修改思源代码(需要用官方的 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";
}
```
  • 思源笔记

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

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

    20643 引用 • 80671 回帖 • 1 关注
  • Q&A

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

    7273 引用 • 33160 回帖 • 203 关注
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 代码进行调整。

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

欢迎来到这里!

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

注册 关于
请输入回帖内容 ...
  • 我稍微查了一下,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 更新了该回帖
  • 其他回帖
  • 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 2 1 评论

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

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

    大佬如果您能写一个能用的 css 版本的我重新开个贴把积分也给您
    zxkmm
  • 我只能给你提供向 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 回复
  • 查看全部回帖

推荐标签 标签

  • OnlyOffice
    4 引用 • 15 关注
  • Flume

    Flume 是一套分布式的、可靠的,可用于有效地收集、聚合和搬运大量日志数据的服务架构。

    9 引用 • 6 回帖 • 616 关注
  • Rust

    Rust 是一门赋予每个人构建可靠且高效软件能力的语言。Rust 由 Mozilla 开发,最早发布于 2014 年 9 月。

    58 引用 • 22 回帖 • 10 关注
  • 持续集成

    持续集成(Continuous Integration)是一种软件开发实践,即团队开发成员经常集成他们的工作,通过每个成员每天至少集成一次,也就意味着每天可能会发生多次集成。每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽早地发现集成错误。

    14 引用 • 7 回帖
  • Logseq

    Logseq 是一个隐私优先、开源的知识库工具。

    Logseq is a joyful, open-source outliner that works on top of local plain-text Markdown and Org-mode files. Use it to write, organize and share your thoughts, keep your to-do list, and build your own digital garden.

    5 引用 • 62 回帖 • 10 关注
  • iOS

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

    84 引用 • 139 回帖 • 2 关注
  • ZeroNet

    ZeroNet 是一个基于比特币加密技术和 BT 网络技术的去中心化的、开放开源的网络和交流系统。

    1 引用 • 21 回帖 • 615 关注
  • OkHttp

    OkHttp 是一款 HTTP & HTTP/2 客户端库,专为 Android 和 Java 应用打造。

    16 引用 • 6 回帖 • 53 关注
  • TextBundle

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

    1 引用 • 2 回帖 • 42 关注
  • Vditor

    Vditor 是一款浏览器端的 Markdown 编辑器,支持所见即所得、即时渲染(类似 Typora)和分屏预览模式。它使用 TypeScript 实现,支持原生 JavaScript、Vue、React 和 Angular。

    337 引用 • 1751 回帖 • 1 关注
  • jQuery

    jQuery 是一套跨浏览器的 JavaScript 库,强化 HTML 与 JavaScript 之间的操作。由 John Resig 在 2006 年 1 月的 BarCamp NYC 上释出第一个版本。全球约有 28% 的网站使用 jQuery,是非常受欢迎的 JavaScript 库。

    63 引用 • 134 回帖 • 728 关注
  • BND

    BND(Baidu Netdisk Downloader)是一款图形界面的百度网盘不限速下载器,支持 Windows、Linux 和 Mac,详细介绍请看这里

    107 引用 • 1281 回帖 • 31 关注
  • NetBeans

    NetBeans 是一个始于 1997 年的 Xelfi 计划,本身是捷克布拉格查理大学的数学及物理学院的学生计划。此计划延伸而成立了一家公司进而发展这个商用版本的 NetBeans IDE,直到 1999 年 Sun 买下此公司。Sun 于次年(2000 年)六月将 NetBeans IDE 开源,直到现在 NetBeans 的社群依然持续增长。

    78 引用 • 102 回帖 • 656 关注
  • abitmean

    有点意思就行了

    32 关注
  • Kotlin

    Kotlin 是一种在 Java 虚拟机上运行的静态类型编程语言,由 JetBrains 设计开发并开源。Kotlin 可以编译成 Java 字节码,也可以编译成 JavaScript,方便在没有 JVM 的设备上运行。在 Google I/O 2017 中,Google 宣布 Kotlin 成为 Android 官方开发语言。

    19 引用 • 33 回帖 • 54 关注
  • V2EX

    V2EX 是创意工作者们的社区。这里目前汇聚了超过 400,000 名主要来自互联网行业、游戏行业和媒体行业的创意工作者。V2EX 希望能够成为创意工作者们的生活和事业的一部分。

    17 引用 • 236 回帖 • 371 关注
  • Mac

    Mac 是苹果公司自 1984 年起以“Macintosh”开始开发的个人消费型计算机,如:iMac、Mac mini、Macbook Air、Macbook Pro、Macbook、Mac Pro 等计算机。

    164 引用 • 594 回帖 • 1 关注
  • 分享

    有什么新发现就分享给大家吧!

    246 引用 • 1780 回帖
  • 区块链

    区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。所谓共识机制是区块链系统中实现不同节点之间建立信任、获取权益的数学算法 。

    91 引用 • 751 回帖
  • PHP

    PHP(Hypertext Preprocessor)是一种开源脚本语言。语法吸收了 C 语言、 Java 和 Perl 的特点,主要适用于 Web 开发领域,据说是世界上最好的编程语言。

    175 引用 • 407 回帖 • 497 关注
  • 支付宝

    支付宝是全球领先的独立第三方支付平台,致力于为广大用户提供安全快速的电子支付/网上支付/安全支付/手机支付体验,及转账收款/水电煤缴费/信用卡还款/AA 收款等生活服务应用。

    29 引用 • 347 回帖
  • 爬虫

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

    106 引用 • 275 回帖
  • Solidity

    Solidity 是一种智能合约高级语言,运行在 [以太坊] 虚拟机(EVM)之上。它的语法接近于 JavaScript,是一种面向对象的语言。

    3 引用 • 18 回帖 • 364 关注
  • Gitea

    Gitea 是一个开源社区驱动的轻量级代码托管解决方案,后端采用 Go 编写,采用 MIT 许可证。

    4 引用 • 16 回帖 • 3 关注
  • 单点登录

    单点登录(Single Sign On)是目前比较流行的企业业务整合的解决方案之一。SSO 的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。

    9 引用 • 25 回帖 • 6 关注
  • IDEA

    IDEA 全称 IntelliJ IDEA,是一款 Java 语言开发的集成环境,在业界被公认为最好的 Java 开发工具之一。IDEA 是 JetBrains 公司的产品,这家公司总部位于捷克共和国的首都布拉格,开发人员以严谨著称的东欧程序员为主。

    180 引用 • 400 回帖
  • Python

    Python 是一种面向对象、直译式电脑编程语言,具有近二十年的发展历史,成熟且稳定。它包含了一组完善而且容易理解的标准库,能够轻松完成很多常见的任务。它的语法简捷和清晰,尽量使用无异义的英语单词,与其它大多数程序设计语言使用大括号不一样,它使用缩进来定义语句块。

    540 引用 • 672 回帖