首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

CSS 基础系列:从清除浮动和margin塌陷问题谈BFC

元素高度塌陷情况:子元素浮动脱离了文档流,未设置高度元素在形式上表现为 0 高度,设置了 clear:both 元素为了满足其左右两边没有浮动元素这个条件,只能自身下移,从而带动了父元素高度撑开...BFC ,父元素将可以包含浮动元素。...可视化格式模型规定了客户端(浏览器)如何在媒介(显示器)中渲染文档树(document tree)。...IFC 中是不可能有块级元素,当插入块级元素时( p 中插入 div)会产生两个匿名块与 div 分隔开,即产生两个 IFC,每个 IFC 对外表现为块级元素,与 div 垂直排列。...4.1.3 GFC: 当为一个元素设置 display:grid 时候,此元素将会获得一个独立渲染区域,我们可以通过在网格容器(grid container)上定义网格定义行(grid definition

2.3K10

59道CSS面试题(附答案)

虽然浮动元素已不在文档流中,但是它浮动所处位置依然在浮动之前水平方向上。 因为浮动元素不在文档流中,所以文档流中元素表现得就像浮动元素不存在一样,下面的元素会填补原来位置。...也可以把浮动元素想象成被块元素忽略元素,而内联元素会关注元素。 17、解释一下 CSS Sprite,以及如何在页面或网站中使用它。...两种解决方案分别是 overflow:hidden或font-size:容器高度px 25、如何在图片下方设置几像素空白间隙?....min-height{ min-height:100px; _height:100px; background:red; } 31、已知高度容器如何在页面中水平垂直居中? 具体代码如下。...GFC( GridLayout Formatting Context)指网格布局格式化上下文,即当把一个 display值设为grid时候,此元素将会获得一个独立渲染区域。

4.8K50

仅使用CSS就可以提高页面渲染速度4个技巧

在这个例子中,在页面中加入 content-visibility 渲染时间下降到150ms,这是6倍以上性能提升。 正如你所看到,内容可见性是相当强大,对提高页面渲染时间非常有用。...与滚动条行为有关问题。 由于元素初始渲染高度为0px,每当你向下滚动时,这些元素就会进入屏幕。实际内容会被渲染元素高度也会相应更新。这将使滚动条行为以一种非预期方式进行。...为了解决滚动条问题,你可以使用另一个叫做 contain-intrinsic-size CSS 属性。它指定了一个元素自然大小,因此,元素将以给定高度而不是0px呈现。...根据Maximillian Laumeister所做性能基准,可以看到他通过这个单行改变获得了超过120FPS渲染速度,而最初渲染速度大概在50FPS。...最后需要注意是,建议在完成所有动画,将元素 will-change 删除。 3.减少渲染阻止时间 今天,许多Web应用必须满足多种形式需求,包括PC、平板电脑和手机等。

72910

content-visibility 缩短页面加载速度

设置content-visibility 跳过渲染 一般很难清楚明白使用哪个contain属性,因为只有在指定了适当,浏览器才开始优化。...一个具有content-visibility: auto属性元素可以获得布局、样式和绘制限制(区域)。...这样效果看起来要好的多,其可以将加载渲染成本降低50%或更多。在我们示例中,我们看到渲染时间从232ms提升到了30ms,性能提升了7倍。 为了获得这些好处,您需要做什么工作?...这意味着该元素将布局为好像是空。如果元素没有在常规块布局中指定高度,则其高度为0。 这可能不是理想,因为滚动条大小会发生变化,这取决于每个具有非零高度内容。...使用content-visibility: hidden. content-visibility:hidden属性为您提供未渲染内容和缓存渲染状态所有相同好处,content-visibility

1.8K10

Avalonia中自绘控件

在Avalonia UI框架中,自绘控件允许我们完全掌控控件渲染逻辑,实现高度自定义UI元素。本文将深入探讨自绘控件概念、优势、应用场景,并通过示例代码展示如何创建自绘控件以及自定义事件。...自绘控件,顾名思义,是指需要开发者自行绘制和渲染控件。与传统由框架负责渲染控件不同,自绘控件渲染逻辑完全由开发者掌控。...游戏和动画:需要高性能图形渲染游戏或动画应用,自绘控件可以提供更灵活和高效绘制能力。 特殊效果:自定义鼠标悬停效果、过渡动画等。...专业工具:CAD绘图软件、图像处理软件等,这些工具通常需要高度自定义UI元素来支持复杂操作。...示例代码:创建自绘控件并自定义事件 下面是一个简单示例,展示了如何在Avalonia中创建一个自绘控件,并在其中自定义一个事件。

20910

「前端进阶」高性能渲染十万条数据(虚拟列表)

,我们可以粗略统计到,JS运行时间为 38ms,但渲染完成总时间为 957ms。...实现 虚拟列表实现,实际上就是在首屏加载时候,只加载 可视区域内需要列表项,当滚动发生时,动态通过计算获得 可视区域内列表项,并将 非可视区域内存在列表项删除。...在虚拟列表中应用动态高度解决方案一般有如下三种: 1.对组件属性 itemSize进行扩展,支持传递类型为 数字、 数组、 函数 可以是一个固定值, 100,此时列表项是固定高度 可以是一个包含所有列表项高度数据...} } 定义 positions,用于列表项渲染存储 每一项高度以及位置信息, this.positions = [ // { // top:0, // bottom:100...//列表总高度 listHeight(){ return this.positions[this.positions.length - 1].bottom; } 由于需要在 渲染完成,获取列表每项位置信息并缓存

10K74

轻松改善您网站上最大内容绘制 (LCP)

优化您在网站上提供用户体验对于任何在线业务成功都至关重要。谷歌确实使用不同用户体验相关指标来为 SEO 对网页进行排名,并继续提供多种工具来衡量和提高网络性能。...使用第三方图片CDN好处是可以专注于自己实际业务,将图片优化留给图片CDN。 图像 CDN 将始终处于技术发展边缘,您始终可以以最少持续投资获得最佳功能。...以较轻格式交付您图像 ImageKit 检测用户浏览器是否支持现代较轻格式, WebP 或 AVIF,并实时自动以最轻格式提供图像。...例如,通过在其 URL 中添加高度和宽度转换参数,将以下图像调整为宽度 200 像素和高度 300 像素。 4. 缓存图片并缩短交付时间 图像 CDN 使用全球内容交付网络(CDN) 来交付图像。...如果页面这部分样式定义是内联,即在每个元素style属性中,浏览器就不需要依赖外部 CSS 来设置这些元素样式。因此,它可以快速渲染页面,并且LCP下降。 3.

3.6K20

「大众点评点餐」小程序开发经验 02:视图

我们来看条件渲染实际应用例子: 用上 实例: 4. 列表渲染 列表渲染,是将元素进行遍历,并利用 wx:for 属性值进行循环渲染。...小程序模板中,只能单向使用传入数据,不像 React 可以利用 props 让父子组件进行传值。 我们以单个菜品组件为例,看看如何在小程序中使用模板: 6....例如,下图所示菜品减号操作图标的高度,iPhone 6 下是 2 px,iPhone 4s 下直接渲染成了1 px(实际比例值为 1.7 px)。...而加号按钮图标高度,在 iPhone 6 下是 11 px,iPhone 4s 下,就渲染成了 9 px(实际比例值为 9.48 px)。 这样差距,就会让小程序在两台手机上,看起来不那么协调了。...将数据变动组件与数据不变组件进行拆分,减少数据更改带来组件更新量,将加减按钮和菜品信息分离。 使用动态加载等方式减小首屏渲染数据量,提升用户体验。

3K30

CSS中各种格式化上下文-FC(BFC、IFC、GFC、FFC)

FC是指页面中一篇渲染区域,渲染区域内使用格式化上下文渲染规则,决定了该区域以及其子元素如何定位。当然,使用同渲染规则,也会对其他元素起到相互关系作用。主要有哪些FC?...(这说明BFC中元素不会超出它包含块,而position为absolute元素可以超出它包含块边界);BFC区域不会与float元素区域重叠;计算BFC高度时,浮动子元素也参与计算;BFC...IFC什么是IFCIFC(Inline Formatting Contexts)直译为"行内格式化上下文",IFCline box(线框)高度由其包含行内元素中最高实际高度计算而来(不受到竖直方向...IFC中时不可能有块级元素,当插入块级元素时(p中插入div)会产生两个匿名块与div分隔开,即产生两个IFC,每个IFC对外表现为块级元素,与div垂直排列。...GFC什么是GFCGFC(GridLayout Formatting Contexts)直译为"网格布局格式化上下文",当为一个元素设置display值为grid时候,此元素将会获得一个独立渲染区域

1.6K10

如何提升你CSS技能,掌握这20个css技巧即可

前言 随着前端开发越来越关注效率:通过选择器使用和简化代码来快速加载渲染。像Less、SCSS这样预处理器在工作时候,需要绕路较长,而直接使用css速度会更快。...1、使用CSS重置(reset) css重置库normalize.css已经被使用很多年了,它们可以为你网站样式提供一个比较清晰标准,来确保跨浏览器之间一致性。...实现这一点,就需要我们理解级联(cascade),以及如何在通用选择器写样式可以继承在其他地方。...,这里声明没有单位,我们只是告诉浏览器 让它渲染行高是 渲染字体大小1.5倍 6、垂直居中任何元素 (vertical-center anything) 在没有准备使用CSSGrid 布局时候,...19、在表单元素上设置字体大小,以获得更好移动体验 为了避免移动浏览器(iOS Safari等)在点击下拉列表时放大HTML表单元素,请在添加font-size样式: input[type

4.9K20

前端虚拟列表实现原理

一般碰到不定高列表元素时有三种虚拟列表实现方式: 对输入数据进行更改,传入每一个元素对应高度 dynamicHeight[i] = x x 为元素i 行高 需要实现知道每一个元素高度(不切实际)...将当前元素先在屏外进行绘制并对齐高度进行测量再将其渲染到用户可视区域内 这种方法相当于双倍渲染消耗(不切实际) 传入一个estimateHeight 属性先对行高进行估计并渲染,然后渲染完成获得真实行高并进行更新和缓存...block排布元素渲染容器(actualContent ),我们现在就可以直接在不给定高度情况下先把内容都渲染进去。...limit = Math.ceil(height / estimateHeight) phantomHeight = total * estimateHeight 同时为了避免重复计算每一个元素渲染高度...- 1].bottom; 当我们根据estimateHeight 渲染完用户视窗内元素,我们需要对渲染出来元素做实际高度更新,此时我们可以利用componentDidUpdate 生命周期钩子来计算

1.6K40

20个 CSS 快速提升技巧

1、使用CSS重置(reset) css重置库normalize.css已经被使用很多年了,它们可以为你网站样式提供一个比较清晰标准,来确保跨浏览器之间一致性。...实现这一点,就需要我们理解级联(cascade),以及如何在通用选择器写样式可以继承在其他地方。...,我们只是告诉浏览器 让它渲染行高是 渲染字体大小1.5倍 6、垂直居中任何元素 (vertical-center anything) 在没有准备使用CSSGrid 布局时候,设置垂直居中布局全局规则是一个很好方式...:not: body { font: 1rem/1.6 sans-serif; } 结合上面的rem/em技巧以获得更好控制。...19、在表单元素上设置字体大小,以获得更好移动体验 为了避免移动浏览器(iOS Safari等)在点击下拉列表时放大HTML表单元素,请在添加font-size样式: input[type

3.2K20

React项目中如何实现一个简单锚点目录定位

前言 锚点目录定位功能在长页面和文档类网站中非常常见,它可以让用户快速定位到页面中某个章节 如何在React中实现锚点定位和平滑滚动 目录自动高亮实现思路 处理顶部导航遮挡锚点解决方案 服务端渲染实现方案...常见解决方案是: 设置锚点元素margin-top #anchor { margin-top: 80px; /* header高度 */ } 直接设置一个和Header高度相同margin,来防止遮挡...在使用了服务端渲染(SSR)框架Next.js等情况下,实现锚点定位和目录联动也会有一些不同。...服务端渲染静态HTML中,并没有绑定滚动事件,所以无法自动高亮。 预取数据 首先,我们需要解决点击目录链接问题。 既然服务端无法获取组件ref,那就需要在客户端去获取元素位置。...简单来说就是: 在服务端渲染时,读取路由参数,提前计算高亮状态 将高亮数据注入到响应中 客户端拿到注水数据渲染,不会出现高亮错位 实现步骤: 1.服务端获取参数和数据 // 在getServerSideProps

66520

web前端常见面试题

各个浏览器渲染能力各不相同,要做一个每个人都能看到网页、感受到体验都一致网站几乎不可能。...DOCTYPE html> HTML 4.01 Strict(HTML 4.01 严格模式) DTD 包含所有 HTML 元素和属性,但不包括展示性和弃用元素font),它文档类型声明:...有利于 SEO,搜索引擎根据标签来确定上下文和各个关键字权重。 方便其他设备解析,盲人阅读器根据语义渲染网页。 有利于开发和维护,语义化更具可读性,代码更好维护,与 CSS3 关系更和谐。...; ch 代表元素所用字体 font 中“0”这一字形宽度; vh 1vh 相当于视口高度 1%,100vh 就是视口高度; vw 1vw 相当于视口宽度 1%,100vw 就是视口宽度; vmax...事件对象中方法 stopPropagation() 阻止事件冒泡,当设置,点击该元素时父元素绑定事件就不会再触发; preventDefault() 阻止默认事件发生; stopImmediatePropagation

2.3K20

彻底玩转图片懒加载及底层实现原理

“图片来源MDN[1] element.offsetTop 获取元素相对于文档顶部高度。 ?...“图片来源Seven's Blog 思路分析 通过上面三个 API,我们获得了三个值:可视区域高度元素相对于其父元素容器顶部距离、浏览器窗口顶部与容器元素顶部距离也就是滚动条滚动高度。...,这里我们可以给事件加上节流throttle 基于 getBoundingClientRect()实现图片懒加载 先来了解一下这个API吧: getBoundingClientRect()用于获得页面中某个元素左...思路分析 通过这个 API,我们就很容易获取img元素相对于视口顶点位置rectObject.top,只要这个值小于浏览器高度window.innerHeight就说明进入可视区域: function...传统实现方法是,监听到scroll事件,调用目标元素(绿色方块)getBoundingClientRect()方法,得到它对应于视口左上角坐标,再判断是否在视口之内。

84431
领券