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

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

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

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

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

    22367 引用 • 89514 回帖
  • Q&A

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

    8124 引用 • 37041 回帖 • 160 关注
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 代码进行调整。

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

欢迎来到这里!

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

注册 关于
请输入回帖内容 ...
  • 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
  • 谢谢大佬,我还是用 js 实现了。js 有个 navigator.platform (https://developer.mozilla.org/en-US/docs/Web/API/Navigator/platform)可能比读 UA 好一点。只是我一总觉得动 js 不太稳定

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

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

    1 回复
  • @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;
        }
    
    }
    
  • 查看全部回帖

推荐标签 标签

  • 阿里云

    阿里云是阿里巴巴集团旗下公司,是全球领先的云计算及人工智能科技公司。提供云服务器、云数据库、云安全等云计算服务,以及大数据、人工智能服务、精准定制基于场景的行业解决方案。

    89 引用 • 345 回帖
  • Tomcat

    Tomcat 最早是由 Sun Microsystems 开发的一个 Servlet 容器,在 1999 年被捐献给 ASF(Apache Software Foundation),隶属于 Jakarta 项目,现在已经独立为一个顶级项目。Tomcat 主要实现了 JavaEE 中的 Servlet、JSP 规范,同时也提供 HTTP 服务,是市场上非常流行的 Java Web 容器。

    162 引用 • 529 回帖
  • BND

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

    107 引用 • 1281 回帖 • 27 关注
  • Python

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

    543 引用 • 672 回帖
  • Sublime

    Sublime Text 是一款可以用来写代码、写文章的文本编辑器。支持代码高亮、自动完成,还支持通过插件进行扩展。

    10 引用 • 5 回帖
  • JVM

    JVM(Java Virtual Machine)Java 虚拟机是一个微型操作系统,有自己的硬件构架体系,还有相应的指令系统。能够识别 Java 独特的 .class 文件(字节码),能够将这些文件中的信息读取出来,使得 Java 程序只需要生成 Java 虚拟机上的字节码后就能在不同操作系统平台上进行运行。

    180 引用 • 120 回帖 • 1 关注
  • Mac

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

    166 引用 • 595 回帖 • 1 关注
  • 30Seconds

    📙 前端知识精选集,包含 HTML、CSS、JavaScript、React、Node、安全等方面,每天仅需 30 秒。

    • 精选常见面试题,帮助您准备下一次面试
    • 精选常见交互,帮助您拥有简洁酷炫的站点
    • 精选有用的 React 片段,帮助你获取最佳实践
    • 精选常见代码集,帮助您提高打码效率
    • 整理前端界的最新资讯,邀您一同探索新世界
    488 引用 • 384 回帖 • 9 关注
  • 京东

    京东是中国最大的自营式电商企业,2015 年第一季度在中国自营式 B2C 电商市场的占有率为 56.3%。2014 年 5 月,京东在美国纳斯达克证券交易所正式挂牌上市(股票代码:JD),是中国第一个成功赴美上市的大型综合型电商平台,与腾讯、百度等中国互联网巨头共同跻身全球前十大互联网公司排行榜。

    14 引用 • 102 回帖 • 374 关注
  • 小说

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

    28 引用 • 108 回帖
  • React

    React 是 Facebook 开源的一个用于构建 UI 的 JavaScript 库。

    192 引用 • 291 回帖 • 385 关注
  • Typecho

    Typecho 是一款博客程序,它在 GPLv2 许可证下发行,基于 PHP 构建,可以运行在各种平台上,支持多种数据库(MySQL、PostgreSQL、SQLite)。

    12 引用 • 65 回帖 • 437 关注
  • JetBrains

    JetBrains 是一家捷克的软件开发公司,该公司位于捷克的布拉格,并在俄国的圣彼得堡及美国麻州波士顿都设有办公室,该公司最为人所熟知的产品是 Java 编程语言开发撰写时所用的集成开发环境:IntelliJ IDEA

    18 引用 • 54 回帖
  • 星云链

    星云链是一个开源公链,业内简单的将其称为区块链上的谷歌。其实它不仅仅是区块链搜索引擎,一个公链的所有功能,它基本都有,比如你可以用它来开发部署你的去中心化的 APP,你可以在上面编写智能合约,发送交易等等。3 分钟快速接入星云链 (NAS) 测试网

    3 引用 • 16 回帖 • 1 关注
  • 电影

    这是一个不能说的秘密。

    120 引用 • 599 回帖
  • Markdown

    Markdown 是一种轻量级标记语言,用户可使用纯文本编辑器来排版文档,最终通过 Markdown 引擎将文档转换为所需格式(比如 HTML、PDF 等)。

    167 引用 • 1513 回帖 • 1 关注
  • Firefox

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

    8 引用 • 30 回帖 • 407 关注
  • 尊园地产

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

    1 引用 • 22 回帖 • 762 关注
  • 互联网

    互联网(Internet),又称网际网络,或音译因特网、英特网。互联网始于 1969 年美国的阿帕网,是网络与网络之间所串连成的庞大网络,这些网络以一组通用的协议相连,形成逻辑上的单一巨大国际网络。

    98 引用 • 344 回帖
  • DevOps

    DevOps(Development 和 Operations 的组合词)是一组过程、方法与系统的统称,用于促进开发(应用程序/软件工程)、技术运营和质量保障(QA)部门之间的沟通、协作与整合。

    47 引用 • 25 回帖 • 1 关注
  • Solidity

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

    3 引用 • 18 回帖 • 398 关注
  • FFmpeg

    FFmpeg 是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。

    23 引用 • 32 回帖
  • 微信

    腾讯公司 2011 年 1 月 21 日推出的一款手机通讯软件。用户可以通过摇一摇、搜索号码、扫描二维码等添加好友和关注公众平台,同时可以将自己看到的精彩内容分享到微信朋友圈。

    130 引用 • 793 回帖
  • Google

    Google(Google Inc.,NASDAQ:GOOG)是一家美国上市公司(公有股份公司),于 1998 年 9 月 7 日以私有股份公司的形式创立,设计并管理一个互联网搜索引擎。Google 公司的总部称作“Googleplex”,它位于加利福尼亚山景城。Google 目前被公认为是全球规模最大的搜索引擎,它提供了简单易用的免费服务。不作恶(Don't be evil)是谷歌公司的一项非正式的公司口号。

    49 引用 • 192 回帖 • 1 关注
  • 单点登录

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

    9 引用 • 25 回帖
  • 旅游

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

    90 引用 • 899 回帖 • 1 关注
  • 国际化

    i18n(其来源是英文单词 internationalization 的首末字符 i 和 n,18 为中间的字符数)是“国际化”的简称。对程序来说,国际化是指在不修改代码的情况下,能根据不同语言及地区显示相应的界面。

    8 引用 • 26 回帖