码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • CSS 盒子模型


    CSS 盒子模型(Box Model)

    所有HTML元素可以看作盒子,在CSS中,"box model"这一术语是用来设计和布局时使用。

    CSS盒模型本质上是一个盒子,封装周围的HTML元素,它包括:边距,边框,填充,和实际内容。

    盒模型允许我们在其它元素和周围元素边框之间的空间放置元素。

    下面的图片说明了盒子模型(Box Model):

    CSS box-model

    不同部分的说明:

    • Margin(外边距) - 清除边框外的区域,外边距是透明的。
    • Border(边框) - 围绕在内边距和内容外的边框。
    • Padding(内边距) - 清除内容周围的区域,内边距是透明的。
    • Content(内容) - 盒子的内容,显示文本和图像。

    为了正确设置元素在所有浏览器中的宽度和高度,你需要知道的盒模型是如何工作的。


    元素的宽度和高度

    重要: 当您指定一个 CSS 元素的宽度和高度属性时,你只是设置内容区域的宽度和高度。要知道,完整大小的元素,你还必须添加内边距,边框和外边距。

    下面的例子中的元素的总宽度为 450px:

    1. div {
    2. width: 300px;
    3. border: 25px solid green;
    4. padding: 25px;
    5. margin: 25px;
    6. }

    让我们自己算算:
    300px (宽)
    + 50px (左 + 右填充)
    + 50px (左 + 右边框)
    + 50px (左 + 右边距)
    = 450px

    试想一下,你只有 250 像素的空间。让我们设置总宽度为 250 像素的元素:

    1. div {
    2. width: 220px;
    3. padding: 10px;
    4. border: 5px solid gray;
    5. margin: 0;
    6. }

    最终元素的总宽度计算公式是这样的:

    总元素的宽度=宽度+左填充+右填充+左边框+右边框+左边距+右边距

    元素的总高度最终计算公式是这样的:

    总元素的高度=高度+顶部填充+底部填充+上边框+下边框+上边距+下边距


    浏览器的兼容性问题

    一旦为页面设置了恰当的 DTD,大多数浏览器都会按照上面的图示来呈现内容。然而 IE 5 和 6 的呈现却是不正确的。根据 W3C 的规范,元素内容占据的空间是由 width 属性设置的,而内容周围的 padding 和 border 值是另外计算的。不幸的是,IE5.X 和 6 在怪异模式中使用自己的非标准模型。这些浏览器的 width 属性不是内容的宽度,而是内容、内边距和边框的宽度的总和。

    虽然有方法解决这个问题。但是目前最好的解决方案是回避这个问题。也就是,不要给元素添加具有指定宽度的内边距,而是尝试将内边距或外边距添加到元素的父元素和子元素。

    IE8 及更早IE版本不支持设置填充的宽度和边框的宽度属性。

    解决IE8及更早版本不兼容问题可以在HTML页面声明 即可。

  • 相关阅读:
    正点原子嵌入式linux驱动开发——Linux内核顶层Makefile详解
    分布式主键算法
    小程序源码:独立后台带分销功能月老办事处交友盲盒-多玩法安装简单
    python链接数据库并创建/删除/插入多个数据库/表/表数据
    【Python从入门到进阶】38、selenium关于Chrome handless的基本使用
    【考研】数据结构考点——折半查找和折半插入排序
    OSPF双栈原理
    C语言,求一个十进制数的二进制中1出现的次数,版本2.0(另外两种方法介绍)
    Java并发编程(总结最全面的面试题!!!)
    图文详细介绍:使用IDEA通过插件创建流程图解决Activiti工作流部署审批等操作
  • 原文地址:https://blog.csdn.net/leyang0910/article/details/133690388
  • 最新文章
  • 沪漂五周年了:我越来越迷茫了
    Agentic Skill Routing 实战:别再把所有 Skill 塞进 AI Agent 上下文
    MySQL-Seconds_behind_master的精度误差
    [MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间
    AI的至暗历史:从万众期待到被政府撤资,AI的两次死亡徘徊
    Agent OS :五种驯服不确定性的范式
    PortSwigger SQL注入LAB11
    数据库即时编译JIT
    [Begin]AI Learn Data Day 0
    深度学习进阶(二十七)现代 LLM 的核心架构设计其二:SwiGLU
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号