盒模型

74 阅读3分钟

盒模型

盒模型是css布局的基石,它规定了网页元素如何显示以及元素间相互关系。css定义所有的元素都可以拥有像盒子一样的外形和平面空间。即都包含内容区、补白(内填充)、边框、边界(外边距)这就是盒模型。
盒模型组成 = content(内容) + padding(内填充) + border(边框) + margin(外边距)

padding

padding用法:
1:padding是在盒子里面,在盒子与内容之间。
2:padding的作用:控制子元素在父元素里面的位置关系。
3:padding会把盒子撑大。
4:如果想让盒子保持原有的大小:在宽高基础上减掉padding值。( 如果一个元素是被内容撑开的,没有设置固定的宽高,padding直接撑开。不用减掉 )
5:如果给单一方向添加padding
padding-top/bottom/left/right
6:padding的设置特点:
padding:30px; 四周
padding:10px 30px; 上下 左右
padding:10px 30px 50px 上 左右 下
padding:10px 30px 50px 100px 上右下左
7:padding不会对背景图的位置造成影响。

边框

    border:边框宽度 边框风格 边框颜色;
​
    例如:border:5px solid #ff0000
​
    边框宽度:border-width:1px;
​
    边框颜色:border-color:#ccc;
​
    边框样式:border-style:solid(实线)/dashed(虚线)dotted(点划线)double(双线)
    
    
    单独设置一方向边框:
​
    border-bottom:边框宽度 边框风格 边框颜色;底边框
​
    border-left:边框宽度 边框风格 边框颜色;左边框
​
    border-right:边框宽度 边框风格 边框颜色;右边框
​
    border-top:边框宽度 边框风格 边框颜色;上边框
​
    
​
定义单方向边框颜色:
​
  border-right-color:green;
​

margin

margin用法 (外边距、边界)
1:margin在元素外围,不会撑大元素的大小
2:作用:控制元素与元素之间的间距。
3:给单一方向添加margin
margin-left/right/top/bottom
4 :margin设置方法:
margin:30px; 四周
margin:10px 30px; 上下 左右
margin:10px 30px 50px 上 左右 下
margin:10px 30px 50px 100px 上右下左
5:margin:0 auto;
让当前元素在父元素里面左右居中(如果是块级元素必须设置宽度)。
6:margin常出现的bug
a:两个相邻元素上下的margin值 不会叠加 按照较大值设置。(margin合并)
b:如果父元素和第一个子元素没有浮动的情况下,给第一个子元素添加margin-top,会错误放在父元素上面。(margin塌陷)

盒子大小计算

批注 2022-03-02 150812.png

文本溢出

overflow


visible:默认值,内容不会被修剪,会呈现在元素框之外;
hidden:内容会被修剪,并且其余内容是不可见的;
scroll:内容会被修剪,但是浏览器会显示滚动条,以便查看其余的内容;
auto:如果内容被修剪,则浏览器会显示滚动条,以便查看其他的内容;
inherit:规定应该从父元素继承overflow属性的值。

white-space


normal:默认值,多余空白会被浏览器忽略只保留一个;
pre:空白会被浏览器保留;
pre-wrap:保留一部分空白符序列,但是正常的进行换行;
pre-line:合并空白符序列,但是保留换行符;
nowrap:文本不会换行,文本会在同一行上继续,直到遇到<br/>标签为止;

text-overflow


clip:不显示省略号(...),而是简单的裁切;
ellipsis:当对象内文本溢出时,显示省略标记;

文本溢出变省略号设置


**单行省略号设置**
text-overflow属性仅是:当文本溢出时是否显示省略标记,并不具备其它的样式属性定义,要实现溢出时产生省略号的效果还需定义:
1、容器宽度:width:value;(px、%,都可以)
2、强制文本在一行内显示:white-space:nowrap;
3、溢出内容为隐藏:overflow:hidden;
4、溢出文本显示省略号:text-overflow:ellipsis;      
     
**多行显示省略号**
   overflow: hidden;
   text-overflow: ellipsis;
   display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;

\