html 文件 doctype 申明不规范引发的样式问题

前言

来深圳四年了。

四年前的昨天,结束了30+小时的旅程,从母校不远千里奔赴来深……

想着四年来居然没有什么成就,昨天得空,想着解决一个实际项目中遇到的问题,以后若是有人问起来“你在项目中遇到什么难点,是如何解决的”之类的问题,也好有话可说。

问题表现

近两年组内新建的前端项目(都使用了 vue3、vite、antdv)都会遇到一个样式问题,表现是:在开发模式下一切正常,打包后访问,antdv 组件的样式会错乱。

举个例子,比如 antdv 的 layout 组件,有个侧边栏(demo见此),下方有个水平垂直居中的小于号:

image.png

上图是正常表现,异常表现是水平居中,但垂直不居中了:

image.png

其他组件也有类似的问题,就不一一列举了。

原因

排查过程也没有太多要提的了,无非就是搞了个 demo 对比,发现正常,然后比对样式、计算属性、html 结构,不断增删 copy 代码调试,肉眼观察半天,最后终于发现了问题所在:

<!DOCTYPE html>

是的,就是每个 html 文件都必带的这第一行申明,开发模式是有的,打包后访问拿到的就没有,有的项目虽然有但是写得不规范。

这行缺失后,浏览器就按混杂模式进行渲染了。具体原因就不深究了,毕竟 html5 已经发布十几年了。

至于开发模式正常而打包后才有问题这一点,跟项目代码结构有关。同一个代码库中既有 node 代码也有前端代码,分了2个文件夹,前端文件夹中没问题,开发模式下就是用 vite 启动了前端端口的。而打包后,是 node 渲染 ejs 的,而这个 ejs 文件写得不规范。

思考

1. 代码还是得考虑去重,能复用就不要重写

2. 这个算难点吗?能用来回答别人提的“项目中遇到什么难点”问题吗?

  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值