css调节和控制元素大小


写在前面:

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;
}

页面效果:
在这里插入图片描述
可以发现设置了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;
}

页面效果:
在这里插入图片描述

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

页面效果:
在这里插入图片描述

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

页面效果:
在这里插入图片描述

一定要记住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;
}

页面效果:
在这里插入图片描述
可以看出元素的总体高宽跟初始设置的高宽不一致,受内容及属性的影响。
所以得出:元素width=内容的宽度,元素height=内容的高度。

换成border-box试试:

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

页面效果:
在这里插入图片描述

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值