CSS 处理溢出 overflow属性

在CSS中,如果设置了一个盒子的宽度与高度,则盒子中的内容就可能超过盒子本身的宽度或高度。此时,可以使用 overflow 属性来控制内容溢出时的处理方式。

overflow属性的可选值有 visible | hidden | scroll | auto,除了body 和 textarea 的默认值为auto外,其它元素的默认值为visible。

如果不设置 overflow属性,则默认值就是 visible。所以,一般而言,除非你想覆盖它在其它地方被设定的值,并没有什么理由把 overflow属性设置为 visible。

假设有一个设置了固定宽度和高度的盒子,其内容的尺寸,超过了盒子本身的尺寸:

由于并没有设置 overflow属性,表示使用其默认值 visible,让溢出的内容可见。此时,溢出的内容就会渲染到盒子的外面。运行结果如图 4?54 所示:

根据CSS规范,这种扩展实际上是错误的,这种错误意味着Window上的IE中的 height实际上更像是min-height,这种行为常常会破坏布局。

如果把 overflow属性设置为 hidden,情况则与 visible 相反,它会把超出盒子的内容全部隐藏掉。运行结果如图 4?56 所示:

这种情况下,无论内容是否溢出,都会在水平和垂直方向同时出现滚动条。此时,也可以使用 overflow-x 或 overflow-y 属性,来单独设置水平方向和垂直方向溢出时的处理方式,其语法与 overflow 完全相同。其实,overflow 的作用就相当于overflow-x + overflow-y。

如果把 overflow属性设置为 auto,则只在需要的时候出现滚动条,即当内容溢出时自动出现滚动条,未溢出时不出现。运行结果如图 4?58 所示:

overflow:auto效果图4-58 overflow:auto效果

歪脖先生,十五年以上软件开发经验,酷爱Web开发,精通 HTML、CSS、JavaScript、jQuery、JSON、Python、Less、Bootstrap等,著有《HTML宝典》、《揭秘CSS》、《Less简明教程》、《JSON教程》、《Bootstrap2用户指南》、《Bootstrap3实用教程》,并全部在 GitHub 上开源。

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2018年1月17日
下一篇 2018年1月18日

相关推荐