CSS深入理解之overflow
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起作用
- 非
display:inline水平; - 对应方位的尺寸限制,宽高/最大宽高/absolute拉伸等
- 对于单元格
td元素,需要table为table-layout:fixed才可以
overflow:visible妙用
IE7浏览器下,文字越多,按钮两侧的padding留白越多,只要给按钮添加一个overflow:visible 属性,即可正常表现
滚动条
出现条件
- overflow:auto/scroll
- 一些默认的元素,比如说html/textarea
说明: 无论说明浏览器,默认滚动条来自<html>而不是body
页面的滚动高度
谷歌浏览器document.body.scrollTop;
其他浏览器:document.documentElement.scrollTop;
两者不会同时存在,建议使用
var st=document.documentElement.scrollTop || document.body.scrollTop
滚动条的宽度机制
滚动条是会占用容器的可用宽度或高度;这个特性可能会对我们的页面布局有一些不好的影响,这就需要我们进行特出是处理
overflow 和
BFC
具体应用有一下几种
- 清楚浮动影响
在之前的浮动文章中提到过,.浮动会导致父容器高度塌陷,那么这个时候我们可以设置子元素的overflow:hidden来清除浮动具体的代码这里不说了. - 避免margin重叠
我们知道,两个紧邻的元素,设置margin时,两个元素的margin会重叠在一起,那么这个时候我们可以设置元素的overflow值,就可解决这个问题,当然还有其他的方式,比如使用边框/padding或者元素自身BFC化 - 两栏自适应布局
具体可参看之前的浮动
http://www.cnblogs.com/heyuqing/p/6148488.html
overflow与绝对定位
overflow:hidden/auto失效
当给一个应用了overflow:hidden/auto属性的元素定位为absolute时,其特性失效.
原因: 绝对定位元素不总是被父级overflow属性剪裁,尤其当overflow在绝对定位元素及其包含块之间时;
[包含块]:含有position:relative/absolute/fixed声明的父级元素,没有则为body元素.
如何避免失效
- overflow元素自身为包含块;
给overflow元素添加relatIve等属性 - overflow子元素为包含块;
在被剪裁元素与overflow元素之间插入一个relative等的元素 - 任意合法的transform声明当做包含块.
依赖overflow的样式表现
CSS3的resize属性
resize属性可以拉伸元素其属性值为:
both:水平垂直拉伸
horizontal:水平方向拉伸;
vertical:垂直方向拉伸
但是,要想此属性起作用,元素的overflow属性不能为visible.
ellipsis文字溢出...省略
使用text-overflow:ellipsis属性,在文字溢出时,会用省略号来表示多余的文字,前提是元素同时应用overflow:hidden属性
CSS深入理解之overflow的更多相关文章
- CSS深入理解之overflow(HTML/CSS)
简介 overflow看上去其貌不扬,其中蕴含的知识点还是很多的,有很多鲜为人知的特性表现. overflow基本属性值 1.visible(默认) 2.hidden 3.scroll 4.auto ...
- CSS深入理解学习笔记之absolute
1.absolute和float 拥有相同的特性表现: ①包裹性(容器应用之后,可以包裹里面的内容): <!doctype html> <html> <head> ...
- CSS深入理解之absolute(HTML/CSS)
absolute和float是同父异母的兄弟,因为它们具有相同点:包裹性与破坏性 absolute的特点 1.独立的,并且可以摆脱overflow的限制,无论是滚动还是隐藏: 2.无依赖,不受rela ...
- CSS深入理解之line-height
以下文字整理自慕课网——张鑫旭的<CSS深入理解之line-height>. line-height,又称行高,指的是两行文字基线之间的距离,又可以称为这行文字所占的高度. 定义三问: 什 ...
- css pre如果同时运用了css的border-radius、 overflow两个属性且标签中内容太多时,外部div滚动条在firefox下滚动时很卡
pre如果同时运用了css的border-radius. overflow两个属性且标签中内容太多时,外部div滚动条在firefox下滚动时很卡. 解决方法:去掉css中border-radius. ...
- CSS深入理解学习笔记之overflow
1.Overflow基本属性 overflow:visible(默认)/hidden/scroll/auto/inherit; visible:超出部分可见. hidden:超出部分隐藏. scrol ...
- css深入理解overflow
1.基本属性 visible(默认值) 超出部分仍然正常显示 hidden 超出后隐藏 scroll 滚动条一致显示 auto 自适应 显示或隐藏滚动条 inherit overflow = ov ...
- 【转】CSS深入理解流体特性和BFC特性下多栏自适应布局
这篇文章发布于 2015年02月12日,星期四,23:36,归类于 css相关. 阅读 30873 次, 今日 63 次 by zhangxinxu from http://www.zhangxinx ...
- 转 - CSS深入理解vertical-align和line-height的基友关系
一.想死你们了 几个星期没有写文章了,好忙好痒:个把月没有写长篇了,好忙好想:半个季度没在文章中唠嗑了,好痒好想. 后面一栋楼有对夫妻在吵架,声音雄浑有力,交锋酣畅淋漓,还以为只有小乡镇才有这架势,哦 ...
随机推荐
- Java基础知识点1:基本类型包装类
基本类型的包装类 简介 通常来说我们在程序中经常会使用元类型,比如 int data = 1; float data = 2.1F; 但是在有些场景中不能直接使用元类型,比如如果我们想要建立一个int ...
- Html_color code表示
http://www.computerhope.com/htmcolor.htm#color-codes,如
- 集中式vs分布式区别
记录一下我了解到的版本控制系统,集中式与分布式,它们之间的区别做下个人总结. 什么是集中式? 集中式开发:是将项目集中存放在中央服务器中,在工作的时候,大家只在自己电脑上操作,从同一个地方下载最新版本 ...
- 【BZOJ】3930: [CQOI2015]选数
题意 从区间\([L, R]\)选\(N\)个数(可以重复),问这\(N\)个数的最大公约数是\(K\)的方案数.(\(1 \le N, K \le 10^9, 1 \le L \le R \le 1 ...
- js性能优化-事件委托
js性能优化-事件委托 考虑一个列表,在li的数量非常少的时候,为每一个li添加事件侦听当然不会存在太多性能方面的问题,但是当列表非常的长,长到上百上千甚至上万的时候(当然只是一个解释,实际工作中很少 ...
- 制作IOS企业版App网页扫描二维码下载安装
有时候我们需要在XX网站的主页上去扫描二维码下载,那么ios开发中如何做到这一点呢. 我给大家解答一下,这也是在最近工作中用到的部分,在网上了解了一些. 下面给大家分解一下步骤: 1.Plist 和 ...
- redis、memcached、mongoDB 对比与安装
一.redis.memcached.mongoDB 对比 Memcached 和 Redis都是内存型数据库,数据保存在内存中,通过tcp直接存取,速度快,并发高.Mongodb是文档型的非关系型数据 ...
- [IOS]swift自定义uicollectionviewcell
刚刚接触swift以及ios,不是很理解有的逻辑,导致某些问题.这里分享一下swift自定义uicollectionviewcell 首先我的viewcontroller不是直接继承uicollect ...
- NeoKylin5.6下安装部署达梦(DM7)数据库
1.准备操作系统 1.1 系统登录界面 1.2 操作系统版本信息 [root@jdbh ~]# uname -ra Linux jdbh -.el5xen # SMP Fri Jul :: EDT x ...
- bzoj3083 遥远的国度 && bzoj3626 LCA (树链剖分)
今早刷了两道树剖的题目,用时两小时十五分钟= = 树剖的题目代码量普遍120+ 其实打熟练之后是很容易调的,不熟练的话代码量大可能会因为某些小细节调很久 3083:裸树剖+"换根" ...