CSS盒子模型

更新日期: 2019-09-15阅读: 2.2k标签: 模型

一、什么叫框模型

页面元素皆为框(盒子),定义了元素框处理元素内容,内边距,外边距以及边框的计算方式。


二、外边距

围绕在元素边框外的空白距离(元素与元素之间的距离)

语法:margin,定义4个方向的外边距

1、单边定义:margin-top/right/bottom/left

(1)取值:以px为单位, %占父级元素宽度的%比

正数:margin-left 元素向右移动,margin-top元素向下移动

负数:就是相反方向

取值 auto:自动计算块级元素的外边距,对于上下外边距无效,块级元素水平居中


2、简写方式

margin:value ;定义4个方向的值

margin:v1 v2; v1设置上下,v2设置左右

margin:0 auto:设置块级元素水平居中

margin:v1 v2 v3;v1设置上,v2设置左右,v3设置下

margin:v1 v2 v3 v4;上右下左


3、自带外边距的元素

h1~h6、p、body、ol、ul、dl、pre

一般在开发的时候需要重置具有外边距的元素

方案一:*{margin:0;padding:0}
方案二:参考淘宝


4、外边距的特殊效果

(1)外边距合并

当两个垂直外边距相遇时,他们将合并成一个,最终的距离取决于两个边距中较大的

  (2)行内元素对外边距的表现

行内元素垂直外边距无效(img)除外

(3)行内块对外边距的表现

同一行中,一个行内块设置了垂直边距,同行其他行内会跟着变化

 (4)外边距溢出

 在特殊条件下,为子元素设置上外边距,会作用到父元素

 特殊条件:

1.父元素上边框
2.为第一个子元素设置上外边框,任何一个  都会造成外边框溢出

解决方法:

 为父元素添加边框,弊端:影响了父元素的实际高度
为父元素添加内边距,弊端  了父元素的实际高度
在父元素的  第一个子元素位置,添加一个空的table


三、内边距

不会影响其他元素,但是会影响自己的占地尺寸,视觉上感觉大小发生变化

语法:

padding:value ;设置4个方向的内边距

padding:v1 v2;v1设置上下,v2设置左右

padding:v1 v2 v3;v1设置上,v2设置左右,v3设置下

padding:v1 v2 v3 v4;设置上右下左

单方向设置:padding-top/right/bottom/left

 

box-sizing属性,设置框模型的计算方式

box-sizing:content-box;默认值,盒子模型计算,div设置的width,height为content的大小

<style>
        #d1{
            width: 200px;
            height: 200px;
            margin: 10px;
            padding: 10px;
            border: 10px solid black;
            box-sizing: content-box;
        }
    </style>
</head>
<body>
    <div id="d1"></div>
</body>

box-sizing:boder-box;div设置的width,height为border外边距的大小

<style>
        #d1{
            width: 200px;
            height: 200px;
            margin: 10px;
            padding: 10px;
            border: 10px solid black;
            box-sizing: border-box;
        }
    </style>
</head>
<body>
    <div id="d1"></div>
</body>

链接: https://fly63.com/article/detial/5327

CSS3 box-sizing 属性 有趣的盒模型

盒模型的组成大家肯定都懂,由里向外content,padding,border,margin.盒模型是有两种标准的,一个是标准模型,一个是IE模型。盒模型的宽高只是内容(content)的宽高,而在IE模型中盒模型的宽高是内容(content)+填充(padding)+边框(border)的总宽高。

PHP下用Swoole实现Actor并发模型

Actor对于PHPer来说,可能会比较陌生,写过Java的同学会比较熟悉,Java一直都有线程的概念(虽然PHP有Pthread,但不普及),它是一种非共享内存的并发模型,每个Actor内的数据独立存在

Three.js模型几何体面积、体积计算

在工作中通过Three.js开发项目的时候,一些特定的情况下你可能需要计算一个三维模型的表面积或者体积,比如在3D打印的Web项目中,你需要计算一个三维模型的体积

CSS层模型的应用

如果想为元素设置层模型中的绝对定位,需要设置position:absolute(表示绝对定位),这条语句的作用将元素从文档流中拖出来(即不依赖与前面的一个DIV的位置可以独立设置位置)

CSS盒子模型与怪异盒模型

盒子模型(Box Modle)可以用来对元素进行布局,包括内边距,边框,外边距,和实际内容这几个部分。盒子模型分为两种 第一种是W3c标准的盒子模型(标准盒模型)

CSS3中的弹性盒子模型

css3中新提出的一种布局方案。是一种为了应对针对不同屏幕宽度不同设备的一整套新的布局方案。主要是对一个容器中的子元素进行排列、对齐和分配空白空间的方案的调整。

浏览器事件模型

我想你很可能听说过事件驱动, 但是事件驱动到底是什么?为什么说浏览器是事件驱动的呢?为什么 NodeJS 也是事件驱动的 ? 两者是一回事么?实际上不管是浏览器还是 Nodejs 都是事件驱动的

css盒模型

盒模型:box-sizing;标准盒模型: content-box 宽高即为content的宽高;IE盒模型:border-box 宽高为content+padding+border;dom.style.width/height 只能获取内联样式设置的宽高

盒模型大小取决于它的padding,margin,border数值

盒模型规定了元素框处理元素内容width与height值、内边距padding、边框border 和 外边距margin 的数值大小。边框内的空白是内边距padding,边框外的空白是外边距margin,如下所示,这个盒模型元素框的宽度值=内容区域的宽度+2(内边距+外边距+边框)

JavaScript执行模型

JavaScript是一个单线程(Single-threaded)异步(Asynchronous)非阻塞(Non-blocking)并发(Concurrent)语言,这些语言效果通过一个调用栈(Call Stack)、一个事件循环(Event Loop)、一个回调队列

点击更多...

内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!