css实现盒子模型详细讲解

 本篇文章讲述了css实现盒子模型,大家对css实现盒子模型不了解的话或者对css实现盒子模型感兴趣的话那么我们就一起来看看本篇文章吧, 好了废话少说进入正题吧

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

一、css盒子模型概念

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

3I6Z45GK$51MF74T9UNI_FY.png

图中最内部的框是元素的实际内容,也就是元素框,紧挨着元素框外部的是内边距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 一个box宽度为100%,又想要两边有内间距,这时候用就比较好
2 全局设置 border-box 很好,首先它符合直觉,其次它可以省去一次又一次的加加减减,它还有一个关键作用——让有边框的盒子正常使用百分比宽度。

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

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

以第一个子元素的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;}

登录后复制

 

登录后复制

2 浏览器间的盒子模型。

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

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

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

3 用盒子模型画三角形

nbsp;html>              .triangle {            width : 0;            height: 0;            border : 100px solid transparent;            border-top : 100px solid blue; /*这里可以设置border的top、bottom、left、right四个方向的三角*/        }            

  

登录后复制

页面显示结果为:

css实现盒子模型详细讲解

以上就是本篇文章的所有内容,大家要是还不太了解的话,可以自己多实现两边就很容易掌握了哦!

相关推荐:

盒子模型

盒子模型

以上就是css实现盒子模型详细讲解的详细内容,更多请关注【创想鸟】其它相关文章!

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

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2899691.html

(0)
上一篇 2025年3月10日 23:48:54
下一篇 2025年3月10日 23:49:00

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • CSS实现分隔线的多种方法详细讲解

    本篇文章讲述了css如何实现分隔线的多种方法,我们在写前端页面的时候分隔线可以起到美观作用,css实现分隔线的方法有多种,那么我们就一起来看看使用css如何实现分隔线更美观点吧! 单个标签实现分隔线: html: 小小分隔线 单标签实现 登…

    编程技术 2025年3月10日
    000
  • css3的聊天气泡样式

    这次给大家带来css3的聊天气泡样式,做出css3的聊天气泡样式的注意事项有哪些,下面就是实战案例,一起来看一下。 在聊天的场景中,聊天内容需要用到气泡修饰,如下图。下面一一讲解。 图片式: 第一个样式是京东客服,气泡的圆角和钩子都是用了图…

    2025年3月10日
    200
  • 详谈css样式初始化

    这次给大家带来详谈css样式初始化 ,css的样式初始化注意事项有哪些,下面就是实战案例,一起来看一下。      在网站编写的时候,由于许多的标签会有默认存在的样式,比如P标签的外边距,a标签的下划线等等,通常我们会把这些默认样式去除,以…

    编程技术 2025年3月10日
    200
  • 三种CSS截图的方法

    本文主要为大家分享三种CSS截图的方法 ,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧,希望能帮助到大家。 CSS截图图片的几种方式 原图: DIV   使用background-position:Xpx Ypx (图片左…

    2025年3月10日 编程技术
    200
  • css实现图片未加载完成时占位显示实例分享

    通过css控制,可以实现加载网络图片时,未加载完成的时候显示本地一张占位图,加载完成后显示网络图片; 原理:通过在img标签的after伪元素上添加一张占位图,并且img都设置为position:relative;after设置positi…

    2025年3月10日
    200
  • 用CSS实现Tab页切换效果的示例代码_CSS教程_CSS_网页制作

    最近切一个页面的时候涉及到了一个tab切换的部分,因为不想用js想着能不能用纯css的选择器来实现切换效果。搜了一下大致有下面三种写法。 1、利用 :hover 选择器 缺点:只有鼠标在元素上面的时候才有效果,无法实现选中和默认显示某一个的…

    2025年3月10日
    200
  • 清除css浮动的方法

    这次给大家带来清除css浮动的方法,清除css浮动的css浮动有哪些,下面就是实战案例,一起来看一下。 一,我们为什么要浮动 为什么浮动,为什么要css浮动,以及清除浮动的方法。在网页布局的时候有时需要元素并排显示,如果不选择浮动,那么那些…

    2025年3月10日 编程技术
    200
  • 使用CSS做出3D翻页效果

    这次给大家带来使用CSS做出3D翻页效果,使用CSS做出3D翻页效果的注意事项有哪些,下面就是实战案例,一起来看一下。 今天开始~小编将与大家分享一系列的web前端特效荟萃,喜欢把玩儿炫酷效果的小伙伴快快看过来^_^ ,希望大家喜欢呦~ 第…

    2025年3月10日
    200
  • css3如何做出小于一像素的细线

    这次给大家带来css3如何做出小于一像素的细线,css3做出小于一像素的细线的注意事项有哪些,下面就是实战案例,一起来看一下。 Webapp中的CSS3实现 0.5px的细线 感觉很长时间没写过博客了,最近生活还算稳定,过得较为充实,所以又…

    2025年3月10日 编程技术
    200
  • css判断子元素个数

    这次给大家带来css判断子元素个数,css判断子元素个数的注意事项有哪些,下面就是实战案例,一起来看一下。 工作时遇到这样一个问题:根据某元素所包含的子元素个数,分别设置不同的样式,这个用js可以解决,不过个人认为用css解决可能更简单一点…

    2025年3月10日 编程技术
    200

发表回复

登录后才能评论