首页 > IT职业 > IT职场 > 某IT培训班一阶段前端面试题
核心常用图片格式有 4 种,各有适配场景,优先级从高到低为:WebP > JPG > PNG > SVG
CSS 盒子模型是浏览器渲染元素的基础,每个元素都被视为一个“盒子”,由内到外分为 4 部分,核心分为两种模式:
HTML5 新增 和 标签,无需依赖插件即可播放音视频,核心用法如下:
<video src="video.mp4" <!-- 视频地址 --> controls <!-- 显示默认播放控件(播放/暂停、音量等) --> autoplay <!-- 自动播放(需配合muted静音,否则多数浏览器禁止) --> muted <!-- 静音播放 --> loop <!-- 循环播放 --> poster="poster.jpg" <!-- 视频加载前显示的封面图 --> width="600" <!-- 视频宽度 --> preload="auto" <!-- 预加载策略(auto:自动预加载;none:不预加载) --> > 您的浏览器不支持video标签,请升级浏览器 <!-- 降级提示 --> </video>
<audio src="audio.mp3" controls autoplay muted loop > 您的浏览器不支持audio标签,请升级浏览器 </audio>
注意:autoplay 属性在 Chrome、Safari 等浏览器中,需配合 muted 才能生效,避免自动播放打扰用户。
HTML5 核心新增内容分 5 大类,重点解决旧版 HTML 功能缺失、兼容性差的问题:
CSS3 核心新增特性围绕“样式增强、布局灵活、交互丰富”展开,分 6 大类: CSS 动画分“过渡动画(transition)”和“关键帧动画(animation)”,核心属性如下: transform:2D/3D 变换(translate:平移;scale:缩放;rotate:旋转;skew:倾斜),不影响其他元素布局。 浮动(float)会导致父元素高度坍塌,需通过清除浮动解决,常用 5 种方法及优劣如下: | 方法 | 实现代码 | 优点 | 缺点 | | -------------------------- | --------------------------------------------------------------------------------------------- | -------------------------------- | ---------------------------------------------------- | | 额外标签法 | 父元素末尾加 | 简单易懂,兼容性好 | 增加无意义标签,语义化差,代码冗余 | | 父元素 overflow:hidden | .parent { overflow: hidden; } | 代码简洁,无额外标签 | 会隐藏父元素超出部分的内容,不适合有定位元素的场景 | | 父元素伪元素清除(推荐) | .parent::after { content: ""; display: block; clear: both; height: 0; visibility: hidden; } | 语义化好,无额外标签,兼容性强 | 代码稍多(可封装为公共类) | | 父元素浮动 | .parent { float: left; } | 简单,无额外代码 | 会导致父元素自身浮动,影响外层布局,连锁问题多 | | 父元素设置 BFC | .parent { overflow: auto; / display: flow-root; } | 无副作用,布局稳定 | display: flow-root 兼容性稍差(IE 不支持) | 推荐优先使用「伪元素清除法」或「BFC 清除法」,兼顾兼容性和无副作用。 CSS 定位(position)有 5 个属性值,核心区别在于“定位基准”和“是否脱离文档流”: | 属性值 | 定位基准 | 是否脱离文档流 | 核心特点/使用场景 | | ---------------------- | ------------------------------------------------- | ---------------------------- | -------------------------------------------------------------------- | | static(默认) | 无定位基准 | 否 | 正常文档流布局,top/right/bottom/left、z-index 无效;用于取消定位 | | relative(相对定位) | 自身原来的位置 | 否 | 不脱离文档流,保留自身占位;用于微调元素位置、作为绝对定位的父容器 | | absolute(绝对定位) | 最近的已定位(非 static)父元素,无则相对于视口 | 是 | 脱离文档流,不保留占位;用于弹窗、悬浮元素、精准定位 | | fixed(固定定位) | 浏览器视口 | 是 | 脱离文档流,不随页面滚动;用于导航栏、回到顶部按钮、悬浮广告 | | sticky(粘性定位) | 滚动到指定阈值前相对父元素,之后相对视口 | 否(滚动前)/ 是(滚动后) | 结合 relative 和 fixed 特性;用于滚动吸顶导航、列表标题吸顶 | 注意:absolute/fixed/sticky 需配合 top/right/bottom/left 定位,否则效果等同于 static。 分“水平居中”“垂直居中”“水平垂直居中”三类场景,按兼容性和简洁度排序推荐: 两者是 box-sizing 的两个值,核心区别在于“width/height 是否包含 padding 和 border”: | 属性值 | width/height 包含范围 | 盒子实际宽度 | 特点/使用场景 | | --------------------- | ---------------------------- | ------------------------------------------------ | -------------------------------------------------------------------- | | content-box(默认) | 仅包含 content(内容区) | width + padding-left/right + border-left/right | padding 和 border 会撑大盒子,布局易出错;适合简单场景 | | border-box(推荐) | content + padding + border | 等于设置的 width(固定) | padding 和 border 不会撑大盒子,布局可控;适合复杂布局、响应式开发 | 推荐全局设置:\* { box-sizing: border-box; },避免布局计算误差。 除上述通用方案外,补充 6 种垂直居中方案,适配不同场景: 核心是“相对于视口居中”,常用 4 种方案,按推荐度排序: 注意:需给 body 设置 min-height: 100vh,确保占满视口高度。 Chrome 默认最小字体为 12px,小于 12px 会自动放大为 12px,可通过 3 种方案突破限制: 推荐使用 scale 方案,无兼容性问题,不影响布局。 仅文本相关、字体相关属性可继承,布局属性不可继承: 不可继承属性:width、height、margin、padding、border、background、position、float 等。 规则:权重叠加计算(如#id .class div 权重=100+10+1=111);权重相同则后定义的选择器生效;继承的样式权重最低。 核心优化思路:“减小体积、减少请求、延迟加载、优化加载策略”,具体方案如下: 特点:不独占一行,宽高由内容决定,不能设置 width/height,margin/padding 仅水平方向生效。 常见:、
、
、
、
、 特点:独占一行,宽高可设置,margin/padding 水平垂直都生效,默认宽度为父元素 100%。 常见: 、5. CSS3 新增的特性
6. CSS 中的动画都有哪些属性?
(1)过渡动画(transition,简单动画,需触发条件)
(2)关键帧动画(animation,复杂动画,可自动执行)
(3)变换属性(配合动画使用)
7. 清除浮动的方法有哪些?请说出各自的优缺点
8. 定位的属性值有什么区别?
9. 子元素如何在父元素中居中?(含水平 + 垂直)
(1)水平居中
(2)垂直居中
(3)水平垂直居中(常用 3 种方案)
10. border-box 与 content-box 的区别
11. 如何实现元素垂直居中?(单独强调,补充细节)
12. 如何实现元素在页面中上下左右居中?
13. 如何让 Chrome 浏览器显示小于 12px 的文字?
14. CSS 选择器有哪些,哪些属性可以继承,优先级如何计算?
(1)CSS 选择器分类(按常用度排序)
(2)可继承的 CSS 属性
(3)选择器优先级计算(权重从高到低)
15. 网页中有大量图片加载很慢,有什么办法优化?
)。16. 行内元素/块级元素有哪些?
(1)行内元素(inline)
(2)块级元素(block)
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70049190/viewspace-3106906/ ,如需转载,请注明出处,否则将追究法律责任。