css深入理解之overflow

第一回 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选项卡技术

应用场景:单页应用

时间: 2024-08-02 14:51:25

css深入理解之overflow的相关文章

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

简介 overflow看上去其貌不扬,其中蕴含的知识点还是很多的,有很多鲜为人知的特性表现. overflow基本属性值 1.visible(默认) 2.hidden 3.scroll 4.auto 5.inherit body/html与滚动条 无论什么浏览器,默认滚动条均来自html标签,而不是body标签.因为新建一个空白html页面,body默认有margin值,如果滚动条来自body,则应该有边距,而不是紧贴着浏览器的边缘. body/html与滚动条(滚动高度) Chrome浏览器:

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

absolute和float是同父异母的兄弟,因为它们具有相同点:包裹性与破坏性 absolute的特点 1.独立的,并且可以摆脱overflow的限制,无论是滚动还是隐藏: 2.无依赖,不受relative限制的,行为表现上是不使用top/right/bottom/left任何一个属性或使用auto作为值: 3.脱离文档流: 4.具有跟随性(依据这个特点,能省很多的relative,并且扩展性更强). 骚操作:使用注释来消除空格 <!doctype html> <html> &l

CSS深入理解之line-height

以下文字整理自慕课网——张鑫旭的<CSS深入理解之line-height>. line-height,又称行高,指的是两行文字基线之间的距离. 定义三问: 什么是基线? 为何是基线? 需要两行? 如图红色线即为基线 基线乃*线定义之根本! 基线的扩展知识,稍作了解.如图: 第3个问题,一行文字难道就没有行高吗?非也,一行文字也是有行高的,两行的定义已经决定了一行的表现! 所以,行高表现为,如下图:(如果试想行高为0,那么两行文字将重合) 问题:为何line-height可以让单行文本垂直居中?

CSS初步理解

最近在学习牛腩的时候遇到了网页的制作,挺新鲜的.当中涉及到了有关CSS的知识,于是乎自己也就花费两个小时的时间,找了本浅显易懂的书来看了一遍,从宏观上来了解CSS的相关内容.有关CSS的基础知识详见下链接. CSS基础知识 以下是对CSS理解的导图 通过上图我们也发现,CSS也很难,也容易.容易是说,学起来很快就可以上手,这中语言简单易懂,只要你具备小学英语的知识量就可以了.困难是在指学好它并不容易,因为它需要你耐心.就好比我们对word文档的排版,哪里需要主体鲜明一点,哪里需要着重突出一下,哪

(测试文章,转载)CSS深入理解vertical-align和line-height的基友关系

一.想死你们了 几个星期没有写文章了,好忙好痒:个把月没有写长篇了,好忙好想:半个季度没在文章中唠嗑了,好痒好想. 后面一栋楼有对夫妻在吵架,声音雄浑有力,交锋酣畅淋漓,还以为只有小乡镇才有这架势,哦,突然想起来,我就是住在上海郊外的小乡镇上. 刚刚买了几十股京东的股票,第一次玩这个,看好京东的发展.其实股价21的时候就打算入手了,但是,转外汇的时候,提示,要工作时间.然后一忙二忘,等现在入的时候,已经涨了20%多了,科科,肥皂弄人啊!写到这里的时候,忍不住拿出手机一看,哎呦,不错哦,盈利28刀

css深入理解padding

padding 中规中矩,性格温婉平和! 第一节:CSS padding与容器的尺寸--了解padding与元素尺寸之间关系 CSS padding与容器的尺寸关系复杂 对于block水平元素 没有padding的时候 .gay{width:50cm;} padding影响元素尺寸      (理解为人身体的脂肪,人和人之间的距离).gay{width:20cm;padding:0 12px;} 但是width:auto或box-sizing为border-box的时候 .gay{width:8

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

这篇文章发布于 2015年02月12日,星期四,23:36,归类于 css相关. 阅读 30873 次, 今日 63 次 by zhangxinxu from http://www.zhangxinxu.com本文地址:http://www.zhangxinxu.com/wordpress/?p=4588 一.开篇之言 要说web上实现两栏自适应布局的方法,一双手都数不过来.不知大家有没有细想过,为什么这些方法可以实现自适应布局呢? 本文就将深入探讨下流体特性和BFC特性下的两栏自适应布局,还是

[ css 深入理解 vertical-align line-height 属性 ] css中深入理解vertical-align和line-height的基友关系及实例演示的区别

一.想死你们了 几个星期没有写文章了,好忙好痒:个把月没有写长篇了,好忙好想:半个季度没在文章中唠嗑了,好痒好想. 后面一栋楼有对夫妻在吵架,声音雄浑有力,交锋酣畅淋漓,还以为只有小乡镇才有这架势,哦,突然想起来,我就是住在上海郊外的小乡镇上. 刚刚买了几十股京东的股票,第一次玩这个,看好京东的发展.其实股价21的时候就打算入手了,但是,转外汇的时候,提示,要工作时间.然后一忙二忘,等现在入的时候,已经涨了20%多了,科科,肥皂弄人啊!写到这里的时候,忍不住拿出手机一看,哎呦,不错哦,盈利28刀

css学习-理解负外边距

在css盒模型定义中,外边距指的是元素距离相邻元素的距离,也就是元素的边界.布局中,正的外边距能拉开元素之间的距离,这个很好理解,但是设置负的外边距会产生意想不到的渲染结果,一些理解笔记整理如下: 总的来说,从文档流位置的角度看,设置了负外边距的元素相当于边界往里缩,结果其相邻其他元素会沿着文档流的反方向流动.(这对于正常的文档流和浮动的元素影响是一样的) 设置负外边距可以增加元素的宽度,这个作用能实现的前提是该元素是一个包含在给定宽度的父元素但没有设定width属性的元素,下面是实例代码: <