css 盒子模型

css 盒子模型盒子模型是 html css 中最核心的基础知识 理解了这个重要的概念才能更好的排版 进行页面布局 下面是自己积累和总结的关于 css 盒子模型的知识 希望对初学者有用 一 css 盒子模型概念 CSScss 盒子模型又称框模型 BoxModel 包含了元素内容 content 内边距 padding 边框 border 外边距 margin 几个要素 如图 图中最内部的框是元素的实际内

盒子模型是html+css中最核心的基础知识,理解了这个重要的概念才能更好的排版,进行页面布局。下面是自己积累和总结的关于css盒子模型的知识^_^,希望对初学者有用。

一、css盒子模型概念

CSS css盒子模型 又称框模型 (Box Model) ,包含了元素内容(content)、内边距(padding)、边框(border)、外边距(margin)几个要素。如图:

css 盒子模型

图中最内部的框是元素的实际内容,也就是元素框,紧挨着元素框外部的是内边距padding,其次是边框(border),然后最外层是外边距(margin),整个构成了框模型。通常我们设置的背景显示区域,就是内容、内边距、边框这一块范围。而外边距margin是透明的,不会遮挡周边的其他元素。

那么,元素框的总宽度 = 元素(element)的width + padding的左边距和右边距的值 + margin的左边距和右边距的值 + border的左右宽度;

元素框的总高度 = 元素(element)的height + padding的上下边距的值 + margin的上下边距的值 + border的上下宽度。

二、css 外边距合并(叠加)

两个上下方向相邻的元素框垂直相遇时,外边距会合并,合并后的外边距的高度等于两个发生合并的外边距中较高的那个边距值,如图:

css 盒子模型css 盒子模型

比较容易理解,所以在页面中有时候遇到实际情况是需要考虑这个因素的。当然外边距合并其实也有存在的意义,如下图:

css 盒子模型

需要注意的是:只有普通文档流中块框的垂直外边距才会发生外边距合并。行内框、浮动框或绝对定位之间的外边距不会合并。

css reset 中也会经常用到

* { 
    margin : 0; padding : 0; }

 

三、box-sizing属性介绍

box-sizing属性是用户界面属性里的一种,之所以介绍它,是因为这个属性跟盒子模型有关,而且在css reset中有可能会用到它。

box-sizing : content-box|border-box|inherit;

(1) content-box ,默认值,可以使设置的宽度和高度值应用到元素的内容框。盒子的width只包含内容。

  即总宽度=margin+border+padding+width

(2) border-box , 设置的width值其实是除margin外的border+padding+element的总宽度。盒子的width包含border+padding+内容

    即总宽度=margin+width

很多CSS框架,都会对盒子模型的计算方法进行简化。

(3) inherit , 规定应从父元素继承 box-sizing 属性的值

关于border-box的使用:

 

四、实际开发中遇到的和框模型相关的应用及小问题。

1 margin越界(第一个子元素的margin-top和最后一个子元素的margin-bottom的越界问题)

以第一个子元素的margin-top 为例:

当父元素没有边框border时,设置第一个子元素的margin-top值的时候,会出现margin-top值加在父元素上的现象,解决方法有四个:

(1)给父元素加边框border (副作用)

(2)给父元素设置padding值  (副作用)

(3)父元素添加 overflow:hidden (副作用)

(4)父元素加前置内容生成。(推荐)

以第四种方法为例:

复制代码
.parent { 
    width : 500px; height : 500px; background-color : red; } .parent : before { 
    content : " "; display : table; } .child { 
    width : 200px; height : 200px; background-color : green; margin-top : 50px; }
复制代码

<div class="parent"> <div class="child"> 
    div>  
     div>

2 浏览器间的盒子模型。

(1)ul标签在Mozilla中默认是有padding值的,而在IE中只有margin有值。

(2)标准盒子模型与IE模型之间的差异:

  标准的盒子模型就是上述介绍的那种,而IE模型更像是 box-sizing : border-box; 其内容宽度还包含了border和padding。解决办法就是:在html模板中加doctype声明。

3 用盒子模型画三角形

复制代码
 
    DOCTYPE html> <html> <head> <style> .triangle { 
      width : 0; height: 0; border : 100px solid transparent; border-top : 100px solid blue; /*这里可以设置border的top、bottom、left、right四个方向的三角*/ }  
     style>  
      head> <body> <div class="triangle"> 
       div>  
        body>  
         html> 
复制代码

页面显示结果为:

css 盒子模型

end~~~ ^+^

2016.7.22 

 

 

 

如果对你有帮助,记得帮忙点个赞,支持我哦^o^。

尊重原创,转载请注明。

转自:https://www.cnblogs.com/clearsky/p/5696286.html



版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/206582.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月19日 下午3:25
下一篇 2026年3月19日 下午3:25


相关推荐

  • Python数组切片_python print数组

    Python数组切片_python print数组文章目录numpy数组切片操作一维数组1、一个参数:a[i]2、两个参数:b=a[i:j]3、三个参数:格式b=a[i:j:s]二维数组numpy数组切片操作通过冒号分隔切片参数start:stop:step来进行切片操作:一维数组importnumpyasnpa=[1,2,3.4,5]print(a)[12345]1、一个参数:a[i]如[2],将…

    2025年11月24日
    6
  • pycharm上传代码到gitlab_可以在gitlab里查看代码

    pycharm上传代码到gitlab_可以在gitlab里查看代码1.Pycharm关联Git安装路径(1)确定自己已经安装git,并且知晓git安装目录,我这里git安装在D盘目录下。(2)打开pycharm—->File——>Settings【点击Test后,出现弹框5,点击OK,此时Pycharm已关联git路径成功。】2.pycharm从gitlab上拉取代码(1)依次点击下图中…

    2022年8月28日
    6
  • 青龙面板一键搭建(openwrt安装青龙面板)

    大家好,QX系列教程教会了大家js脚本挂机的基础玩法,Boxjs为这个玩法提升了不少可玩性,但是IOS系统下最多支持2个账号,许多助力需求无法满足,应群友要求出一个青龙从零开始搭建教程,欢迎大家入群交流:106511927注意教程看不懂的话可以进群找群主帮你代挂!如果本教程看不懂或者操作出现问题,证明您的计算机专业知识并不支持本文章的搭建操作。第一步购买云服务器个人推荐阿里云服务器1核2G即可搞活动一年一百来块钱系统选择CentOs7等待配置完成。百度搜索Finalshell下载安装

    2022年4月18日
    229
  • 性能测试常见指标

    性能测试常见指标最近在学习性能测试的东西 对于一些常见性能测试指标做些总结 保存在这里方便后期查阅 文中摘抄自某大神的博客 文末放原文链接 有需要的童鞋可以更深入了解 nbsp nbsp nbsp 什么是性能测试 nbsp 压力测试 强调极端暴力 nbsp 稳定性测试 在一定压力下 长时间运行的情况 nbsp 基准测试 在特定条件下的性能测试 nbsp 负载测试 不同负载下的表现 nbsp 容量测试 最优容量 nbsp 概述 nbsp nbsp nbsp nbsp 不同人群

    2026年3月18日
    2
  • 设计模式:组合模式

    设计模式:组合模式

    2022年1月18日
    45
  • Windows 家族的十二种常用密码破解法

    Windows 家族的十二种常用密码破解法

    2021年8月7日
    80

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号