在 CSS3 中, 增加了一些新的特性来调整用户界面。
resize
resize,允许你控制一个元素的可调整大小性。
none:元素不能被用户缩放。both:允许用户在水平和垂直方向上调整元素的大小。horizontal:允许用户在水平方向上调整元素的大小。vertical:允许用户在垂直方向上调整元素的大小。
<textarea> 标签自带 resize: both;,所以可以通过设置 resize: none; 来禁止 <textarea> 的尺寸被拉伸。
值得注意的是 resize 和 overflow 之间的关系:
-
overflow: visible,resize失效。 -
overflow: hidden,无论是否拉伸尺寸,超出尺寸的内容都会被隐藏裁剪; -
overflow: scroll,无论是否拉伸尺寸,元素始终显示滚动条; -
overflow: auto,仅尺寸小于内容显示时,才会出现滚动条,可以说,这是最美观的设置;
box-sizing
box-sizing 属性定义了浏览器应该如何计算一个元素的总宽度和总高度。
content-box(默认值),即标准盒模型,width: 100%指的是内容区宽是 100%。- 盒子的大小 =
content(100px)+padding+border
- 盒子的大小 =
border-box,即替代(IE)盒模型,width: 100%指的是内容区 + 边框 + 内边距的总宽是 100%。- 盒子的大小 =
content+padding+border=100px
- 盒子的大小 =
不论那种模型,margin 都是不计入实际大小 —— 当然,它会影响盒子在页面所占空间,但是影响的是盒子外部空间。
outline-offset
先简单介绍一下 outline 是什么?outline 是绘制于元素周围的一条线,位于 border 的外围,使元素突出。outline 和 border 很类似,但有如下区别:
- 默认情况下,轮廓是紧贴着边框的
outline: dashed red; border: 5px solid green; - outline 不占据空间,绘制于元素内容周围,outline 不会破坏元素宽高。
- 根据规范,outline 通常是矩形,但也可以是非矩形的。
outline-offset,用于设置 outline 与一个元素边缘或边框之间的间隙。元素和其轮廓之间是透明的。也就是说,它们之间的颜色会继承父元素的背景色。
outline-offset: 10px;