浅谈 CSS3 新特性:控制用户界面

610 阅读2分钟

在 CSS3 中, 增加了一些新的特性来调整用户界面。

resize

resize,允许你控制一个元素的可调整大小性。

  • none:元素不能被用户缩放。
  • both:允许用户在水平和垂直方向上调整元素的大小。
  • horizontal:允许用户在水平方向上调整元素的大小。
  • vertical:允许用户在垂直方向上调整元素的大小。

<textarea> 标签自带 resize: both;,所以可以通过设置 resize: none; 来禁止 <textarea> 的尺寸被拉伸。

值得注意的是 resize 和 overflow 之间的关系:

  • overflow: visibleresize 失效。

  • overflow: hidden,无论是否拉伸尺寸,超出尺寸的内容都会被隐藏裁剪;

  • overflow: scroll,无论是否拉伸尺寸,元素始终显示滚动条;

  • overflow: auto,仅尺寸小于内容显示时,才会出现滚动条,可以说,这是最美观的设置;

box-sizing

box-sizing 属性定义了浏览器应该如何计算一个元素的总宽度和总高度。

  • content-box(默认值),即标准盒模型,width: 100% 指的是内容区宽是 100%。
    • 盒子的大小 = content(100px) + padding + border 01.png
  • border-box,即替代(IE)盒模型,width: 100% 指的是 内容区 + 边框 + 内边距 的总宽是 100%。
    • 盒子的大小 = content + padding + border = 100px 02.png

不论那种模型,margin 都是不计入实际大小 —— 当然,它会影响盒子在页面所占空间,但是影响的是盒子外部空间。

outline-offset

先简单介绍一下 outline 是什么?outline 是绘制于元素周围的一条线,位于 border 的外围,使元素突出。outline 和 border 很类似,但有如下区别:

  • 默认情况下,轮廓是紧贴着边框的
    outline: dashed red;
    border: 5px solid green;
    
    01.png
  • outline 不占据空间,绘制于元素内容周围,outline 不会破坏元素宽高。
  • 根据规范,outline 通常是矩形,但也可以是非矩形的。

outline-offset,用于设置 outline 与一个元素边缘或边框之间的间隙。元素和其轮廓之间是透明的。也就是说,它们之间的颜色会继承父元素的背景色。

outline-offset: 10px;

01.png

浅谈 CSS3 新特性