CSS深入理解之overflow

前言

这是跟着张鑫旭重学CSS的overflow篇

基本属性

overflow有以下五个基本属性:

1.visible : 默认值,具体表现为,应用此属性后,子元素超出时,继续展示;

2.hidden: 超出的部分隐藏;

3.scroll: 超出时展示滚动条;

4.auto: 自动判断;

5.inherit:继承父元素

overflow-x和overflow-y是IE8以上浏览器支持的属性,如果overflow-x/y相同,则等同于overflow属性.如果不同,并且一个属性是visible,另一个属性是hidden/auto/scroll,则visible会重置为auto.

如何让overflow起作用
  1. 非 display:inline水平;
  2. 对应方位的尺寸限制,宽高/最大宽高/absolute拉伸等
  3. 对于单元格td元素,需要table为 table-layout:fixed才可以
overflow:visible妙用

IE7浏览器下,文字越多,按钮两侧的padding留白越多,只要给按钮添加一个overflow:visible 属性,即可正常表现

滚动条

出现条件
  1. overflow:auto/scroll
  2. 一些默认的元素,比如说html/textarea

说明: 无论说明浏览器,默认滚动条来自<html>而不是body

页面的滚动高度

谷歌浏览器document.body.scrollTop;

其他浏览器:document.documentElement.scrollTop;

两者不会同时存在,建议使用

var st=document.documentElement.scrollTop || document.body.scrollTop

滚动条的宽度机制

滚动条是会占用容器的可用宽度或高度;这个特性可能会对我们的页面布局有一些不好的影响,这就需要我们进行特出是处理

overflow 和
BFC

具体应用有一下几种

  1. 清楚浮动影响

    在之前的浮动文章中提到过,.浮动会导致父容器高度塌陷,那么这个时候我们可以设置子元素的 overflow:hidden来清除浮动具体的代码这里不说了.
  2. 避免margin重叠

    我们知道,两个紧邻的元素,设置margin时,两个元素的margin会重叠在一起,那么这个时候我们可以设置元素的overflow值,就可解决这个问题,当然还有其他的方式,比如使用边框/padding或者元素自身BFC化
  3. 两栏自适应布局

    具体可参看之前的浮动

    http://www.cnblogs.com/heyuqing/p/6148488.html

overflow与绝对定位

overflow:hidden/auto失效

当给一个应用了overflow:hidden/auto属性的元素定位为absolute时,其特性失效.

原因: 绝对定位元素不总是被父级overflow属性剪裁,尤其当overflow在绝对定位元素及其包含块之间时;

[包含块]:含有position:relative/absolute/fixed声明的父级元素,没有则为body元素.

如何避免失效

  1. overflow元素自身为包含块;

    给overflow元素添加relatIve等属性
  2. overflow子元素为包含块;

    在被剪裁元素与overflow元素之间插入一个relative等的元素
  3. 任意合法的transform声明当做包含块.

依赖overflow的样式表现

CSS3的resize属性

resize属性可以拉伸元素其属性值为:

both:水平垂直拉伸

horizontal:水平方向拉伸;

vertical:垂直方向拉伸

但是,要想此属性起作用,元素的overflow属性不能为visible.

ellipsis文字溢出...省略

使用text-overflow:ellipsis属性,在文字溢出时,会用省略号来表示多余的文字,前提是元素同时应用overflow:hidden属性

CSS深入理解之overflow的更多相关文章

  1. CSS深入理解之overflow(HTML/CSS)

    简介 overflow看上去其貌不扬,其中蕴含的知识点还是很多的,有很多鲜为人知的特性表现. overflow基本属性值 1.visible(默认) 2.hidden 3.scroll 4.auto ...

  2. CSS深入理解学习笔记之absolute

    1.absolute和float 拥有相同的特性表现: ①包裹性(容器应用之后,可以包裹里面的内容): <!doctype html> <html> <head> ...

  3. CSS深入理解之absolute(HTML/CSS)

    absolute和float是同父异母的兄弟,因为它们具有相同点:包裹性与破坏性 absolute的特点 1.独立的,并且可以摆脱overflow的限制,无论是滚动还是隐藏: 2.无依赖,不受rela ...

  4. CSS深入理解之line-height

    以下文字整理自慕课网——张鑫旭的<CSS深入理解之line-height>. line-height,又称行高,指的是两行文字基线之间的距离,又可以称为这行文字所占的高度. 定义三问: 什 ...

  5. css pre如果同时运用了css的border-radius、 overflow两个属性且标签中内容太多时,外部div滚动条在firefox下滚动时很卡

    pre如果同时运用了css的border-radius. overflow两个属性且标签中内容太多时,外部div滚动条在firefox下滚动时很卡. 解决方法:去掉css中border-radius. ...

  6. CSS深入理解学习笔记之overflow

    1.Overflow基本属性 overflow:visible(默认)/hidden/scroll/auto/inherit; visible:超出部分可见. hidden:超出部分隐藏. scrol ...

  7. css深入理解overflow

    1.基本属性 visible(默认值) 超出部分仍然正常显示 hidden 超出后隐藏 scroll 滚动条一致显示 auto 自适应 显示或隐藏滚动条 inherit overflow  =  ov ...

  8. 【转】CSS深入理解流体特性和BFC特性下多栏自适应布局

    这篇文章发布于 2015年02月12日,星期四,23:36,归类于 css相关. 阅读 30873 次, 今日 63 次 by zhangxinxu from http://www.zhangxinx ...

  9. 转 - CSS深入理解vertical-align和line-height的基友关系

    一.想死你们了 几个星期没有写文章了,好忙好痒:个把月没有写长篇了,好忙好想:半个季度没在文章中唠嗑了,好痒好想. 后面一栋楼有对夫妻在吵架,声音雄浑有力,交锋酣畅淋漓,还以为只有小乡镇才有这架势,哦 ...

随机推荐

  1. html学习第二天—— 第七章——CSS样式基本知识

    外部式css样式,写在单独的一个文件中外部式css样式(也可称为外联式)就是把css代码写一个单独的外部文件中,这个css样式文件以“.css”为扩展名,在<head>内(不是在<s ...

  2. 关于DOM的一些操作 整理 积累

    var chils= s.childNodes;  //得到s的全部子节点 var par=s.parentNode;   //得到s的父节点 var ns=s.nextSbiling;   //获得 ...

  3. inner join on 和 where = 的区别!

    请看下面两条语句:select * from table1 inner join table2 on table1.id = table2.idselect * from table1,table2 ...

  4. C语言For循环详解--saying2

    c语言中的for循环语句使用最为灵活,不仅可以用于循环次数已经确定的情况,而且可以用于循环次数不确定而只给出循环结束条件的情况,它完全可以代替while语句.for(表达式 1;表达式 2;表达式 3 ...

  5. jesperreport+ireport简单理解

    ireport:主要是生成报表模板 jesperreport:主要是用.jesper文件填充数据(jdbc.javabean)生成面向用户的文件(PDF.HTML等)

  6. 洛谷 P2701 [USACO5.3]巨大的牛棚Big Barn Label:二维数组前缀和 你够了 这次我用DP

    题目背景 (USACO 5.3.4) 题目描述 农夫约翰想要在他的正方形农场上建造一座正方形大牛棚.他讨厌在他的农场中砍树,想找一个能够让他在空旷无树的地方修建牛棚的地方.我们假定,他的农场划分成 N ...

  7. NOI 题库 7624

    7624  山区建小学 描述 政府在某山区修建了一条道路,恰好穿越总共m个村庄的每个村庄一次,没有回路或交叉,任意两个村庄只能通过这条路来往.已知任意两个相邻的村庄之间的距离为di(为正整数),其中, ...

  8. NOI 题库 7084

    7084  迷宫问题 描述 定义一个二维数组: int maze[5][5] = { 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, ...

  9. sqlserver跨服务器数据库sql语句

    1.启用Ad Hoc Distributed Queries:exec sp_configure 'show advanced options',1reconfigureexec sp_configu ...

  10. Memcache及telnent命令详解

    1.启动Memcache 常用参数 memcached 1.4.3 -p <num>      设置端口号(默认不设置为: 11211) -U <num>      UDP监听 ...