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

学姐叫我看 CSS 新出的容器查询,然后把公共组件重构成响应式的!

在左边,这是一个正在调整大小的口。在右边,一个根据父组件宽度更改的组件。这就是容器查询的功能和用途。...设计团队构建一组规则和组件,以便其他成员可以基于它们构建页面。随着CSS容器查询的到来,我们还将设计一个组件应该如何根据其父组件的宽度进行调整。...聊天列表根据口宽度改变。我们可以使用CSS容器查询来实现它。 有足够的空间时,清单展开并显示每个用户的名称。...聊天列表的父元素可以是动态调整大小的元素(例如:使用CSS口单元,或CSS比较函数)。...容器很小时,导航项标签是如何从一个新行切换的,有足够的空间时,导航项标签是如何靠近导航图标的。 示例地址:https://codepen.io/shadeed/pe...

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

小智在这3年开发中遇到的 CSS 问题及解决方案,有大佬帮他总结好了 !

口不够高时元素固定在屏幕顶部 如果元素固定在屏幕顶部,如果口不够高会发生什么情况?很简单:它会占用屏幕空间,因此,用户浏览网站时可用的垂直区域就会变小,这会影响用户的体验。...事例源码:https://codepen.io/shadeed/pen/oQLYmg 9.设置图像的最大宽度 添加图像时,定义max-width: 100%,这样屏幕很小时图像就会改变大小。...之所以会添加空格,是因为浏览器元素解释为单词,因此在每个元素之间添加了一个字符空间。...字体与交互式HTML元素不兼容 为整个文档设置字体时,它们不会应用于input、button、select和textarea等元素。它们在默认情况下不会继承,因为浏览器默认系统字体应用于它们。...压缩或拉伸图像 在CSS中调整图像大小时,如果宽高比与图像的宽度和高度不一致,则可能会对其进行压缩或拉伸。

3.7K10

CSS | 视差滚动 | 笔记

通过调整 perspective 属性的值,可以改变透视效果的强度。 在视差滚动中,"向内移动"和"向外移动"是相对于观察者(即浏览器窗口)的视角来说的。...核心问题是移动浏览器(Chrome和Safari)有一个“帮助”功能,地址栏有时可见,有时隐藏,改变了口的可见大小。...这些浏览器没有 100vh 的高度调整口高度变化时屏幕的可见部分,而是 100vh 设置为隐藏地址栏的浏览器高度。...如下所示: 当地址栏可见时,由于移动浏览器不正确地100vh设置为屏幕高度而没有显示地址栏, 因此屏幕底部被切断。 在上图中,应该在屏幕底部的按钮被隐藏了。...页面加载时,高度设置为 window.innerHeight 正确地高度设置为窗口的可见部分。 如果地址栏是可见的,那么 window.innerHeight 是全屏的高度。

57121

膜拜!用最少的代码却实现了最牛逼的滚动动画!

我们需要知道ScrollTrigger是基于GSAP实现的插件,ScrollTrigger是处理滚动事件的,而真正处理动画是GSAP,二者组合使用才能实现滚动动画~插件特点将任何动画链接到特定元素,以便它仅在视图中显示该元素时才执行该动画...窗口调整小时,自动重新计算位置。在开发过程中启用视觉标记,以准确查看开始/结束/触发点的位置。...在滚动记录器处于活动状态时,如active类添加到触发元素中:toggleClass: "active"使用 matchMedia() 标准媒体查询为各种屏幕尺寸创建不同的设置。...自定义滚动触发器容器,可以定义一个 div 而不一定是浏览器口。高度优化以实现最大性能。插件大约只有6.5kb大小。...scrollTrigger: { trigger: ".container", pin: true, // 在执行时固定触发器元素 start: "top top", // 触发器的顶部碰到口的顶部时

2.8K00

rem与em详解

1555350286371-a7064520-4031-4268-90b0-7ced69d6d091.png 浏览器调整使用 em 单位的 HTML 元素字体大小 em 单位设置在 html 元素上时...这是很普遍的做法,所以改变html元素的字体大小时,可以使整个页面做相应调整 我强烈反对种做法,因为它重写继承了用户设置的浏览器字体大小。 更夸张的说,这剥削了用户自行调整以获得最佳视觉效果的能力。...始终使用 rem 单位做媒体查询 特别注意,使用 rem 单位创建统一可扩展的设计,媒体查询也应该是rem单位。 这将确保,无论用户浏览器的字体大小,您的媒体查询会对它作出反应和调整您的布局。...例如,如果用户缩放文本非常高,您的布局可能需要从两列到单个列调整,因为它可能会在较小的移动设备上显示。 如果您的断点在固定的像素宽度,只有不同的口的大小可以触发它们。...但是基于 rem 的断点他们响应不同的字体大小。 不要使用 em 或 rem : 多列布局 布局中的列宽通常应该是 %,因此他们可以流畅适应无法预知大小的区。

4.3K30

【译】Web中的图像技术总结,前端开发中各种图片引入的优点缺点及实例

Demo 1.5 调整图片的大小 ? 我们可以使用 的一优点就是 object-fit 和 object-position 属性。...它们让我们可以控制 的内容如何调整大小和位置,就像CSS背景图片一样。...图像有三种尺寸:小、中和。它们每个都用于特定的口。 在开始解决方案之前,让我们先问问自己这种背景的性质。这是一些入门问题: 为用户保留这个图像很重要吗,还是可以跳过它?...我们是否需要在所有口尺寸上使用它? 它是静态的还是动态变化的? 4.1.1 Hero - 解决方案1 通过使用多个CSS背景,我们可以一个背景作为叠加层,另一个背景作为实际图像。...但是,当用户上传半白色头像或非常浅的头像时,此设计失败。 ? 注意到上面的模拟图中,你要真的聚焦好了才知道里面有一个圆形。

5.6K20

不要在按钮、链接或任何其他文本容器上使用固定的 CSS 高度或宽度

如果对影响元素计算高度和宽度的 CSS 属性使用固定值,文字大小增大时,元素内部的文字会被截断。 还不信服? 你可能会想:"但当我把浏览器放大到 200% 时,按钮文本看起来很好!"...文档说: 如果用户代理不提供缩放功能,但允许用户更改文字大小,那么作者有责任确保在调整文字大小时内容仍然可用。...在没有浏览器缩放等机制的情况下,文字大小必须可以调整到 200%。 但怎么办?处理起来比你想象的更容易! 代码演示 注意:为了这些演示的目的,请假装我们使用 rem 单位设置 font-size。...根据我的经验,随着口尺寸的缩小,我发现这种方法更难维护。 想象一下,一个具有文本大小设置的移动设备。使用 em 单位设置的文本容器可能会比口宽。...与使用 width 和 max-width 相比,我们可能只需使用 padding ,然后让浏览器执行其默认的魔法,使元素适合口。

9610

移动端避免使用100vh

CSS中的口单位听起来很棒。如果要设置元素的样式以占据整个屏幕的高度,则可以设置height: 100vh,您拥有一个完美的全屏元素,该元素会随着口的变化而调整大小!可悲的是,事实并非如此。...这些浏览器没有100vh高度调整口高度变化时屏幕的可见部分,而是100vh设置为浏览器的高度,并隐藏了地址栏。结果是,当地址栏可见时,屏幕的底部将被切除。 如下所示: ?...显示地址栏时,由于移动浏览器错误地100vh设置为屏幕高度而没有显示地址栏,因此屏幕底部被切断。在上图中,应隐藏在屏幕底部的按钮。...例如,尝试在移动浏览器上打开wordsheet.io/demo/V3Y 。无论地址栏是否可见,屏幕都将是口的高度。...此外,通过在页面首次加载时高度锁定在适当的位置,可以防止地址栏隐藏在使用该网站的过程中,从而带来尴尬的屏幕调整大小体验。

1.8K20

移动端避免使用100vh

CSS中的口单位听起来很棒。如果要设置元素的样式以占据整个屏幕的高度,则可以设置height: 100vh,您拥有一个完美的全屏元素,该元素会随着口的变化而调整大小!可悲的是,事实并非如此。...这些浏览器没有100vh高度调整口高度变化时屏幕的可见部分,而是100vh设置为浏览器的高度,并隐藏了地址栏。结果是,当地址栏可见时,屏幕的底部将被切除。...如下所示: 显示地址栏时,由于移动浏览器错误地100vh设置为屏幕高度而没有显示地址栏,因此屏幕底部被切断。在上图中,应隐藏在屏幕底部的按钮。...例如,尝试在移动浏览器上打开wordsheet.io/demo/V3Y 。无论地址栏是否可见,屏幕都将是口的高度。...此外,通过在页面首次加载时高度锁定在适当的位置,可以防止地址栏隐藏在使用该网站的过程中,从而带来尴尬的屏幕调整大小体验。

1.8K20

Vue拖拽组件开发实例

我们的项目不需要兼容低版本浏览器。项目本身也是一个数据驱动型的。加之,Vue本身具有以下主要特性: 使用虚拟DOM; 轻量级框架; 高效的数据绑定; 灵活的组件系统; 完整的开发生态链。...上图中,通过data中的dragList渲染拖拽区域列表,代码如下: template:拖拽可调整顺序<ul class="drag-list...所谓的数据驱动就是<em>当</em>数据发生变化时,通过修改数据状态,使用户界面发生相应的改变,开发者不需要手动的去修改DOM。...设置为一个较大的值,防止元素二次拖拽无效; 拖拽过程中:<em>将</em>元素即将落入新位置的那个li下<em>div</em>的item.isShow设置为true,其他li下<em>div</em>的item.isShow均设置为false; 拖拽结束...:<em>将</em>所有li下<em>div</em>的item.isShow 均设置为false,<em>将</em>元素定位方式由absolute设置为static。

4.3K130

2022 年的 CSS 全览

在下图中,父网格和子网格已重叠。它现在类似于设计师对布局的思考方式。...容器查询 在 @container 之前,网页的元素只能响应整个口的大小。这对于大型布局非常有用,但对于外部容器不是整个口的小型布局,布局不可能进行相应调整。...但是该条滑出时,口高度发生了变化,任何 vh 单位都会随着目标大小的变化而移动和调整大小。...在后来的几年里,vh 单位特别需要决定要使用两种口尺寸中的哪一种,因为这会在移动设备上造成不和谐的视觉布局问题。已确定 vh 始终代表最大的口。...状态栏消失时,也许可以稍微改变一下不协调的布局,这样就可以不用担心使用dvh(动态口高度)。

4.2K20

面试官:你了解过移动端适配吗?

修改图像的某区域,实际上是在修改该区域内的像素。对这些像素修改的好与坏决定最终图片的质量。单位面积内的像素越多,图像的效果就越好。...在Web浏览器术语中,通常与浏览器窗口相同,但不包括浏览器的UI, 菜单栏等——即指你正在浏览的文档的那一部分。 那么在移动端如何配置口呢? 简单的一个meta标签即可!...我们在移动端视口要想视觉效果和体验好,那么我们的口宽度必去无限接近理想口 理想口:一般来讲,这个口其实不是真是存在的,它对设备来说是一个最理想布局口尺寸,在用户不进行手动缩放的情况下,可以页面理想地展示...区别在于使用rem为元素设定字体大小时,仍然是相对大小,但相对的只是HTML根元素。...这个单位可谓集相对大小和绝对大小的优点于一身,通过它既可以做到只修改根元素就成比例地调整所有字体大小,又可以避免字体大小逐层复合的连锁反应。目前,除了IE8及更早版本外,所有浏览器均已支持rem。

1.3K10

CSS 定位详解

最后一个sticky是2017年浏览器才支持的,本文重点介绍。 # 二、static 属性值 static是position属性的默认值。...# 3.3 fixed 属性值 fixed表示,相对于口(viewport,浏览器窗口)进行偏移,即定位基点是浏览器窗口。这会导致元素的位置不随页面滚动而变化,好像固定在网页上一样。...div { position: fixed; top: 0; } 1 2 3 4 复制 上面代码中,div元素始终在口顶部,不随网页滚动而变化。...它的具体规则是,页面滚动,父元素开始脱离口时(即部分不可见),只要与sticky元素的距离达到生效门槛,relative定位自动切换为fixed定位; 等到父元素完全脱离口时(即完全不可见),fixed...(正文完) 原文作者:阮一峰 发表日期:2019年11月19日 # Tip 初学者刚接触前端,往往会被一堆技术名词、框架和工具,搞得眼花缭乱。

1.7K10

新时代布局新特性 -- 容器查询

很多时候,内容数不确定的时候,即便是相同的浏览器视窗宽度下,元素的布局及宽度可能也是不一致的。 考虑下面这种情况: <!...容器查询的能力 容器查询它给予了 CSS,在不改变浏览器口宽度的前提下,只是根据容器的宽度变化,对布局做成调整的能力。...还是上面的例子,简单的代码示意: Title</div...这样,就简单实现了一个容器查询功能: 注意,仔细和上面的例子作对比,这里,浏览器口宽度是没有变化的,变化的只是容器的宽度!...因此,会希望内容较多时,字体较小,而内容不足一行或者非常少的时候,字体较大: CodePen Demo -- Container Quries Demo 当然,现阶段我暂时没有试出来在容器查询中

26920
领券