面试题

CSS边界

2024-01-04  本文已影响0人  你这个锤子

BFC 现象

两个div上下排列,都设置 margin 会怎样?
会发生边距重叠,margin 都大于0就取较大值,一正一负就相加,都负取较大绝对值
为什么会这样?就是由于 BFC。

BFC就是块级元素格式化上下文,相当于一个容器,里面的布局不会影响到外面的元素。IFC就是内联元素格式化上下文
BFC渲染规则或特性:

怎么创建BFC或触发BFC:

BFC使用场景:

清除浮动的几种方法

由于父元素没写高度时,子元素浮动后会导致父元素发生调试塌陷,所以需要清除浮动

.clearfix::after {  
      content: "";  
      display: table;  
      clear: both;  
}

媒体查询

@media only screen and(max-width: 1480px){ ... }
使用 only 主要是为了兼容旧浏览器,而在现代浏览器中两者没有区别。

HTML使用标签定时自动刷新或跳转

<!-- 5秒后刷新并自动跳转到home.html -->
<meta http-equiv="Refresh" content="3; URL=home.html">
<!-- 5秒后自动刷新当前页面 -->
<meta http-equiv="Refresh" content="5">

使用场景:

缺点:刷新和跳转是不可取消的,如果需要动态刷新或者手动取消的,还是推荐定时器。

alt和title的作用及区别

共同点:有利于SEO
不同点:alt是图片不能正常显示时出现的提示信息;title是鼠标移到元素上时显示的提示信息,而且大多数标签都支持title属性,但是优先级要低于alt(都在图片上图片不能正常显示时);title内容可以比alt更长

SEO(搜索引擎优化)

link 和 @import

link:是html引入方式;最大限度支持并行下载;优先级高于 @import;可以通过 ref="alternate stylesheet" 指定候选样式
@import:是CSS引入方式,必须写在样式之前;可以嵌套,但过多嵌套会导致串行下载,出现文档样式暂失效;老浏览器不支持

利用标签提升渲染速度

link标签:通过rel属性进行预加载,如

<link rel="dns-prefetch" href="//xx.baidu.com">

rel有几个属性:

script标签:由于浏览器底层运行机制,渲染引擎在解析HTML时遇到script标签引用文件是会暂停解析过程的,同时通过网络线程加载文件,文件加载后切换至js引擎执行相应代码,代码执行完成后再切换回渲染引擎继续渲染页面,在首次渲染过程中可能并不依赖这些js文件,这就延长了页面渲染的时间,为了减少这些时间损耗,可以通过script标签三个属性来实现:

样式穿透

>>>、/deep/、:deep()、::v-deep都是深度选择器,或者说样式穿透,用于组件内修改UI组件库默认样式而不影响全局
区别: >>> 只作用于 CSS,在 Less/Sass 中无法识别,所以用 deep 代替,在 Vue3.0之前用 /deep/,Vue3.0之后可能会报错,所以推荐用 :deep(.class),::v-deep 已弃用。

隐藏元素的区别

上一篇下一篇

猜你喜欢

热点阅读