首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

浅谈网页暗模式的实现

我们浏览网页时,经常会发现许多网页都支持两种主题模式,一种是正常模式,一种是夜间模式,夜间模式也就是我们所说的暗色模式,也可以说是深色模式或者灰色模式。今天我们就来探讨如何让网页实现暗色模式。...其实想要实现网页暗色模式,我们只需要使用CSS中的“prefers-color-scheme”属性来完成设置即可。...prefers-color-scheme属性简介: prefers-color-scheme是CSS媒体特性用于检测用户是否有将系统的主题色设置为亮色或者暗色。...其实,我们只需要用prefers-color-scheme的dark属性值即可,具体源码如下: 普通模式演示 暗色模式演示 最后,我们只需要把PC端的浏览器设置为灰色主题(夜间模式)即可体现效果,...至于手机端的浏览器也是同样的道理,手机端的QQ和微信也是可以实现的,只需要开启应用的夜间模式即可。

61530
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    iOS 中的 Promise 设计模式

    作者:宋英鑫 做iOS开发的同学都非常熟悉代理模式,为避免代码耦合,代理模式的委托者任务交给代理执行,代理执行完毕之后再把回调告诉委托者。委托者不关心代理是怎么执行任务的,只关心结果是成功还是失败。...最终都会执行的回调 when: 多个异步任务执行完毕之后才会回调 Promise模式的实现 Promise设计模式在 iOS/MacOS 平台的最佳实践是由大名鼎鼎的homebrew的作者 Max...Howell 写的一个支持iOS/MacOS 的异步编程框架 – PromiseKit , 作者的另一个广为人知的趣事是因为没有写出反转二叉树而没有拿到Google的offer。...上面的函数中,有一个dispatchbarriersync ,barrier是栅栏的意思,一般来说如果我们有多个异步任务,但是希望他们按照一定的顺序执行,就可以使用这个方法...一般来说, fullfill(id) 在调用的时候最多只支持传递一个参数,在必要的时候,PromiseKit把这些参数放在一个数组里面,这个数组就是 PMKArray ,当检测到这个参数是一个数组的时候

    4.1K10

    iOS 中的 Promise 设计模式

    做iOS开发的同学都非常熟悉代理模式,为避免代码耦合,代理模式的委托者任务交给代理执行,代理执行完毕之后再把回调告诉委托者。委托者不关心代理是怎么执行任务的,只关心结果是成功还是失败。...when: 多个异步任务执行完毕之后才会回调 Promise模式的实现 Promise设计模式在 iOS/MacOS 平台的最佳实践是由大名鼎鼎的homebrew的作者 Max Howell 写的一个支持...iOS/MacOS 的异步编程框架 – PromiseKit , 作者的另一个广为人知的趣事是因为没有写出反转二叉树而没有拿到Google的offer。...上面的函数中,有一个dispatchBarrierSync,barrier是栅栏的意思,一般来说如果我们有多个异步任务,但是希望他们按照一定的顺序执行,就可以使用这个方法。...一般来说, fullfill(id) 在调用的时候最多只支持传递一个参数,在必要的时候,PromiseKit把这些参数放在一个数组里面,这个数组就是 PMKArray ,当检测到这个参数是一个数组的时候

    1.5K00

    iOS开发中的单例模式

    简介 开发者应该经常看到单例模式这个设计模式,那什么是单例模式呢?...需要保证只有一个对象的情况还有很多,根据项目需求的不同一定有其用武之处。那么对于这种要求保证只有一个对象实例的设计模式,就称为单例模式,简明易懂是吧。...iOS开发中的实现 介绍完了单例模式是什么,现在看看怎么实现。 各个语言都有自己的单例模式,其实对于单例模式的实现,最根本的一点就在于保证全局只有一个对象实例。...有的,用 GCD 中的 dispatch_once 方法,就可以保证创建新实例的代码只执行一次,那么其创建的实例也就是全局唯一的实例了。...具体的用法,纯粹看各自的发挥,可以将一些常用的操作提取出来放在头文件中供调用,这样其实就能方便的获取和操作单例的内容了。

    81920

    iOS开发中的单例设计模式

    一、Objective-C中的单例设计 五年前,我曾经在《iOS开发中的设计模式-单例模式》中介绍过Objective-C中的单例设计,可以看到,OC中的单例实现还是比较复杂的,需要考虑的场景也很多。...二、Swift中的单例设计 相比较OC,Swift中的单例设计要简单得多,如下: class SwiftSingleton { static let shared = SwiftSingleton(...let表示这是一个常量,一旦被赋值就不会更改,保证了单例对象的唯一性。 将SwiftSingleton的init初始化方法私有化,保证了该函数在SwiftSingleton外部不会被调用。...也就是说,要想获取SwiftSingleton的实例对象,就必须要通过SwiftSingleton.shared来获取,直接通过SwiftSingleton()是获取不到的。 以上。

    52620

    益思维-iOS 开发中的上帝模式与农民模式

    原创2016-07-20唐巧iOS开发 ? 我在做 iOS 开发的时候,发现自己在写程序的时候,常常处于两种状态的切换,我把这两种状态称为软件开发的上帝模式与农民模式。...对于农民模式的我来说,我需要知道 iOS 开发的各种基本知识,以及一些常见的提升效率的工作方式,以便我能够更快地完成编码工作。...比如将常用的代码片段保存在 Xcode 的 Snippets 中或者 Dash 中,在组织内规范好统一的命名约定和规则,熟悉 iOS 的各种调试技巧,都可以使自己更快把上帝模式下的蓝图转换成实际代码。...农民模式下的效率低下,使得一个人看起来工作了很久,却没有什么产出。 在 iOS 领域,我个人的经验表明,我在一整天的农民模式中,最高可以产出 1000 行左右的代码。...提升农民模式效率 很多 iOS 开发新手对于农民模式不够重视。

    61220

    HTTP 规范中的那些暗坑

    虽然有诸多的优点,但是在协议定义时因为诸多的博弈和限制,还是隐藏了不少暗坑,让人一不小心就会陷入其中。本文总结了 HTTP 规范中常见的几个暗坑,希望大家开发中有意识的规避它们,提升开发体验。...2.冲突的协议 我们首先看看 URI 中的保留字[3],这些保留字不参与编码。保留字符一共有两大类: gen-delims:: / ? # [ ] @ sub-delims:!...经过测试我们可以看出表单提交的内容中,空格都是转为加号的,这种编码类型就是 application/x-www-form-urlencoded,在 WHATWG 规范[5]里是这样定义的: ?...三.X-Forwarded-For 拿到的就是真实 IP 吗? 1.故事 在这个小节开始前,我先讲一个开发中的小故事,可以加深一下大家对这个字段的理解。...相关思路和代码实现可参考 Egg.js 前置代理模式[8]。 5.一句话总结总结 通过 X-Forwarded-For 获取用户真实 IP 时,最好不要取第一个 IP,以防止用户伪造 IP。

    73320

    iOS开发中内存泄漏检测工具--MLeaksFinder

    https://blog.csdn.net/u010105969/article/details/72901598 在iOS 开发过程中我们有时会遇到内存泄漏的问题,我们也会对内存泄漏进行监测,...我们会使用Instrument中的Leaks/Allocations对内存泄漏进行监测,但在使用过程中却会存在各种问题以及不便。...leaks的问题: 其中 Leaked memory 和 Abandoned memory 都属于应该释放而没释放的内存,都是内存泄露,而 Leaks 工具只负责检测 Leaked memory,而不管...Allocations的问题: 对于 Abandoned memory,可以用 Instrument 的 Allocations 检测出来。...MLeaksFinder只在debug模式下有效,而不会影响我们的release包。当程序出现内存泄漏,会弹出一个内存泄漏的提示框,并显示是谁发生了内存泄漏,如图所示: ?

    2.4K20

    Visual C++ 中的重大更改

    程序可以调用参数为 _TWO_DIGIT_EXPONENT 的此函数,以启用符合标准的指数打印。 已将默认行为更改为符合标准的指数打印模式。 ...现在所有无效格式字符串都被视为无效的参数。  fopen 模式字符串验证 在早期版本中,fopen 系列函数以静默方式接受某些无效的模式字符串(例如 r+b+)。...现在可检测无效的模式字符串并将其视为无效的参数。  _O_U8TEXT 模式 _Setmode 函数现在可以准确报告在 in_O_U8TEXT 模式中打开的流模式。...在早期版本的库中,它将报告正在 _O_WTEXT 中打开的此类流。 如果你的代码解释其中编码为 UTF-8 的流的 _O_WTEXT 模式,这则是一项重大更改。...此检查无法检测 DLL 混合,也无法检测涉及 Visual C++ 2008 或早期版本的混合。           STL 包含文件 对 STL 标头中的 include 结构进行了一些更改。

    5.3K10

    目前全球“人气最旺”的暗网黑市是怎样的运作模式?

    根据SurfWatch实验室最新的报告称,目前AlphaBay已经成为最受欢迎的暗网黑市。...正文 在2014年,该黑市就在暗网中出现,尽管类似的网站不断的倒闭,但是AlphaBay的知名度以及人气却在不断上升。...当2016年4月下旬,Nucleus黑市关闭之后其已经成为最受欢迎的黑市。 AlphaBay运作模式。...正如过去的一些情况,对于不熟悉暗网的人,通常会遇到这样或那样的问题,即如何进入到暗网、暗网如何交易、暗网交易有风险吗等。...目前该网站的商品种类还是很多的,而现在它也正因为商品种类比较多,交易相对安全以及对应的技术支持,然后在不断发展中成为了最受欢迎的暗网黑市。

    1.9K70

    Dygraph 中 Range Selector 的监听更改

    之前文章 Dygraph 结合 Angular 实现多图表同步 中,在文末我们留了一个疑问,更多的操作解锁?...那么,我们在滑动的过程中,需要对滑块进行滑动,或者监听范围的改动,我们应该怎么做呢? 使用 zoomCallback zoomCallback 监听两侧滑块的更改值。...: 类型: function(minDate, maxDate, yRanges) - minDate: 开始控件对应的值 milliseconds - maxDate: 结束控件对应的值 milliseconds...- yRanges: 每个 y-axis 的一个 [bottom, top] 数组对 那么,我们需要移动整个选中控件,起始点和结束点控件的值却没有发生改变,这个时候,如果要获取,我们应该如何操作呢?...使用 xAxisRange() 方法 这个方法 xAxisRange() 返回了起始点和结束点控件的值。

    19210

    Visual C++ 中的重大更改

    程序可以调用参数为 _TWO_DIGIT_EXPONENT 的此函数,以启用符合标准的指数打印。 已将默认行为更改为符合标准的指数打印模式。 ...现在所有无效格式字符串都被视为无效的参数。  fopen 模式字符串验证 在早期版本中,fopen 系列函数以静默方式接受某些无效的模式字符串(例如 r+b+)。...现在可检测无效的模式字符串并将其视为无效的参数。  _O_U8TEXT 模式 _Setmode 函数现在可以准确报告在 in_O_U8TEXT 模式中打开的流模式。...在早期版本的库中,它将报告正在 _O_WTEXT 中打开的此类流。 如果你的代码解释其中编码为 UTF-8 的流的 _O_WTEXT 模式,这则是一项重大更改。...此检查无法检测 DLL 混合,也无法检测涉及 Visual C++ 2008 或早期版本的混合。           STL 包含文件 对 STL 标头中的 include 结构进行了一些更改。

    4.8K00

    经典设计模式-iOS的实现

    最近看了《HeadFirst 设计模式》这本书,给组内伙伴准备一次分享,把这次分享记录下来,有需要的可以看看。   这本书主要介绍了四人帮23种经典设计模式中的的14种,也是常用的几种。...看完这本书你就会发现,虽然你以为从没接触过设计模式,但是在代码中确无时无刻有设计模式的痕迹。iOS开发中主要的设计模式是MVC,它其实是一种复合的设计模式,把若干设计模式集合起来就是MVC。...还有我们经常用的delegate,单例,都是这本书会讲的。想学习的可以拿项目中PPT和Demo对照着学,同时,参考四人帮的经典设计模式。PPT和电子书都在项目中“资料”文件夹。     ...demo下载地址:https://github.com/wangdachui/HeadFirst   我除了看这本书,在准备PPT和DEMO的时候还参考了网上的一些资料,也列出来,读者可以自行去查看。...23种经典设计模式:http://blog.csdn.net/cooldragon/article/details/52164380   有任何问题欢迎讨论。

    63970

    iOS---iOS中SQLite的使用

    一.SQLite的使用 采用SQLite数据库来存储数据。SQLite作为一中小型数据库,应用ios中,跟前三种保存方式相比,相对比较复杂一些。还是一步步来吧!...第一步:导入头文件 需要添加SQLite相关的库以及头文件:在项目文件的Build Phases下,找到Link Binary Library(ies),添加libsqlite3.0.dylib(libsqlite3....dylib与前者的区别暂时不知,两者应该差不多);在项目文件中头文件或者源文件中添加头文件#import "/usr/include/sqlite3.h" 第二步:开始使用SQLite: 1.打开数据库...所以要想正确从数据库中取出中文,需要用NSString来接收从数据库取出的字符串。...二.FMDB的使用 github地址是https://github.com/ccgus/fmdb // 继承 # pod 'FMDB/SQLCipher' 1.FMDB的创建: NSString

    1.4K80

    Kubernetes 1.25 中的重大更改和删除

    随着 Kubernetes 的发展和成熟,有些功能可能会被弃用、删除或替换。Kubernetes v1.25 包括几项重大更改和删除。...删除的 API 在当前版本中不再可用时,您必须迁移到新的替换功能。 普遍可用 (GA) 或稳定的 API 版本可能被标记为已弃用,但不得在 Kubernetes 的主要版本中删除。...PodSecurityPolicy 的复杂且经常令人困惑的用法需要进行更改,不幸的是,这将是破坏性更改。...虽然将继续支持 cgroup v1,但此更改使我们准备好应对 cgroup v1 的最终弃用和 cgroup v2 成为替代。...从 v1.25 开始,Kubelet 将逐渐走向不在nat表中创建以下 iptables 链: KUBE-MARK-DROP KUBE-MARK-MASQ KUBE-POSTROUTING 此更改将通过

    1.9K20
    领券