当前位置: 首页 > news >正文

css怪异模式(Quirks Mode)和标准模式(Standards Mode)最明显的区别

文章目录

  • css怪异模式(Quirks Mode)和标准模式(Standards Mode)最明显的区别
      • 详细对比
      • 示例对比(盒模型)
        • 标准模式(Standards Mode)
        • 怪异模式(Quirks Mode)
      • 如何触发两种模式?
      • 其他区别
      • 为什么需要了解这个区别?

在这里插入图片描述

css怪异模式(Quirks Mode)和标准模式(Standards Mode)最明显的区别

最核心的区别
盒模型(Box Model)的计算方式不同,导致元素的 widthheight 是否包含 paddingborder


详细对比

特性标准模式(Standards Mode)怪异模式(Quirks Mode)
盒模型width = 内容宽度(不包含 paddingborderwidth = 内容 + padding + border
触发方式<!DOCTYPE html> 声明DOCTYPE 或使用旧版 DOCTYPE(如 HTML4 Transitional)
浏览器兼容性所有现代浏览器统一行为模拟旧版浏览器(如 IE5.5)的渲染方式
height: 100% 行为严格计算,需父元素有明确高度可能不准确,导致布局错乱
margin: auto 居中正常生效可能失效

示例对比(盒模型)

标准模式(Standards Mode)
.box {width: 100px;padding: 20px;border: 5px solid black;
}
  • 实际宽度 = 100px(仅内容)
  • 总占用宽度 = 100px + 40px (padding) + 10px (border) = 150px
怪异模式(Quirks Mode)
.box {width: 100px;padding: 20px;border: 5px solid black;
}
  • 实际宽度 = 100px(包含 paddingborder
  • 内容宽度 = 100px - 40px (padding) - 10px (border) = 50px

如何触发两种模式?

  • 标准模式:使用 <!DOCTYPE html>(HTML5 声明)。
  • 怪异模式:省略 DOCTYPE 或使用旧版 DOCTYPE(如 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">)。

其他区别

  1. 行内元素垂直对齐

    • 标准模式:vertical-align 按规范生效。
    • 怪异模式:行为可能不一致(如 img 底部默认间隙问题)。
  2. 表格单元格宽度

    • 标准模式:严格按内容计算。
    • 怪异模式:可能自动拉伸。
  3. JavaScript 获取窗口尺寸

    • 标准模式:document.documentElement.clientWidth
    • 怪异模式:document.body.clientWidth

为什么需要了解这个区别?

  • 避免布局错乱:确保 DOCTYPE 正确声明,避免意外进入怪异模式。
  • 兼容旧代码:维护老项目时可能需要处理怪异模式下的样式问题。
  • 面试常考点:前端基础核心知识之一。

总结:盒模型的计算方式是两者最明显的区别,始终使用 <!DOCTYPE html> 可强制浏览器使用标准模式! 🚀

http://www.lryc.cn/news/612560.html

相关文章:

  • Java零基础笔记13(Java编程核心:异常、泛型)
  • 数据结构 二叉树(1)二叉树简单了解
  • Python数据可视化:从基础到高级实战指南
  • Pytorch-07 如何快速把已经有的视觉模型权重扒拉过来为己所用
  • C语言的数组与字符串练习题1
  • VINS-Fusion+UWB辅助算法高精度实现
  • KNN算法:从原理到实战应用
  • 人工智能——深度学习——认识Tensor
  • k8s的存储之statefulset控制器
  • 数据结构(4)
  • 图解 Claude Code 子智能体 Sub-agent
  • Verilog 仿真问题:打拍失败
  • C语言高级编程技巧与最佳实践
  • 如何给小语种视频生成字幕?我的实测方法分享
  • docker-compose部署file browser
  • P1983 [NOIP 2013 普及组] 车站分级
  • Spring文件泄露与修复方案总结
  • Unity 调节 Rigidbody2D 响应速度的解决方案【资料】
  • 聚合链接网站源码部署教程
  • 【开源分享】can-utils:深入解析 Linux CAN 工具集
  • 面试经典150道之多数元素
  • nflsoi 8.6 题解
  • Python day36
  • stm32项目(22)——基于stm32的智能病房监护系统
  • 基于PHP的论坛社交网站系统开发与设计
  • Git Cherry-Pick 指南
  • 中国移动h10g-01_S905L处理器安卓7.1当贝纯净版线刷机包带root权限_融合终端网关
  • HTTP Flood攻击:数字时代的“蝗虫灾害“与智能防护之道
  • Python赋能气象与气候数据分析的生态构建与实战路径
  • 使用R将nc文件转换为asc文件或者tif文件