【CSS in Depth 2 精译_065】第四部分:CSS 视觉增强技术 + 第 11 章 颜色与对比概述 + 11.1 通过对比进行交流

news2025/1/11 21:37:25

当前内容所在位置(可进入专栏查看其他译好的章节内容)

  • 第四部分 视觉增强技术 ✔️
  • 【第 11 章 颜色与对比】 ✔️
    • 11.1 通过对比进行交流 ✔️
      • 11.1.1 模式的建立 ✔️
      • 11.1.2 还原设计稿 ✔️
    • 11.2 颜色的定义

文章目录

  • 第四部分 视觉增强技术 Visual enhancements
  • 第 11 章 颜色与对比 Color and contrast
    • 11.1 通过对比进行交流 Communicating with contrast
      • 11.1.1 模式的建立 Establishing patterns
      • 11.1.2 还原设计稿 Implementing the design

《CSS in Depth》新版封面

《CSS in Depth》新版封面

译者按
补完了附录的两篇内容,终于可以开始全新章节的学习了。新版的第四部分是作者从之前的【高级话题】重新拆分出来的。之所以把后面四章列为视觉增强篇,主要也是为了体现 CSS 近年来在这方面取得的最新进展。正如作者谈到的,后续内容会站在专业设计师的角度考虑样式问题。可能有人会说,前端已经够累的了,干嘛还去管设计师的事?殊不知,CSS 水平高下立判的真正分水岭就在于此。很多时候 CSS 面临的挑战和困境并不是 CSS 本身造成的,如果缺乏这样的破圈意识,不仅给不出一针见血的意见,个人的职业发展也会很快遭遇瓶颈。一个人的心智模式并不会因为选择了计算机专业、选择了 CSS 而自动升级;它和其他技能一样,需要刻意练习,也需要一点笨拙与耐心。

第四部分 视觉增强技术 Visual enhancements


本书讲到这里,想必您已经建立了自己的 CSS 知识体系,也应该了解了这门语言的工作原理、处理浏览器样式问题的基本思路、以及如何绕开一些常见的陷阱。至此,也该引入一些趣味性强的内容了。此前构建的页面可能已经实现了功能全面的目标,现在该让它们看起来更美观了。用户往往更信赖经过专业外观设计后的应用产品。如果网站设计得赏心悦目,估计他们会更乐意花时间去浏览。因此,在本篇接下来的四章内容中,我们将整合前面所学的所有知识点,把重心放在与设计相关的一些关键考量上。这些看似微不足道的细节,往往会对网站的观感产生重大影响。



第 11 章 颜色与对比 Color and contrast


本章概要

  • 将设计师的视觉稿转为 HTML 和 CSS 的方法
  • 利用对比设计将用户注意力吸引到页面最重要部分的方法
  • 颜色的选取及相关处理
  • 深入理解色彩空间及 CSS 的各类颜色表示方法
  • 深度解析 OKLCH 色彩空间
  • 与颜色相关的无障碍浏览问题

使用 CSS 和 HTML 来实现设计师提供的视觉稿(designer mockup),是 Web 开发中一个至关重要的环节。着手这类实现工作,其实也是将艺术作品高效转为代码的过程。这种转化过程,有时是简单明了的,而更多的时候则往往需要和设计师进行沟通,最终采取折中的方案。 设计师对视觉稿做出的每一次微调,都需要我们站在系统组织 CSS 代码的角度综合考虑,使其更容易复用。相较于单页面的视觉稿,我们的 CSS 代码应该更具通用性。

转化工作完成后,基于设计师的最初构想、继续完成网站开发的重要任务就落到了开发者身上。您至少应该具备一些设计师的基本素养,站在设计师的角度去思考间距、颜色和排版等方面的问题,这一点极其重要。您得知道怎样确保最终实现的效果是准确的。如果您认可设计师的目标,那整个过程就会比较顺利。

当然了,您身边可能并非总有一名配合默契的设计师,要是身处一家小型创业公司或者面对的是某个个人项目,就只能靠您自己了。在这种情况下,掌握一些基本的设计原则无疑是大有裨益的,这样一来就能自行设计了。

接下来的两章内容将介绍如何像设计师一样思考,完成页面视觉稿,并将其转化为代码。本章将重点关注颜色的处理;第 12 章则重点讨论排版与间距方面的问题。设计稿的转换过程将为这些 CSS 主题的实际研究提供一套行之有效的思维框架。而颜色本身也是个很大的话题,并且在过去几年中发生了很大变化,因此单列出来进行介绍。

其间,我还将强调一些设计师可能会考虑的因素,旨在让您在学完这些内容之后,可以在一定程度上将其应用到实际项目设计中,甚至无需设计师参与也能推进项目开发。为此,需要构建如图 11.1 所示的演示页面。

图 11.1 为 Ink 协同软件设计的最终网页效果图

【图 11.1 为 Ink 协同软件设计的最终网页效果图】

以上截图即为要实现的页面最终效果。如果是从设计师处拿到的设计稿,那么可能还会带有很多附加信息,后续会专门予以介绍;这里先明确设计过程中的几个要素。

11.1 通过对比进行交流 Communicating with contrast

当您看到图 11.1 所示的截图时,留意一下您的视线会落在哪里。大概率是被 Team collaboration done right 这句广告语和它下面的 Get Started 按钮吸引了。您也会看到页面上的一些别的东西 —— 像左上角的公司名称、右上角的导航菜单、页面下方的三栏内容等等 —— 但图片中间的内容无疑是最具吸引力的。原因就在于使用了 对比(contrast

对比是设计中的一种手段,通过突出某物来达到吸引注意力的目的。我们的眼睛和思维天生对模式(patterns)比较敏感。一旦某样东西破坏了模式的整体效果,我们的注意力就会立即转移到它身上。

若要起到对比的效果,页面就必须先建立起模式;如果连规矩都没有,打破规矩就更无从谈起了。在图 11.1 中,“Read More” 字样的导航按钮间的间距保持一致,其所在的三个内容栏的大小和间距也是一样的。此外,三个 “Read More” 按钮样式也完全相同。虽然页面颜色不尽相同,但都来自相同的绿色色调,只是明暗深浅不同罢了。这也是模块化 CSS 为何如此重要的一个原因(详见第 9 章)—— 我们要创建的是一个可以在任意位置使用的按钮,而不是通过层层嵌套的选择器构建的“某个板块下的按钮”(“button-in-a-tile”)。

推行复用样式代码后,网站上就能确保出现一致的模式。专业设计师的一个核心思路,就是先建立统一的模式,然后打破模式、突出页面中最重要的部分。

使用不同的颜色、间距和大小是建立对比的一些关键手法。如果好几个对象(items)是亮色的,还剩一个是暗色的,那您就会率先注意到这个暗色的对象;如果某个项目周围有很多无用的间距(也称 留白(whitespace),那它就会比较突出;同理,尺寸较大的元素也会从一系列较小元素中脱颖而出。为了达到更强烈的对比效果,还可以多种方法组合使用,就像上面示例页中用到的那句 Team Collaboration Done Right 标语那样,它的字号偏大、且周围有留白,此外还紧贴着一个醒目的深色按钮。

不过标语部分并不是页面上唯一用到对比的地方。您会发现,通过对比,信息的重要程度和信息传递效果都有了层次感。除了标语和 “Get Started” 开始按钮,导航菜单(如图 11.2 所示)和页面底部的每个板块(如图 11.3 所示)明显也用到了对比。虽然这些元素的对比程度不如标语部分那么强烈,但在各自的区域内部也都能吸引人们的注意。而页脚是整个页面中相对不太重要的内容,因此设计得很小,也没用到什么对比。

图 11.2 亮色的登录按钮比其他三个深绿色按钮更引人注目

【图 11.2 亮色的登录按钮比其他三个深绿色按钮更引人注目】

图 11.3 带彩色文字和边框效果按钮在清一色黑白文字中格外显眼

【图 11.3 带彩色文字和边框效果按钮在清一色黑白文字中格外显眼】

每个网页都应该有一个目的,或许是讲述某个故事,或许是为了收集信息,亦或是要求用户完成某类任务。除了核心目的,还可能会有导航元素、文本段落、广告以及包含版权信息及友情链接的页脚等。设计师的工作是让最重要的信息凸显出来;而我们开发者的工作,则是不要弄乱设计师的设计。

11.1.1 模式的建立 Establishing patterns

为了创建模式,有些在我们看来并没有那么重要的细节,在设计师的眼中反而会倍受关注。比如某些元素间的精确距离,对多个不同的组件使用相同的边框圆角与盒阴影(box shadow)。设计师甚至还会关注字符的间距和文本行间距。

图 11.4 展示了一张视觉稿,它使用像素单位精确标注了各个子元素的间距。在将设计稿转为代码时,保证精确还原这个过程可能稍显枯燥与繁琐(有时甚至还很棘手)。

图 11.4 带有测量标注的页面设计视觉稿

【图 11.4 带有测量标注的页面设计视觉稿】

视觉稿里使用了几个小方框来标注这些测量过的间距。例如,导航菜单中的按钮相互之间的距离为 10px,主图的底端和三个白底内容栏之间的距离为 40px,各分栏标题以及后续的文本段落之间的距离为 30px,等等。有些固定的间距长度可能会在页面上多次重复出现,这有助于建立模式的视觉一致性。比如,10px25px 的间距在该页面就较为通用。

下面再来看看紧凑设计的一个关键方面:颜色选择(间距和排版的控制也非常重要,下一章将重点关注)。我们将演示如何精确地还原如图 11.4 所示设计。同时也必须意识到网站是会随时间不断演化的。还原视觉稿只是完成了一部分工作,后续可能还需要添加新的特性功能和新的内容,需要始终忠于设计师的愿景。为此,再来看看做好这类工作还需要考虑哪些重要因素。

11.1.2 还原设计稿 Implementing the design

先创建一个新页面,并关联到一个新的样式表。然后将代码清单 11.1 中的 HTML 标记复制到页面中。我们会把整个设计页面划分为多个模块(modules),后续章节会讲解如何编写样式。

代码清单 11.1 页面 HTML 代码

<!doctype html>
<html lang="en-US">
<head>
  <link rel="stylesheet" href="styles.css">
</head>
<body>
  <nav class="nav-container"><!-- 顶部导航容器 -->
    <div class="nav-container__inner">
      <a class="home-link" href="/">Ink</a>
      <ul class="top-nav">
        <li><a href="/features">Features</a></li>
        <li><a href="/pricing">Pricing</a></li>
        <li><a href="/support">Support</a></li>
        <li class="top-nav__featured"><a href="/login">Login</a></li>
      </ul>
    </div>
  </nav>

  <div class="hero"><!-- 巨幅主图 -->
    <div class="hero__inner">
      <h2>Team collaboration done right</h2>
      <a href="/sign-up" class="button button--cta">Get started</a>
    </div>
  </div>

  <div class="container">
    <div class="tile-row"><!-- 三栏板块 -->
      <div class="tile">
        <h4>Work together, even if you're apart</h4>
        <p>Organize your team conversations into threads. Collaborate together on documents in real-time. Use face-to-face <a href="/features/video-calling">video calls</a> when typing just won't do.</p>
        <a href="/collaboration" class="button">Read more</a>
      </div>

      <div class="tile">
        <h4>Take it with you</h4>
        <p>Ink is available on a wide array of devices, so you can work from anywhere:</p>
        <ul class="tag-list">
          <li>Web</li>
          <li>iOS</li>
          <li>Android</li>
          <li>Windows Phone</li>
        </ul>
        <a href="/supported-devices" class="button">Read more</a>
      </div>

      <div class="tile">
        <h4>Priced right</h4>
        <p>Whether you work on a team of three or a three hundred, you'll find our tiered pricing reasonable at every level.</p>
        <a href="/pricing" class="button">Read more</a>
      </div>
    </div>
  </div>

  <footer class="page-footer">
    <div class="page-footer__inner">
      Copyright &copy; 2024 Ink, Inc.
    </div>
  </footer>
</body>
</html>

以上代码使用了 BEM 风格来为样式类命名,以便清楚地知道哪个元素属于哪个模块。双下划线表示模块的子元素,例如 hero__inner;双连字符代码模块的变体形式,例如 button--cta(更多 BEM 用法详见第 9 章)。我们将以自己的方式逐步实现这些模块。第一步先来看看它们所使用的颜色。



关于《CSS in Depth》(中译本书名《深入解析 CSS》)

第 1 版第 2 版
读者评分原版:4.7(亚马逊);中文版:9.3(豆瓣)原版:5.0(亚马逊);中文版:暂无,待出版
出版时间原版:2018 年 3 月;中文版:2020 年 4 月原版:2024 年 7 月;中文版:暂无,待出版
原价原版:$44.99;中文版:¥139.00原版:$59.99;中文版:暂无,待出版
现价原版:$36.49;中文版:¥52.54 起步原版:$52.09;中文版:暂无,待出版
原版国内预订起步价 ¥461.00起步价 ¥750.00

本专栏为该书第 2 版高分译文专栏,全网首发,精译精校,持续更新,计划今年内完成全书翻译,敬请期待!!!

目前已完结的章节(可进入本专栏查看详情,连载期间完全免费):

  • 第一章 层叠、优先级与继承(已完结)
    • 1.1 层叠
    • 1.2 继承
    • 1.3 特殊值
    • 1.4 简写属性
    • 1.5 CSS 渐进式增强技术
    • 1.6 本章小结
  • 第二章 相对单位(已完结)
    • 2.1 相对单位的威力
    • 2.2 em 与 rem
    • 2.3 告别像素思维
    • 2.4 视口的相对单位
    • 2.5 无单位的数值与行高
    • 2.6 自定义属性
    • 2.7 本章小结
  • 第三章 文档流与盒模型(已完结)
    • 3.1 常规文档流
    • 3.2 盒模型
    • 3.3 元素的高度
    • 3.4 负的外边距
    • 3.5 外边距折叠
    • 3.6 容器内的元素间距问题
    • 3.7 本章小结
  • 第四章 Flexbox 布局(已完结)
    • 4.1 Flexbox 布局原理
    • 4.2 弹性子元素的大小
    • 4.3 弹性布局的方向
    • 4.4 对齐、间距等细节处
    • 4.5 本章小结
  • 第五章 网格布局(已完结)
    • 5.1 构建基础网格
    • 5.2 网格结构剖析 (上)
      • 5.2.1 网格线的编号(下)
      • 5.2.2 网格与 Flexbox 配合(下)
    • 5.3 两种替代语法
      • 5.3.1 命名网格线
      • 5.3.2 命名网格区域
    • 5.4 显式网格与隐式网格(上)
      • 5.4.1 添加变化 (中)
      • 5.4.2 让网格元素填满网格轨道(下)
    • 5.5 子网格(全新增补内容)
    • 5.6 对齐相关的属性
    • 5.7 本章小结
  • 第六章 定位与堆叠上下文(已完结)
    • 6.1 固定定位
      • 6.1.1 创建一个固定定位的模态对话框
      • 6.1.2 在模态对话框打开时防止屏幕滚动
      • 6.1.3 控制定位元素的大小
    • 6.2 绝对定位
      • 6.2.1 关闭按钮的绝对定位
      • 6.2.2 伪元素的定位问题
    • 6.3 相对定位
      • 6.3.1 创建下拉菜单(上)
      • 6.3.2 创建 CSS 三角形(下)
    • 6.4 堆叠上下文与 z-index
      • 6.4.1 理解渲染过程与堆叠顺序(上)
      • 6.4.2 用 z-index 控制堆叠顺序(上)
      • 6.4.3 深入理解堆叠上下文(下)
    • 6.5 粘性定位
    • 6.6 本章小结
  • 第七章 响应式设计(已完结)
    • 7.1 移动端优先设计原则(上篇)
      • 7.1.1 创建移动端菜单(下篇)
      • 7.1.2 给视口添加 meta 标签(下篇)
    • 7.2 媒体查询(上篇)
      • 7.2.1 深入理解媒体查询的类型(上篇)
      • 7.2.2 页面断点的添加(中篇)
      • 7.2.3 响应式列的添加(下篇)
    • 7.3 流式布局
    • 7.4 响应式图片
    • 7.5 本章小结
  • 第八章 层叠图层及其嵌套
    • 8.1 用 layer 图层来操控层叠规则(上篇)
      • 8.1.1 图层的定义(上篇)
      • 8.1.2 图层的顺序与优先级(下篇)
      • 8.1.3 revert-layer 关键字(下篇)
    • 8.2 层叠图层的推荐组织方案
    • 8.3 伪类 :is() 和 :where() 的用法
    • 8.4 CSS 嵌套的使用
      • 8.4.1 嵌套选择器的使用
      • 8.4.2 深入理解嵌套选择器
      • 8.4.3 媒体查询及其他 @规则 的嵌套
    • 8.5 本章小结
  • 第九章 CSS 的模块化与作用域
    • 9.1 模块的定义
      • 9.1.1 模块和全局样式
      • 9.1.2 一个简单的 CSS 模块
      • 9.1.3 模块的变体
      • 9.1.4 多元素模块
    • 9.2 将模块组合为更大的结构
      • 9.2.1 模块中多个职责的拆分
      • 9.2.2 模块的命名
    • 9.3 CSS 的作用域
      • 9.3.1 CSS 作用域的就近原则
      • 9.3.2 划定作用域的边界
      • 9.3.3 CSS 中的隐式作用域
      • 9.3.4 关于 CSS 作用域与层叠图层
    • 9.4 CSS 模式库
    • 9.5 本章小结
  • 第十章 CSS 容器查询
    • 10.1 容器查询的一个简单示例
      • 10.1.1 容器尺寸查询的用法
    • 10.2 深入理解容器
      • 10.2.1 容器的类型
      • 10.2.2 容器的名称
      • 10.2.3 容器与模块化 CSS
    • 10.3 与容器相关的单位
    • 10.4 容器样式查询的用法
      • 10.4.1 将模块与所在容器解耦
      • 10.4.2 减少重复代码
    • 10.5 本章小结
  • 附录
    • 附录A:CSS 选择器参考
    • 附录B:CSS 预处理器简介

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2254713.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Java项目实战II基于微信小程序的作品集展示(开发文档+数据库+源码)

目录 一、前言 二、技术介绍 三、系统实现 四、核心代码 五、源码获取 全栈码农以及毕业设计实战开发&#xff0c;CSDN平台Java领域新星创作者&#xff0c;专注于大学生项目实战开发、讲解和毕业答疑辅导。获取源码联系方式请查看文末 一、前言 随着移动互联网技术的飞速…

基于rpcapd与wireshark的远程实时抓包的方法

基于rpcapd与wireshark的远程实时抓包的方法 服务端安装wireshark侧设置 嵌入式设备或服务器上没有图形界面&#xff0c;通常使用tcpdump抓包保存为pcap文件后&#xff0c;导出到本地使用wireshark打开分析&#xff0c;rpcapd可与wireshark配合提供一种远程实时抓包的方案&…

记录一个Flutter 3.24单元测试点击事件bug

哈喽&#xff0c;我是老刘 这两天发现一个Flutter 3.24版本的单元测试的一个小bug&#xff0c;提醒大家注意一下。 老刘自己写代码十多年了&#xff0c;写Flutter也6年多了&#xff0c;没想到前两天在一个小小的BottomNavigationBar 组件上翻了车。 给大家分享一下事件的经过。…

JVM 类加载器有哪些?双亲委派机制的作用是什么?如何自定义类加载器?

类加载器分类 大家好&#xff0c;我是码哥&#xff0c;可以叫我靓仔&#xff0c;《Redis 高手心法》畅销书作者。 先回顾下&#xff0c;在 Java 中&#xff0c;类的初始化分为几个阶段: 加载、链接&#xff08;包括验证、准备和解析&#xff09;和 初始化。 而 类加载器&#x…

视频监控汇聚平台Liveweb视频安防监控实时视频监控系统操作方案

Liveweb国标GB28181视频平台是一种基于国标GB/T28181协议的安防视频流媒体能力平台。它支持多种视频功能&#xff0c;包括实时监控直播、录像、检索与回看、语音对讲、云存储、告警以及平台级联等功能。该平台部署简单、可扩展性强&#xff0c;支持全终端、全平台分发接入的视频…

Docker-Compose环境变量

Docker-Compose环境变量 背景配置文件修改docker-compose.yml在服务内部使用环境变量重新构建容器补充 背景 现状是通过Docker-Compose配置管理系统的各个容器服务、因为是微服务架构所以配置文件很多、但是例如数据库、redis、kafka等配置都是同一份但是需要在多个配置文件做…

cocotb pytest

打印python中的print &#xff0c; 应该使用 pytest -s pytest --junitxmltest_report.xml --htmlreport.html

openEuler yum 设置国内镜像

查看openEuler系统信息 cat /etc/os-release可以看到详细系统版本如下 NAME"openEuler" VERSION"24.09" ID"openEuler" VERSION_ID"24.09" PRETTY_NAME"openEuler 24.09" ANSI_COLOR"0;31"系统使用的版本是24.0…

电脑鼠标箭头一直闪烁怎么回事?原因及解决方法

电脑鼠标箭头不停闪烁&#xff0c;很多用户都曾遇到过&#xff0c;就是点击也无法点击&#xff0c;只能看到箭头一直闪动。造成这种故障的原因有很多&#xff0c;可能是硬件、软件或系统的问题。本文将介绍电脑鼠标箭头不停闪烁的可能原因和相应的解决方法&#xff0c;帮助大家…

【开源】A064—基于JAVA的民族婚纱预定系统的设计与实现

&#x1f64a;作者简介&#xff1a;在校研究生&#xff0c;拥有计算机专业的研究生开发团队&#xff0c;分享技术代码帮助学生学习&#xff0c;独立完成自己的网站项目。 代码可以查看项目链接获取⬇️&#xff0c;记得注明来意哦~&#x1f339; 赠送计算机毕业设计600个选题ex…

Qt6.8 QGraphicsView鼠标坐标点偏差

ui文件拖放QGraphicsView&#xff0c;src文件定义QGraphicsScene赋值给图形视图。 this->scene new QGraphicsScene();ui.graph->setScene(this->scene);对graphicview过滤事件&#xff0c;只能在其viewport之后安装&#xff0c;否则不响应。 ui.graph->viewport…

TxT360: 一个大规模、高质量、多源融合的数据集,专为预训练大型语言模型设计。

2024-10-04, LLM360项目团队创建了TxT360数据集&#xff0c;这个数据集通过整合多种数据源&#xff0c;为预训练大型语言模型提供了丰富的训练材料&#xff0c;具有重要的研究和应用价值。 数据集地址&#xff1a;TxT360|预训练语言模型数据集|预训练数据集 一、研究背景&…

计算机网络-GRE基础实验二

前面我们学习了GRE隧道的建立以及通过静态路由指向的方式使得双方能够网络互联&#xff0c;但是通过静态路由可能比较麻烦&#xff0c;GRE支持组播、单播、广播因此可以在GRE隧道中运行动态路由协议使得网络配置更加灵活。 通过前面的动态路由协议的学习我们知道动态路由协议都…

asp.net core过滤器应用

筛选器类型 授权筛选器 授权过滤器是过滤器管道的第一个被执行的过滤器&#xff0c;用于系统授权。一般不会编写自定义的授权过滤器&#xff0c;而是配置授权策略或编写自定义授权策略。简单举个例子。 using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCo…

Pixtral Large开源:Mistral AI的1240亿参数多模态模型超越GPT-4o等竞争对手

Pixtral Large是什么 Pixtral Large是由法国人工智能初创公司Mistral AI开发的超大多模态模型&#xff0c;拥有1240亿参数&#xff0c;2024年11月18日正式对外发布。它基于Mistral Large 2开发而成&#xff0c;具备1230亿参数的多模态解码器和10亿参数的视觉编码器。这个模型能…

【Diffusion分割】基于先验知识的显式-隐式扩散模型用于医学图像分割

扩散概率模型(DPM)在当前的图像生成任务中取得了无与伦比的成果,最近的一些研究工作将其应用于多个计算机视觉任务中,如图像超分辨率、物体检测等。得益于 DPM 生成细粒度细节的卓越能力,这些研究工作取得了显著的成果。在本文中,提出了一种新的基于 DPM 的生成式医学图像…

双目相机的标定,视差图,深度图,点云生成思路与实现。

该文档记录从双目相机标定到点云生成的所有过程&#xff0c;同时会附上代码。 代码直接能跑。https://github.com/stu-yzZ/stereoCamera 目录 大致思路如下&#xff1a; 一、相机标定 1、相机参数介绍 2、单目相机标定 3、双目相机标定 二、图片畸变矫正 三、极线矫正…

记录一下,解决js内存溢出npm ERR! code ELIFECYCLEnpm ERR! errno 134 以及 errno 9009

项目是个老项目&#xff0c;依赖包也比较大&#xff0c;咱就按正常流程走一遍来详细解决这个问题&#xff0c;先看一下node版本&#xff0c;我用的是nvm管理的&#xff0c;详细可以看我的其他文章 友情提醒&#xff1a;如果项目比较老&#xff0c;包又大&#xff0c;又有一些需…

秒懂:使用js验证hash, content hash , chunk hash的区别

一、使用js验证hash, content hash , chunk hash的区别 1、计算一般的 Hash&#xff08;以简单字符串为例&#xff09; 使用crypto-js库来进行哈希计算&#xff0c;需提前引入npm install crypto-js库。 crypto-js&#xff1a; 是一个JavaScript加密算法库&#xff0c;用于实…

基于MATLAB野外观测站生态气象数据处理分析实践应用

1.本课程基于MATLAB语言 2.以实践案例为主&#xff0c;提供所有代码 3.原理与操作结合 4.布置作业&#xff0c;答疑与拓展 示意图&#xff1a; 以野外观测站高频时序生态气象数据为例&#xff0c;基于MATLAB开展上机操作&#xff1a; 1.不同生态气象要素文件的数据读写与批处理…