第一回 overflow基本属性

overflow基本属性

visibel

hidden

scroll

auto

inherit

overflow-x和overflow-y

overflow-x和overflow-y设置一样的值,等同于overflow。如果不同,其中一个赋予visibel,auto,另一个赋值visibel,auto ,hidden。则会被重置为auto。

作用的前提

1.非display:inline水平!

2.对应方位的尺寸限制,width/height/max-width/max-height/absolute拉伸

overflow:visibel妙用

IE7浏览器下,文字越多,按钮两侧padding留白就越大。给所有按钮添加css样式 overflow:visible

第二回:overflow与滚动条

滚动条出现的条件

1.overflow:auto/overflow:scroll 有些元素自带滚动条 <html> <textarea>

body/html与滚动条

无论什么浏览器,默认滚动条均来自html!而不是body标签

ie8+ html{overflow:auto}

所以,如果我们想要去除页面默认滚动条,只需要:html{overflow:hidden}

body/html与滚动条-js与滚动高度

兼容写法

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

overflow的padding-bottom缺失现象

.box{width:400px;height:100px;padding:100px 0; overfow:auto;}在chrome浏览器下bottom是可以滚动出来的。

滚动条的宽度

盒子宽度(带滚动条)-盒子内宽度 = 滚动条宽度

IE firefox chrome均是17像素。

水平居中跳动问题

修复方法 1.html{overflow-y:scroll;}

2. .container{padding-left:calc(100vw-100%);}

100vw - 浏览器宽度;100%-可用内容宽度

自定义滚动条-webkit

整体部分

::-webkit-scrollbar

两端按钮

::-webkit-scrollbar-button

外层轨道

::-webkit-scrollbar-track

内层轨道

::-webkit-scrollbar-track-piece

滚动滑块

::-webkit-scrollbar-thumb

边角

::-webkit-scrollbar-corner

实际常用

::-webkit-scrollbar{//宽度

width:8px; height:8px;

}

::-webkit-scrollbar-thumb{//拖动条

background-color:rgba(0,0,0,.3);

border-radius : 6px;

}

::-webkit-scrollbar-track{//背景槽

background-color:#ddd;

border-radius:6px;

}

自定义滚动条-IE

可以使用自定义滚动插件

IOS原生滚动回调效果

-webkit-overflow-scrolling:touch;

第三回:overflow与BFC

清除浮动,自适应布局等。

BFC block formatting context 块级格式化上下文

页面之结界,内部元素在怎么折腾都影响不到外面。

overflow与BFC

1.清除浮动影响

2.避免margin穿透问题

3.两栏自适应布局

内部浮动无影响

.clearfix{*zoom:1;}

.clearfix:after{centent:'';display:table;clear:both;}

避免margin穿透问题

设置overflow:scroll

overflow:auto

overflow:hidden

为什么有这样特性?

流体特性下自适应布局

1.左浮动,右普通

.left{float:left;width:128px;}

.right{min-height:190px;background-color:#beceeb}

2.左浮动,右margin

.left{float:left;width:128px;}

.right{min-height:190px;margin-left:150px;background-color:#beceeb}

3.左浮动,右padding

.left{float:left;width:128px;}

.right{min-height:190px;padding-left:150px;background-color:#beceeb}

4.左浮动

.left{float:left;width:128px;}

.right{min-height:190px;overflow:hidden;background-color:#beceeb}

给div设置了overflow属性就是将元素BFC化,使用padding做流体自适应布局时候,万万不可让自适应层BFC化。

是不是所有BFC属性都有如此表现

yes.由于自身特性,具体表现不一

overflow:hidden;      自适应,单溢出不可见 限制应用场景

float + float 包裹性+破坏性 无法自适应,块状浮动布局

position:absolute 脱离文档流,自娱自乐

display:inline-block 包裹性,无法自适应

display:table-cell 包裹性,但天生无溢出特性,绝对宽度也能自适应。

只有overflow:hidden,display:inline-block,display:table-cell能使元素BFC化

两栏自适应布局

.cell{

display:table-cell; width:2000px; //2000保证比父元素大

*display:inline-block;*width:auto; //IE7-伪BFC特性

}

第四回:overflow与绝对定位

隐藏失效与滚动固定

overflow:hidden失效

.overflow-hidden{

width:300px;

height:200px;

border:5px solid #333;

overflow:auto

}

img{postion:absolute;}

失效原因

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

包含块指 “含position:relative/absolute/fixed”声明的父级元素,没有则body元素

如何避免失效

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

2.overflow元素的子元素成为包含块

3.任意合法transform声明当作包含块

overflow失效妙用

h0{height:0;}

.ovh{overflow:hidden;}

.tr{text-align:right;}

.abs{position:absolute;}

<div class="h0 ovh tr">

&nbsp;<img src="" class="abs ml10 mt30"></img>

</div>

第五回:依赖overflow的样式表现

resize拉伸

css3有个属性名为resize,可以拉伸元素尺寸。

.resize:both     水平垂直两边拉;

.resize:horizontal 只有水平方向拉伸

.resize:vertical   只有垂直方向拉伸

但是,此声明想要其作用,元素的overflow属性值不能是visible!

<button style="resize:both;overflow:hidden">按钮</button>

这样一个按钮就可以实现拉伸效果了。

文本域自带resize属性,因为文本域默认overflow:auto

文本域resize拖拽渔区大小是17*17像素。 也就是滚动条的尺寸

ellipsis文字溢出点点点省略

text-overflow:ellipsis

<button style="width:200px;white-space:norwrap;text-overflow:ellipsis;overflow:hidden">这是一个按钮,宽度仅200像素</button>

第六回:overflow与锚点技术

锚点定位的本质:该变容器的滚动高度

锚点对位的触发

1.url地址中的锚链与锚点元素;

2.可focus的锚点元素处于focus态;

锚点定位的作用

1.快速定位

2.锚点定位与overflow选项卡技术

应用场景:单页应用

转载于:https://www.cnblogs.com/zhongke/p/6597248.html

css深入理解之overflow相关推荐

  1. 学习笔记之CSS深入理解(慕课网 张鑫旭主讲)

    一.CSS深入理解之border 1. border-width不支持百分比 受语义和使用场景决定的,不会因为设备大而边框变大的 2. border-style属性 border-style:dott ...

  2. CSS: 深入理解BFC和Margin Collapse (margin叠加或者合并外边距)

    BFC的理解与应用 首先我们来看看w3c规范对BFC的解释,其实对于这种概念的学习上,我们总是建议首先寻找官方的定义,因为原则上来说官方的才是最权威和正确的,而且还比较详细,千万不要因为看到英文就畏惧 ...

  3. html css 深入理解float

    html css 深入理解float 首先,我们来看一段权威的关于float的解释: "浮动会让元素脱离文档流,不再影响不浮动的元素.实际上,并不完全如此.如果浮动的元素后面有一个文档流中的 ...

  4. 深入理解:overflow:hidden——溢出,坍塌,清除浮动

    深入理解:overflow:hidden--溢出,坍塌,清除浮动 overflow:hidden是overflow属性的一个神奇用法,它可以帮助我们隐藏溢出的元素,清除浮动和解除坍塌.当某一个属性拥有 ...

  5. [css] 你所理解的css高级技巧有哪些?

    [css] 你所理解的css高级技巧有哪些? 各种动画效果,能用css的都可以不去用js写的,对我来说就很高级 个人简介 我是歌谣,欢迎和大家一起交流前后端知识.放弃很容易, 但坚持一定很酷.欢迎大家 ...

  6. CSS:理解:Before和:After伪元素

    CSS样式表的主要作用是修饰Web页面上的HTML标记,但有时候,为了实现某个效果而往页面里反复添加某个HTML标记很繁琐,或者是显得多余,或者是由于某种原因而做不到.这就是CSS伪元素(Pseudo ...

  7. CSS深入理解之line-height

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

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

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

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

    一.块状元素的流体特性与自适应布局 块状元素像放在容器中的水流一样,内容区域会随着margin, padding, border的出现自动填满剩余空间,这就是块状元素的流体特性. 来一个小实验: di ...

最新文章

  1. 生成公钥链接github
  2. 广义互相关的公式,这一文都搜集全了
  3. c语言的简单题目,C语言的一些简单题目,没有答案,哪位大神帮忙做一下!!!...
  4. input自适应_【正点原子FPGA连载】第十一章基于OV5640的自适应二值化实验-领航者ZYNQ之HLS 开发指南...
  5. java 命名管道_Java中命名管道的并发读/写(在Windows上)
  6. jquery-easyui中表格的行编辑功能
  7. 微信机器人开发SDK使用教程--删除朋友圈
  8. Python 爬虫工具 —— fake_useragent
  9. oracle 调整缓存大小,设置数据缓冲大小_oracle
  10. 超英文邮件50%!Flink 中文邮件列表必须有姓名
  11. 课程设计(飞机订票系统) 超全
  12. 鸿蒙源码图片,全网最全的鸿蒙源码结构分析(附自制4张架构图)
  13. 关于xampp集成环境的官网下载
  14. 手机如何修改MD5视频?修改MD5视频的办法你清楚吗?
  15. AppScan的安装与使用
  16. 关于智能语音机器人使用中可能出现的问题
  17. 【转帖】大数据时代的文化与版权
  18. EduCoder-程序设计技术R(第四部分循环结构程序设计2)- 第5关:C循环-寻找完数
  19. 朗坤环境递交注册:拟募资11亿 陈建湘家族色彩浓厚
  20. elasticsearch算法之推荐系统的相似度算法(一)

热门文章

  1. 不间断电源ups标准_什么是ups不间断电源,ups电源的重要性。
  2. python运输问题_叶片运输优化问题学习笔记
  3. mpython_mPython下载 mPython(图形化编程软件) v0.5.0 官方安装版 下载-脚本之家
  4. pip国内镜像源速度几十倍于官方及如何设置
  5. linux 7.4 不能转发dns_linux深度攻略学习
  6. php7 passthru,认识PHP 7虚拟机
  7. python提取每个单词首字母_Python 2:str.title()(使字符串每个单词首字母大写)...
  8. ORM MVC、模板引擎介绍(建议收藏)
  9. 【项目管理】你理解的项目管理是什么样的?
  10. 【项目管理】专用中英文术语词汇 205