css调节和控制元素大小

css调节和控制元素大小

  • 1.(resize)调节元素大小
  • 2.(box-sizing)控制元素大小

写在前面:

1.(resize)调节元素大小:
	none(无法调节).
	both(允许调节).
	horizontal(调节宽度).
	vertical(调节高度).
	注意:resize要和overflow:auto搭配使用.

2.(box-sizing)控制元素大小:
	content-box(默认值):
		元素width=内容的宽度,
		元素height=内容的高度.
	border-box:
		元素width=border+padding+内容的宽度,
		元素height=border+padding+内容的高度.(注意:不包含margin)

1.(resize)调节元素大小

演示模板:

<div id="box"></div>

css代码:

#box{
  width:200px;
  height:200px;
  background:red;
  position:absolute;
  margin:auto;
  left:0;
  top:0;
  right:0;
  bottom:0;
  resize:both;
}

页面效果:
css调节和控制元素大小_第1张图片
可以发现设置了resize:both并不能调节元素大小,原来resize属性必须和overflow属性搭配使用才有效果。

#box{
  width:200px;
  height:200px;
  background:red;
  position:absolute;
  margin:auto;
  left:0;
  top:0;
  right:0;
  bottom:0;
  resize:both;
  overflow:auto;
}

页面效果:
css调节和控制元素大小_第2张图片

resize:horizontal可以只允许调节宽度:

页面效果:
css调节和控制元素大小_第3张图片

resize:vertical可以只允许调节高度:

页面效果:
css调节和控制元素大小_第4张图片

一定要记住resize属性必须和overflow属性搭配使用才会有效果。

2.(box-sizing)控制元素大小

演示模板:

<div id="box">box</div>

box-sizing的默认值是conten-box,元素的高宽就等于内容的高宽:

css代码:

#box{
  width:200px;
  height:200px;
  background:red;
  border:20px solid blue;
  padding:30px;
  box-sizing:content-box;
}

页面效果:
css调节和控制元素大小_第5张图片
可以看出元素的总体高宽跟初始设置的高宽不一致,受内容及属性的影响。
所以得出:元素width=内容的宽度,元素height=内容的高度。

换成border-box试试:

#box{
  width:200px;
  height:200px;
  background:red;
  border:20px solid blue;
  padding:30px;
  box-sizing:border-box;
}

页面效果:
css调节和控制元素大小_第6张图片

可以看出元素的总体高宽跟初始设置的高宽一致,不受内容及属性的影响。
所以得出:元素width=border+padding+内容的宽度,元素的height=border+padding+内容的高度。
注意:不包含margin。

box-sizing:border-box在很多场景中都会运用到。

你可能感兴趣的:(css3)