2024年前端面试题HTML+CSS篇

2024年前端面试题HTML+CSS篇

我希望我的解释和答案都是通俗易懂的

HTML部分

canvas和svg

  1. canvas用来绘制图片的,可以保存png和jpg格式,是位图;svg是在HTML里面绘制矢量图
  2. canvas是在画布中进行绘制图片,而这个画布是canvas的一部分,不支持js事件处理;svg是通过dom节点形式插入到页面中,可以通过js事件进行操作
  3. canvas的工作机制是逐像素渲染,svg是操作dom,会有大量的重绘

HTML5离线缓存

首先,要创建一个cache.manifast文件,文件格式如下:

CACHE MANIFEST
# 版本号
CACHE MANIFEST VERSION 1

# 要缓存的资源
CACHE:
index.html
style.css
script.js
image.jpg

# 在浏览器无法连接到服务器时使用的回退页面
FALLBACK:
/ offline.html

# 需要在线检查更新的资源
NETWORK:
*

# 清空缓存并重新下载所有资源的操作
# 注意:该操作会删除所有已缓存的资源
# 如果不需要强制更新,请注释掉该行
# 请谨慎使用
# CACHE MANIFEST VERSION 2

然后在html标签中有一个manifast属性,指向创建好的manifast文件,当用户访问网页的时候会触发manifast文件中的数据进行资源缓存,如:

<html manifest="cache.manifest"></html>

高度塌陷

这个涉及到css了,但我还是决定放在这里
通俗的来说,高度塌陷就是元素脱离了文档流,那怎么解决呢。方法有以下几种:

  1. 最简单的就是给元素套一个父级盒子
  2. 给父元素设置overflow:hidden
  3. 万能清除浮动法(很少用)

HTML5新特性

  1. 语义化标签:比如 / 这种,被称作语义化标签,有助于更清晰的定义页面结构、提高可读性和可维护性
  2. 响应式设计:新增了media查询
  3. 多媒体支持:video和audio

元数据

元数据指用来描述html的数据,提供文档信息,但不会显示在文档上

  1. title标签,定义页面标题
  2. meta标签,设置字符编码,页面描述、关键词、作者
  3. link标签,引入外部文件
  4. base标签,指定页面的默认地址或者默认来源目标

CSS3部分

新增特性

  1. 新增选择器::last-chlid、:nth-chlid、:only-chlid、:first-of-type、:last-of-type等等
  2. 新增样式:边框阴影:box-shadow、边框图片:box-image、圆角:border-radius、背景图片属性:background-size等等
  3. 新增布局
    • flex弹性布局
      display
      flex-direction
      flex-warp
      justify-content
      align-item
      alig-content
      flex
    • 栅格布局
      display
      grid-template-columns/grid-template-rows:定义Grid容器的列/行的大小和数量
      grid-gap:定义网格之间的间隔,
      justify-items:定义网格内单元格内容在列方向上的对齐方式
      align-items:定义网格内单元格内容在行方向上的对齐方式
      justify-content:定义网格内单元格在列方向上的对齐方式。
      grid-column-start/grid-column-end/grid-row-start/grid-row-end:定义单个网格元素的起始和结束 位置。可以使用具体的数字表示网格线的位置,也可以使用关键字(如span)表示跨越多个单元格。
  4. 媒体查询:@media
  5. teanstion过渡
    • transition: CSS属性,花费时间,效果曲线(默认ease),延迟时间(默认0)
  6. annimation动画
    • animation-name:动画名称
      animation-duration:动画持续时间
      animation-timing-function:动画时间函数
      animation-delay:动画延迟时间
      animation-iteration-count:动画执行次数,可以设置为一个整数,也可以设置为infinite,意思是无限循环
      animation-direction:动画执行方向
      animation-paly-state:动画播放状态
      animation-fill-mode:动画填充模式
  7. calc函数
    • calc函数:用来计算局部固定大小其他区域自适应大小的方法 width: calc( 100% -100px);

隐藏元素

  1. display
  2. opacity(透明度)
  3. overflow:hidden

rem/px/em/vh/vw/%的区别

px是精准像素,em和rem都是相对长度单位,相对于父元素的font-size来决定1rem的大小,%是根据父级元素大小的比例,vw是屏幕宽度的1%,vh是屏幕高度的1%

flex布局属性及说明:

  1. 父元素:
    ​ flex-direction:决定排列的方向方式(row | row-reverse | column | column-reverse)
    ​ flex-wrap:是否允许换行(nowrap | wrap | wrap-reverse)
    ​ flex-flow:上面两个属性的简写:默认值是 row nowrap
    ​ justify-centent:决定子元素以什么方式对齐(flex-start | flex-end | center | space-between | space-around)
    ​ align-items:决定子元素在交叉轴的对齐方式(flex-start | flex-end | center | baseline | stretch)

  2. 子元素:
    ​ order:排名序号,从0开始
    ​ flex-grow:子元素是否放大,占比
    ​ align-self:在交叉轴的对齐方式(auto | flex-start | flex-end | center | baseline | stretch)

伪类选择器

  1. :link:链接访问前
  2. :visited:链接激活后
  3. :hover:鼠标移入目标
  4. :active:鼠标左键点击目标

回流和重绘

  1. 通俗的来说,回流就是你更改了dom节点的布局大小,渲染树根据你更改的dom节点进行重新构建的过程,重绘就是渲染树更新节点的属性
  2. 解决方法:减少频繁直接在标签里使用style,改用class类名

优雅降级和渐进增强

  1. 优雅降级就是低版本向下兼容,保持基本功能
  2. 渐进增强就是从低版本过渡到高版本,在原有的基础是增加交互效果,提高用户体验

欢迎反映问题补充~~

  • 27
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值