**盒模型:**CSS中的盒模型描述了元素如何在页面上呈现,包括内容(content)、内边距(padding)、边框(border)和外边距(margin)。...2.如何在 React 中实现组件之间的通信?3.Angular 的依赖注入是如何工作的?4.你如何使用 jQuery 选择和操作 DOM?...3.解释一下视口(Viewport)和视口单位(Viewport Units)。### 回答示例:**媒体查询:**使用CSS媒体查询可以根据设备的屏幕宽度等特性应用不同的样式。...**视口和视口单位:**视口是用户在屏幕上看到的区域。视口单位(如vw、vh、vmin、vmax)是相对于视口尺寸的单位,可以方便地实现响应式布局。...初始化:使用git init命令在项目目录中初始化Git仓库。添加更改:使用git add命令将文件添加到暂存区。提交:使用git commit命令将暂存区的更改提交到本地仓库,并添加提交信息。
我将在本系列中讨论的是范围,条件和动态样式以及可重用性。 作用域 作用域定是众所周知的CSS挑战,它的目的是编写不会影响到组件外部的样式,从而避免意外的副作用。...条件和动态样式 虽然前端应用程序中的状态开始变得越来越先进,但CSS仍然是静态的。...我们真正想要做的只是传递颜色并使用CSS定义状态,如悬停,焦点,禁用等。这称为动态样式,因为我们不再在预定义样式之间切换 - 我们不知道接下来会发生什么。...这个想法是CSS可以限定为特定组件 - 并且只限于该组件 - 以使这些特定样式不与其他组件共享或泄露到其他组件,并且仅在需要时才调用。...您可以通过属性看到渲染图像的宽度从200px开始,然后当视口宽度变为至少30rem时,宽度增加到400px宽。
我可以在不产生任何意外后果的情况下,添加、更改和删除 CSS。我对组件样式的更改不会影响其他任何内容。如果删除组件,我也会删除它的 CSS。不再是只增不减的样式表了!...关于性能,CSS-in-JS 库跟踪我在页面上使用的组件,只将它们的样式注入 DOM 中。...我还可以基于不同的状态(variant="primary" vs variant="secondary")或全局主题轻松调整组件的样式。当我动态更改该上下文时,该组件将自动应用正确的样式。?...动态样式:基于全局主题或不同状态设置组件样式。 CSS-in-JS 还提供 CSS 预处理器的所有重要功能。...如果你使用 JavaScript 框架来构建包含组件的 Web 应用程序,那么 CSS-in-JS 可能非常适合。特别是你所在团队中每个人都理解基本的 JavaScript。
任何CSS文件都可以安全地更新,而无需担心会影响其他页面,因为它只具有局部作用域,只能影响使用了更改后的CSS模块文件的其他组件。...这使得代码更具可读性,因为我们可以在组件的定义中直接查看和理解样式。 「动态样式」:与传统的 CSS 不同,CSS-in-JS 允许我们根据组件的状态或属性来动态生成样式。...我们只需要将CSS文件的名称更改为[文件名].Modules.css;我们可以用任何其他名称替代[文件名]。在使用CSS模块时,我们必须使用import关键字将文件导入到特定组件中。...但是,我认为CSS模块是会在未来「大放异彩」,特别是「全局范围」和「可重用性」,这使得我们以后写样式时,不用如履薄冰。CSS模块越来越广泛地用于在特定组件中本地描述样式并避免全局作用域。...在下面的代码中,我们演示了如何在React组件中利用CSS Modules。 函数组件 在React函数组件中,我们将使用CSS Modules。
在移动设备上,加载页面时,会显示带有 url 的状态栏,此栏会占用部分视口空间。在几秒钟和一些交互之后,状态栏可能会滑开,以便为用户提供更大的视口体验。...,可以使用小型、大型和动态视口单位,并在物理视口单元的基础上添加逻辑等效单位。...当状态栏消失时,也许可以稍微改变一下不协调的布局,这样就可以不用担心使用dvh(动态视口高度)。...例如,当前无法在包装图像时选择标签,因此很难确定锚定标记在该用例中如何更改其样式。可以使用 :has() 实现: a:has(> img) {...}...根据访问视口的大小,可以在页面加载上节省更多资源。当用户与媒体滚动条交互时,继续保存。这些图像上都有load="lazy"属性,再加上CSS完全隐藏元素,这意味着永远不会对图像发出网络请求。
这可能会导致组件太宽,而我们并不想这样做。考虑以下示例 ? 由于宽度是以像素为单位定义的,因此不能保证上面的方法适用于移动视口。为了解决这个问题,我们可以使用百分比来代替像素作为最小和最大属性。...如定义一个3ch的宽度,那么就只能装下 3个0。 <!...请注意,如果可用视口空间不足,则宽度如何更改为其父级的100%。 ? 事例源码:https://codepen.io/shadeed/pe......最大宽度/高度和视口单位的流体比率 为了使比例容器能够根据视口大小进行响应缩放,引入了padding hack。 现在,我们可以通过组合CSS中的视口单位和最大宽度/高度来模仿相同的行为。 ?...为了使其流畅,我们需要以下内容: 纵横比:高度/宽度 容器的宽度:可以是固定数字,也可以是动态数字(100%) 设置height为视口宽度的100%乘以纵横比 设置max-heigh,该高度是容器的宽度乘以纵横比
在上面的示例中,50vmax 表示“视口最大尺寸的 50%。 演示地址:https://codepen.io/shadeed/pen/LYmzVZW?...有了上面的内容,当卡片占据整个视口宽度时,它的半径为零,或者在更大的屏幕上为 8px。...CSS 文章标题 在构建CSS 文章标题时,我需要一种方法来为内容添加动态填充,同时,在较小的视口上保持最小值。...为此,我们需要一种在 CSS 中使用以下公式的方法: 动态填充 = (视口宽度 - 包装宽度) / 2 感谢 CSS max() 函数,我们可以添加最小填充,以及在需要时切换到动态填充的方法。...间距 有时,我们可能需要根据视口宽度更改组件或网格的间距。不带 CSS 比较功能!我们只需要设置一次。
视口百分比单位有点难以理解,部分原因是它们基于视口的四个概念: 「UA 默认视口」,可能等于大视口或小视口,或一个中间尺寸 「大视口」,或浏览器界面可缩回部分缩回时的可用尺寸 「小视口」,假定浏览器界面的可缩回部分已展开...「动态视口」,无论浏览器界面是否展开或缩回,动态视口都会存在,并根据可用空间的大小而增大或缩小 image.png 例如,iOS 上的 Safari 浏览器会在你从页面顶部向下滚动时隐藏后退按钮、标签菜单和其他控件...每个概念视口都有一组相应的视口单位。UA 默认视口单位包括 vw、vh、vmin 和 vmax。大视口、小视口和动态视口单位遵循类似的命名规则,前缀为 l、s 或 d,即 lvw 或 dvmin。...另一方面,动态视口尺寸并不稳定。当方向改变或用户滚动时,它们可能会改变。例如,当浏览器界面影响视口大小时,高度值为 100dvmax 的元素就会改变大小。...当你知道输出媒介的物理尺寸时,请使用绝对单位。字体相对单位和视口相对单位非常适合创建适应多种屏幕尺寸的布局。容器相对单位非常适合创建可重复使用的组件,以适应各种布局。
这是一款基于Parcel2 开发的React.js项目脚手架。虽然比不上正在前端界火爆的Vite以及占据稳定地位的CreateReactApp,但是基本的项目开发还是可以的。...使用dynamic import()语法,它分割输出包,以便您只在初始加载时加载所需的内容。 当您在开发过程中进行更改时,它会自动更新浏览器中的模块,无需配置。...在安装之前,你需要注意以下几点: 如果你的项目需要引入图片,你需要使用@parcel/transformer-image依赖,它可以调整图像的大小、更改图像的格式和质量。...为了完成这些图像转换,它依赖于图像转换库Sharp,因此,需要将几个特定的文件导入NPM缓存路径下的特定文件夹中。 1....antd是基于Ant Design 设计体系的 React UI 组件库,用于研发企业级中后台产品。Ant Design 2.0官网上有两句耐人寻味的话,我特别喜欢。
现在,当我们使用这个自定义组件时,它将具有带有样式的 属性。...现在我们将使用上面创建的 DefaultButton 作为我们的自定义组件在 React.js 中使用。...定义组件时,使用了模板字面量也就意味着可以在其中写 JavaScript。...使用styled component定义一个组件(Container),在其内部可以访问主题及其属性,并帮助用户更改背景颜色和文本颜色 我们可以定义一个操作(按钮点击)来更换theme变量 具体实现代码如下...为了具有动态控制,我们将一个函数传递给属性。
SceneKit%20Scene%20Editor 视口(VIEWPORT) 包含飞船的中间部分是视口。在此空间中,您将能够从不同角度查看3D模型并对您的修改进行流式处理。...视口控件 视口下方是视口控件。在这个栏上,我们可以改变到不同的视角。我经常将它设置为前面,因为这是在屏幕上添加模型时的起始角度。如果场景附带动画,您可以通过单击“ 播放”按钮进行预览。...场景图视图 打开场景时,通常会隐藏场景图视图。要显示它,请单击视口下方左下方的小窗口图标,在控件旁边。在这里,您可以看到组成场景的所有部分。这些对象是几何,灯光,相机等节点。...蓝色是相机,还有其他物体,如物理和动画。 Apple Watch Pink 外壳 我们将从手表外壳开始。 盒子几何 将Box拖放到场景中。要调整节点的视图,诀窍是双击节点名称框旁边的节点图标。...转到“ 材质”检查器,将“ 着色”更改为“ Blinn”,单击“ 漫反射”时,使用颜色选择器从Apple网站中选择图像手镯中的颜色。
art directed 与 根据图像在页面中的大小进行内容或纵横比的更改,通常被称为“art directed” 响应式图像 。...例如:在大视口上,带有小中央焦点的全宽头图像可能效果很好: 但是,当缩小以适应小视口时,图像的中央焦点可能会丢失: 这些图像源的主题相同,但为了更好地视觉聚焦于该主题,我们将希望图像源的比例在断点处发生变化...具有loading="lazy"属性的元素直到页面布局已知才被请求,以便推迟对用户初始视口之外的图像的请求,直到在渲染页面的过程中稍后进行,从而避免不必要的请求。...虽然基于视口信息的高级布局决策是可靠的,但它阻止了我们采用完全基于组件层级的开发方法,这意味着可以将组件放置在页面布局的任何部分,并响应组件本身所占用的空间的样式。... 所占用的空间而非基于视口大小来选择 。
.element { display: flex; flex-wrap: wrap; } 当视口尺寸较小时,它们确实会在新行中结束, 见下图: 需要解决的是in-between设计状态,两个item...或者,当它垂直堆叠时,这将如何在移动设备上工作? 很多很多的复杂性。 使用抽象组件 上述问题的一个解决方案是拥有抽象的组件,目的是托管其他组件。...以下是我想到的一些问题: 间隔组件如何在父组件中获取其宽度或高度?它将如何在水平和垂直布局中工作?例如:堆栈内的间隔符与添加左侧空间的间隔符。...CSS 数学函数:Min()、Max()、Clamp() 是否有可能拥有动态margin? 例如,根据视口宽度设置具有最小值和最大值的边距。 答案是肯定的! 我们可以。...最近,CSS 数学函数在 Firefox 75 中得到支持,这意味着它们在所有主流浏览器中都受 CanIUse 支持。 让我们回顾一下网格用例,看看如何在其中使用动态间距。
一般我们提到的视口有三种:布局视口、视觉视口、理想视口,在我之前写的下面这篇文章中详细介绍了视口相关的概念和原理看兴趣可以看: 关于移动端适配,你必须要知道的 在响应式布局中,我们经常会用到两个视口相关的单位...但是,在移动设备上的表现就差强人意了,移动设备的视口大小会受动态工具栏(例如地址栏和标签栏)存在与否的影响。视口大小可能会更改,但 vw 和 vh 的大小不会。...因此,尺寸过大的 100vh 元素可能会从视口中溢出。 当网页向下滚动时,这些动态工具栏可能又会自动缩回。在这种状态下,尺寸为 100vh 的元素又可以覆盖整个视口。...除了 Large viewport 和 Small Viewport ,还有一个 Dynamic viewport(动态视口) 当动态工具栏展开时,动态视口等于小视口的大小。...当动态工具栏被缩回时,动态视口等于大视口的大小。 相应的,它的视口单位以 dv 为前缀:dvw, dvh, dvi, dvb, dvmin, dvmax。
如前所述,我们没有将一个图像(通常是较大的高分辨率版本)发送到所有屏幕尺寸并将其缩放到视口宽度,而是指定了一组图像以在特定情况下使用。...浏览器查找媒体查询与当前视口宽度匹配的第一个元素,然后它将显示适当的图像(在srcset属性中指定)。...,这在处理高分辨率图像时很有帮助。...在此示例中,我们告诉浏览器永远不要让.box类的元素的宽度减小到45%或600px以下(以视口宽度为准,以最小者为准): .box { width : min(45%, 600px) } 如果45%...vh是视口高度或可见屏幕高度的首字母缩写。 100vh代表视口高度的100%(取决于设备)。 同样,vw代表视口宽度,这意味着设备的可视屏幕宽度,而100vw则代表视口宽度的100%。
@media (min-width: 700px) { .element { background: url('cool-1.jpg'); } } 在上面的示例中,我们有一个背景图片,仅在视口宽度大于...好吧,让我先补充一些要求: 在与后端CMS整合时,图片应该是很容易动态变化的。 其上方有一个覆盖层,有助于使内容易于阅读。 图像有三种尺寸:小、中和大。它们每个都用于特定的视口。...这是一些入门问题: 为用户保留这个图像很重要吗,还是可以跳过它? 我们是否需要在所有视口尺寸上使用它? 它是静态的还是动态变化的?...解决方案1要点: 解决方案只有在图像不重要的情况下才是好的 当无法从后端CMS动态更改图片时 Demo 4.1.2 Hero - 解决方案2 对于此解决方案,我们将使用HTML图像。...我们需要将视口的宽度更改为等于或大于 1350px。
这个指定的区域可能有固定的宽度和高度,或者可能是一个更具响应性的空间,如根据浏览器视口大小变化的网格区域。...使用 object-fit 将图像适应容器 object-fit 属性为我们提供了五个主要的关键字值,以确定我们的图像如何在其容器内显示。...在响应式布局中使用 object-fit object-fit 属性在图像的指定区域的尺寸响应浏览器视口大小的情况下可能最有用。...3; } article { display: grid; grid-template: 5% 1fr 10% / 40% 1fr 40%; height: 100vh; } 随着视口和网格区域的扩展和收缩...我们可以使用一系列的关键字值(如 top、bottom、left、right、center)或使用长度值(如px、em或%)或两者的组合来更改这一点。 假设我们现在想要从右下角定位我们的图像。
什么是样式组件? Styled-Components 是 React 的一个库,允许您直接在 javascript 中编写 CSS。这称为“css-in-js”。...最大的优点之一是样式组件允许作为 JavaScript 开发人员创建样式。由于您使用的是模板文字,因此您可以使用 props 动态调整组件。这使您可以非常轻松地更改因数据更改而导致的组件的外观。...'bold' : 'normal'}; `); 与常规 CSS 相比,样式组件的更多优点 前面的示例已经证明了如何从样式化组件的动态特性中受益。...提示: 如果您使用快照测试,动态生成类可能会很烦人。...由于样式组件的动态特性,使用样式组件比使用经典 CSS 更容易实现这一点。在每个样式组件中,您都可以访问主题对象,例如,为每个输入指定 6px 的边框半径。
此外,当图像源失败时,可以向它们添加伪元素。 响应式图像 ? 的优点在于可以针对特定视口大小将其扩展为具有多个版本的照片。...在上面的示例中,我们有一个背景图像,仅在视口宽度大于700px时显示。 可访问性问题 如果使用不当,背景图像可能会影响可访问性。 例如,将其用于文章主题,这对于文章至关重要。 ...一些要求: 背景图片能够动态替换 图片有一个覆盖层,让阅读更容易 图像有三种尺寸:小号、中号和大号。每一个都是针对一个特定的视口。 在开始解决方案之前,让我们先问问自己这种背景的性质。...这是一些入门问题: 为用户保留这个图像很重要吗,还是可以跳过它? 我们是否需要在所有视口尺寸上使用它? 它是静态的还是动态变化的?...我们需要将视口的宽度更改为等于或大于1350px。
由于这次更改,解析器现在可以大约在一半的时间内解析单文件组件(single file components)。...可延迟视图(Deferrable views):可延迟视图使得可以推迟加载特定的组件、指令和管道。例如,您可以推迟加载一个依赖项,直到内容进入视口或直到主线程处于空闲状态。...它使用静态加载壳来渲染页面,但为页面内的动态内容留下空白,这些内容将异步加载。因此,你可以在提供可缓存的静态页面的同时,将动态数据融入到页面内容中,从而获得多种性能优势。...近期,Svelte 发布了 SvelteKit 2 ,它包括多种改进,如采用 Vite 5、支持浅层路由和引入图像组件的新特性。...图像组件集成了你所期望的图像组件特性,但我认为最酷的方面是,即使你不使用 Svelte ,也能够利用它 — Svelte 图像组件可在任何基于 Vite 的项目中使用。
领取专属 10元无门槛券
手把手带您无忧上云