flex容器下,不同大小的文字底部对齐,为什么应该使用 baseline 而不是 flex-end?...分析原因发现,是因为文字周围有一圈空白的边距,这个边距在字体大小不同的情况下是不一致的,所以矩形区域虽然对齐了,但是文字底部没有对齐。...这里有点反直觉,line-height: 1 直觉上应该和字体的高度是一致的,但是在实际运行过程中发现,并不是这样的,主要和设备的字体有关,这里后面再详细探讨具体原因。...图片使用 line-height 的正确方法在完全去掉周围边距这种方法不可用的情况下,只能通过把不同字体大小的透明边距宽度设置为一致就可以了。...、last baseline,但是在文字对齐上,后面的这三个特性更有用。
在做文章评论的功能时,会遇到很多兼容性的问题,在不同机型上的表现也很不一致,总结了以下这些问题。 1. 日期问题 对于yyyy-mm-dd hh:mm:ss 这种格式在ios系统不识别。...时间格式化的时候,在浏览器端处理好好的,到了手机端,就变成NAN,或者null,这种情况,是ios系统不能转化这种类型的时间。...键盘收起,页面卡住,不回落 ios12上,发现键盘收起的时候,页面会卡主,留下底部一片空白,稍微动一下页面,就会恢复。...3. ios12在微信小程序的webview,键盘收回,页面底部会留白 这个问题怀疑是页面的scroll设置了auto导致的。 解决方案:滚动一下页面,请参考链接,代码有效。...键盘遮挡输入框 输入框如果使用了fixed固定在底部,键盘顶起的时候,iphone上fixed会失效,导致页面滚动输入框会随着页面滚动,并且在部分机型上,输入框偶尔会被键盘遮挡,这种偶现的问题,很不友好
今天有同事跑过来说遇到了一个奇怪的bug,同样的程序在win7和win10上界面相差了2个像素 ---- 一开始我们以为是半像素或者是分辨率的问题。 结果调试了很久都没有结果。...不过意外的我们发现了另一个奇妙的东西。...下面两个图分别是在win7和win10情况下soonp获得的可视化树(已用demo替换) image.png image.png 有么有发现TabControl的子元素Grid多出了一个名字templateRoot...在代码里面查找,发现并没有这个名字的Grid,所以可以确定这个是来自TabControl的默认Style 所以我们找到win7和win10 下的默认主题 Aero和Aero2 查找方法可以参见博客默认的...当然对于这样子的问题的确不是很好定位,因此我们有两种可行的解决方案 1、尽量在关键界面使用自定义样式,对元素的呈现细节进行控制 2、在App.xaml中指定主题样式。
优点: 减少HTTP请求数,极大地提高页面加载速度 增加图片信息重复度,提高压缩比,减少图片大小 更换风格方便,只需在一张或几张图片上修改颜色或样式即可实现 缺点: 图片合并麻烦 维护麻烦...1、在css样式表中书写时,id选择符前缀应加"#“,class选择符前缀应加”." 2、id属性在一个页面中书写时只能使用一次,而class可以反复使用 3、id作为元素标签用于区分不同结构和内容...而class正好相反,是先定义样式,然后在页面中根据不同需求把样式应用到不同结构和内容上 5、目前浏览器都允许同一个页面出现多个相同属性值的id,一般情况能正常显示,不过当javascript通过id...来控制元素时就会出错 6、在实际应用中,class常被用到文字版块和页面修饰上,而id多被用在宏伟布局和设计包含块,或包含框的样式。...另一方面可以节省加载时间,使页面能够更加的加载,提高用户的良好体验 但是随着JS技术的发展,JS也开始承担页面渲染的工作。
如果你在日常工作中使用CSS,那么你的主要目标很可能集中在使事情看起来是正确的。最终得到的正确结果远比如何实现更重要。这意味着相比正确的语法和视觉效果我们更少关注CSS的实现原理。...刚开始我也是只知道怎样使用CSS,不久前才了解CSS的工作原理的。我想这并不能让你感觉好一点,但至少你并不孤单! 虽然CSS的基本特征是复杂且有意提取的,但是我们不能因此一点不去了解它。...通常的样式是在页面中添加了一个引用css文件的link 标签,或者在HTML主体中使用 style 标签。即使最基本的页面也有由浏览器提供的默认样式。...为什么这常常是困惑的来源呢?好吧,你可能遇到过一些情况,事情似乎有些不同的表现… 填充区域 当你给一个元素设置背景的时候,填充的不仅仅是内容区域,而且还包括内部padding区域和边框区域。 ?...显示类型 我们知道在CSS中设置display 属性可以决定一个元素怎样被渲染,但是目前还不清楚它的工作原理是什么样的。事实上,有时甚至是不可预测的。
使用 preload 实际上可以在浏览器开始显示页面内容之前加载 CSS 文件。 4、减小 CSS 类 (class) 的长度: class 的长度会对 HTML 和 CSS 文件产生(轻微)影响。...5、删除不用的 CSS: 删除未使用的 CSS 选择器。 为什么: 删除未使用的 CSS 选择器可以减小文件的大小,提高资源的加载速度。...为什么: 如果设置了高度和宽度,则在加载页面时会保留图像所需的空间。如果没有这些属性,浏览器就不知道图像的大小,也无法为其保留适当的空间,导致页面布局在加载期间发生变化。...6、响应式图像: 确保提供接近设备显示尺寸的图像。 为什么: 小型设备不需要比视口大的图像。建议在不同尺寸上使用一个图像的多个版本。 怎么做: 为不同的设备设置不同大小的图像。...为什么: 理想情况下,应该尝试让页面大小 页面大小中位数大约为 1500 KB(即使在移动设备上)。
顺便说一下,它在安卓手机上甚至不能按预期工作。 图片 为什么100vh问题会发生在移动设备上? 我对这个问题进行了一番调查,发现了其中的原因。简短的答案是,浏览器的工具栏高度没有被考虑在内。...如果你想深入了解为什么会发生这种情况,Stack Overflow的这个帖子很有帮助。 如何修复移动设备上的100vh问题? 第一个建议是尽量少用 vh。...仅使用 CSS 在移动设备上修复 100VH 问题 时,使用 vh 的目的是为了简单地创建与视口高度相等的部分。例如,当你在建立登陆页面时,这很常见。...DOCTYPE html> 声明,会使 fill-available 在 Chrome 浏览器上无法正常工作。...图片 甚至不能在安卓浏览器上工作: 图片 因此,为了解决这个问题,必须从页面中删除 doctype 声明。 2.
,默认是关闭浏览器后失效 除非被手动清除,否则将会永久保存 仅在当前网页会话下有效,关闭页面或浏览器后就会被清除 存放数据大小 4KB 左右 可以保存 5MB 的信息 可以保存 5MB 的信息 http...Get 传送的数据量较小,不能大于 2KB。...没有定位,元素出现在正常的流中 relative(相对定位):生成相对定位的元素,相对于其正常(原先本身)位置进行定位 absolute(绝对定位):生成绝对定位的元素,相对于 static...引用的 CSS 会同时被加载,而@import 引用的 CSS 会等到页面全部被下载完再被加载 兼容性的差别。...为什么要初始化 CSS 样式 因为浏览器的兼容问题,不同浏览器对有些标签的默认值是不同的,如果没对 CSS 初始化往往会出现浏览器之间的页面显示差异 初始化样式会对 SEO 有一定的影响 10
- 前端开发) 优点:这种布局方式对设计师和CSS编写者来说都是最简单的,亦没有兼容性问题。 缺点:显而易见,即不能根据用户的屏幕尺寸做出不同的表现。...这种布局方式在Web前端开发的早期历史上,用来应对不同尺寸的PC屏幕(那时屏幕尺寸的差异不会太大),在当今的移动端开发也是常用布局方式,但缺点明显:主要的问题是如果屏幕尺度跨度太大,那么在相对其原始设计而言过小或过大的屏幕上不能正常显示...响应式设计的目标是确保一个页面在所有终端上(各种尺寸的PC、手机、手表、冰箱的Web浏览器等等)都能显示出令人满意的效果,对CSS编写者而言,在实现上不拘泥于具体手法,但通常是糅合了流式布局+弹性布局,...通常使用 @media 媒体查询 和网格系统 (Grid System) 配合相对布局单位进行布局,实际上就是综合响应式、流动等上述技术通过 CSS 给单一网页不同设备返回不同样式的技术统称。..." content="no-transform "> 总结: 响应式与自适应的原理是相似的,都是检测设备,根据不同的设备采用不同的css,而且css都是采用的百分比的,而不是固定的宽度,不同点是响应式的模板在不同的设备上看上去是不一样的
如下图,假设你设计了一个163x163的蓝色方块,在PPI为163的屏幕上,那这个方块看起来正好就是1x1寸大小,在PPI为326的屏幕上,这个方块看起来就只有0.5x0.5寸大小了。...但是做为用户是不会关心这些细节的,他们只是希望在不同PPI的设备上看到的图像内容差不多大小,所以这时我们需要一个新的单位,这个新的单位能够保证图像内容在不同的PPI设备看上去大小应该差不多,这就是独立像素...所以,我们如何处理在不同 pt/px 比例上使得显示相同大小的图片呢? 很简单,在美工设计图片的时候,多设计几种尺寸的图片。...1、PC 设备 在PC设备上viewport的大小取决于浏览器窗口的大小,以CSS像素做为度量单位。...在移动设备上viewport不再受限于浏览器的窗口,而是允许开发人员自由设置viewport的大小,通常浏览 器会设置一个默认大小的 viewport,为了能够正常显示那些专为PC设计的网页,一般这个值的大小会大于屏幕的尺寸
在IE6之前CSS还不够成熟,所以IE5等之前的浏览器对CSS的支持很差, IE6将对CSS提供更好的支持,然而这时的问题就来了,因为有很多页面是基于旧的布局方式写的,而如果IE6 支持CSS则将令这些页面显示不正常...优雅降级:Web站点在所有新式浏览器中都能正常工作,如果用户使用的是老式浏览器,则代码会检查以确认它们是否能正常工作。...大家为什么要使用他们? 他们是CSS预处理器。他是CSS上的一种抽象层。他们是一种特殊的语法/语言编译成CSS。 例如Less是一种动态样式语言....完全兼容 CSS 代码,可以方便地应用到老项目中。LESS 只是在 CSS 语法上做了扩展,所以老的 CSS 代码也可以与 LESS 代码一同编译。...Link属于html标签,而@import是CSS中提供的 在页面加载的时候,link会同时被加载,而@import引用的CSS会在页面加载完成后才会加载引用的CSS @import只有在ie5以上才可以被识别
HTML 为什么利用多个域名来存储网站资源会更有效 ? 确保用户在不同地区能用最快的速度打开网站,其中某个域名崩溃用户也能通过其他域名访问网站。 ---- window 常用属性与方法有哪些 ?...标准模式的排版和 JS 运作模式都是以该浏览器支持的最高标准运行。在兼容模式中,页面以宽松的向后兼容的方式显示,模拟老式浏览器的行为以防止站点无法工作。 ---- HTML5 为什么只需要写 页面的内容结构化,结构更清晰, 3、便于对浏览器、搜索引擎解析; 4、即使在没有样式 CSS 情况下也以一种文档格式显示,并且是容易阅读的; 5、搜索引擎的爬虫也依赖于 HTML...---- HTML5 的离线储存怎么使用,工作原理能不能解释一下 ? 在用户没有与因特网连接时,可以正常访问站点或应用,在用户与因特网连接时,更新用户机器上的缓存文件。...存储大小 cookie 数据大小不能超过 4k。 sessionStorage 和 localStorage 虽然也有存储大小的限制,但比 cookie 大得多,可以达到 5M 或更大。
HTML ---- 语义化 HTML标签的语义化是指:通过使用包含语义的标签(如h1-h6)恰当地表示文档结构 css命名的语义化是指:为html标签添加有意义的class 为什么需要语义化: 去掉样式后页面呈现清晰的结构...在兼容模式中,页面以宽松的向后兼容的方式显示,模拟老式浏览器的行为以防止站点无法工作 HTML5 为什么只需要写 ?...[endif]--> 如何区分HTML5: DOCTYPE声明新增的结构元素功能元素 HTML5的离线储存怎么使用,工作原理能不能解释一下?...在用户没有与因特网连接时,可以正常访问站点或应用,在用户与因特网连接时,更新用户机器上的缓存文件 原理:HTML5的离线存储是基于一个新建的.appcache文件的缓存机制(不是存储技术),通过这个文件上的解析清单离线存储资源...map+area或者svg border-radius 纯js实现 需要求一个点在不在圆上简单算法、获取鼠标坐标等等 实现不使用 border 画出1px高的线,在不同浏览器的标准模式与怪异模式下都能保持一致的效果
CSS字体样式属性调试工具 目标 应用 使用css字体样式完成对字体的设置 使用css外观属性给页面元素添加样式 使用常用的emment语法 能够使用开发人员工具代码调试 1.font字体 1.1...注意: 我们文字大小以后,基本就用px了,其他单位很少使用 谷歌浏览器默认的文字大小为16px 但是不同浏览器可能默认显示的字号大小不一致,我们尽量给一个明确值大小,不要默认大小。...一般给body指定整个页面文字的大小 1.2 font-family:字体 作用: font-family属性用于设置哪一种字体。...尽量使用系统默认字体,保证在任何用户的浏览器中都能正确显示。 CSS Unicode字体 ? 为什么使用 Unicode字体 在 CSS 中设置字体名称,直接写中文是可以的。...通过开发人员工具小指针工具,查找页面元素 左侧是html页面结构,右侧是css样式 小技巧: ctrl+滚轮 可以 放大开发者工具代码大小。 左边是HTML元素结构 右边是CSS样式。
快去看下CSS-Trick上的这两篇关于animation和transition的文章。你在使用中一定发现了有些动画很流畅,而有些则很卡。为什么呢?...这两个线程一起工作完成绘制页面的任务: 主线程 合成线程 主线程需要做的任务如下: 运行Javascript 计算HTML元素的CSS样式 layout (relayout) 将页面元素绘制成一张或多张位图...例如,当用户滚动一个页面时,合成线程会让主线程提供最新的可见部分的页面位图。然而主线程不能及时的响应。这时合成线程不会等待,它会绘制已有的页面位图。对于没有的部分则绘制白屏。...GPUs在做如下操作时很快: 绘制东西到屏幕上 一次次绘制同一张位图到屏幕上 绘制同一张位图到不同的位置、旋转角度和缩放比例 GPUs很不擅长做: 加载位图到内存中 transition: height...浏览器之所以这么拼命的工作是因为元素在不停的变化。而且修改元素的高度可能会导致子元素的大小也会变化,所以浏览器不得不进行relayout。在relayout之后主线程还需要重新生成元素的位图。
(2)、标准模式的排版和JS运作模式都是以该浏览器支持的最高标准运行。在兼容模式中,页面以宽松的向后兼容的方式显示,模拟老式浏览器的行为以防止站点无法工作。 2、HTML5为什么只需要写的CSS会等到页面被加载完再加载; (3)import是CSS2.1 提出的,只在IE5以上才能被识别,而link是XHTML标签,无兼容问题; 5、介绍一下你对浏览器内核的理解?...9、HTML5的离线储存怎么使用,工作原理能不能解释一下? 在用户没有与因特网连接时,可以正常访问站点或应用,在用户与因特网连接时,更新用户机器上的缓存文件。...存储大小: cookie数据大小不能超过4k。 sessionStorage和localStorage 虽然也有存储大小的限制,但比cookie大得多,可以达到5M或更大。...(1)map+area或者svg (2)border-radius (3)纯js实现需要求一个点在不在圆上简单算法、获取鼠标坐标等等 实现不使用border 画出1px高的线,在不同浏览器的标准模式与怪异模式下都能保持一致的效果
常规布局是基于块和内联流方向,而Flex布局是基于flex-flow流可以很方便的用来做局中,能对不同屏幕大小自适应。 在布局上有了比以前更加灵活的空间。...行框的排列会受到中间空白(回车\空格)等的影响,因为空格也属于字符,这些空白也会被应用样式,占据空间,所以会有间隔,把字符大小设为0,就没有空格了。 15、为什么要初始化CSS样式。...- 因为浏览器的兼容问题,不同浏览器对有些标签的默认值是不同的,如果没对CSS初始化往往会出现浏览器之间的页面显示差异。...清除浮动的方式 清除浮动是为了清除使用浮动元素产生的影响。浮动的元素,高度会塌陷,而高度的塌陷使我们页面后面的布局不能正常显示。...fixed的元素是相对整个页面固定位置的,你在屏幕上滑动只是在移动这个所谓的viewport, 原来的网页还好好的在那,fixed的内容也没有变过位置, 所以说并不是iOS不支持fixed,只是fixed
一、什么是浏览器兼容问题 同一份代码,有的浏览器显示效果正常,有的浏览器显示不正常 二、为什么会有浏览器兼容问题 同一产品,版本越老 bug 越多 同一产品,版本越新,功能越多。...[endif]--> 使用了条件注释的页面在 Windows Internet Explorer 9 中可正常工作,但在 Internet Explorer 10 中无法正常工作。...(如IE6和IE7),对CSS的解析认识不完全一样,因此会导致生成的页面效果不一样,得不到我们所需要的页面效果。...我们需要针对不同的浏览器去写不同的CSS,让它能在不同的浏览器中也能得到我们想要的页面效果。实际项目中CSS Hack大部分是针对IE浏览器不同版本之间的表现差异而引入的。...运行的时候它会在html元素上添加一批CSS的class名称,这些class名称标记当前浏览器支持哪些特性和不支持哪些特性 详情见文档:Modernizr介绍文章 ?
在IE6之前CSS还不够成熟,所以IE5等之前的浏览器对CSS的支持很差, IE6将对CSS提供更好的支持,然而这时的问题就来了,因为有很多页面是基于旧的布局方式写的,而如果IE6 支持CSS则将令这些页面显示不正常...各自的浏览器只会识别自己独有的hack字符,也会优先解析自己的hack而进行渲染页面 答案:针对不同的浏览器写不同的CSS code的过程,就是CSS hack。...你了解他们的不同之处? 重置样式非常多,凡是一个前端开发人员肯定有一个常用的重置CSS文件并知道如何使用它们。他们是盲目的在做还是知道为什么这么做呢?...50. absolute的containing block计算方式跟正常流有什么不同??????...父元素设置特定的宽高上的边框、内边距、内容填充 58、描述一个"reset"的CSS文件并如何使用它。知道normalize.css吗?你了解他们的不同之处?
领取专属 10元无门槛券
手把手带您无忧上云