注册 登录

清河洛

CSS中的盒子模型

qingheluo2022-11-19清河洛575
css盒子模型:每个元素在页面中都会生成一个矩形的盒子用来显示该元素,每个盒子都是由一下几个部分组成1、内容,content:可用css属性:width、height2、填充(内边距),padding:可用css属性:padding、paddinf-top、paddinf-right、paddinf-bottom、paddinf-left3、边框,border:可用css属性:border、border-style、border-width、border-color4、外边距,margin:可用css属性:margin、margin-top、margin-right、margin-bot...

css盒子模型:

每个元素在页面中都会生成一个矩形的盒子用来显示该元素,每个盒子都是由一下几个部分组成

1、内容,content:可用css属性:width、height

2、填充(内边距),padding:可用css属性:padding、paddinf-top、paddinf-right、paddinf-bottom、paddinf-left

3、边框,border:可用css属性:border、border-style、border-width、border-color

4、外边距,margin:可用css属性:margin、margin-top、margin-right、margin-bottom、margin-left

默认情况下元素的宽度(width) 和高度(height)计算方式如下

width(宽度) + padding(内边距) + border(边框) = 元素实际宽度
height(高度) + padding(内边距) + border(边框) = 元素实际高度

这个计算方式时可以由我们手动通过box-sizing属性指定,该属性可能的值

content-box,默认值,
border-box,边框和内边距的值是包含在width内的
    内容区的实际宽度是width减去(border + padding)的值
    内容区的实际高度是height减去(border + padding)的值
    大多数情况下,这使得我们更容易地设定一个元素的宽高

元素是html中的概念,而盒子是css中的概念

块级元素和行级元素的说法在html5中已经废除,因为一个元素在页面中如何显示应该由CSS来控制,该说法将html元素和css盒子概念混为一谈了

css中的display属性用于设置盒子类型,该属性属于css范畴,用来规定html元素的显示方式

每个html元素都有一个浏览器默认的盒子类型

一个盒子一旦设置了浮动(float)属性,该盒子会强制转换为块级盒子,且即使手动将display设置为inline也不会生效

绝对定位(position:absolute)和固定定位(position:fixe)也会将盒子强制转换为块级盒子

常见和盒子类型:

none:盒子不显示,从盒子树中移除,包括其所有后代元素

block:盒子将设为块级盒子,独占一行

flex:弹性布局的块级盒子

grid:网格布局的块级盒子

table:表格布局的块级盒子

inline:盒子将设为行级(内联)盒子,不会独占一行

width、height属性不生效
border、padding和margin属性对自身生效,但对外时对同一行的内容生效,对不同行的内容(当内容过多产生换行)不生效
就是说当内容过多产生换行时会产生比较混乱的显示效果

inline-block:对外表现成内联盒子(不换行),对内表现成块级盒子(具备width、height、padding、border和margin正确解释的特性)

inline-flex:对外表现成内联盒子,对子元素表现成弹性盒子

inline-grid:对外表现成内联盒子,对子元素表现成网格盒子

inline-table:对外表现成内联盒子,对子元素表现成表格盒子

contents:只影响其内容的样式生效,比如:字体大小、文字颜色等;但是像背景色、边框是不会生效的

list-item:将盒子显示为列表,li标签默认display属性为该值



网址导航