【前端面经】HTML&CSS 篇

62 阅读2分钟

HTML

history和hash路由实现原理?区别是什么

location.hash:实际就是URL中 # 后面的东西。不会被包含在http请求中,不会重新加载页面;

  • hash监听事件:window.addEventListener(‘hashchange’, func, false);
  • 每一次hash的改变,均会新增一个浏览器的访问历史记录;
  • 功能使用:更新视图但不重新请求页面;
  • 特点:兼容性好,不美观;

location.history:使用了HTML5 History Interface中新增的pushState()replaceState()方法。

  • 功能back()forword()go()以及对历史记录进行修改;
  • 功能使用:单页应用前端路由,更新视图但不重新请求页面;
  • 特点:美观,但是刷新页面会出现404,需要后端进行配置

CSS

css的盒子模型的计算

css的盒子模型(box-sizing),是决定元素在页面上占据的空间计算。

  • content-box:标准盒子模型(默认值):width = contentWidth
  • border-box:IE盒子模型:width=contenWidth+borderWidth+paddingWidth

国际化怎么做,中文一个字,阿拉伯语很长一串,怎么实现样式的一致?

国际化一般使用【vue-i18n】插件库实现。

当处理不同语言的文本长度差异的时候,一般处理办法:

  • 使用流式布局:flex/grid设计,允许根据长度自动调整容器大小;
  • 文本截断+省略号;
  • 最大、最小宽度自适应;
  • 动态调整字体大小(比较复杂计算);
  • 响应式系统设计,适应不同屏幕尺寸和设备;
  • 与客户沟通各个方案的优劣,择取想法做优化啦~

css实现了从左到右移动的动画,如果非常卡顿,我们该如何解决?

CSS常用布局:

BFC

居中处理

session、cookie、sessionStorage、localStorage等区别

px/em/rem的区别

animation和transiton的相关属性