css - 定位

CSS 定位机制

CSS 有三种基本的定位机制:普通流、浮动和绝对定位
除非专门指定,否则所有框都在普通流中定位。也就是说,普通流中的元素的位置由元素在 (X)HTML 中的位置决定。
块级框从上到下一个接一个地排列,框之间的垂直距离是由框的垂直外边距计算出来。
行内框在一行中水平布置。可以使用水平内边距、边框和外边距调整它们的间距。但是,垂直内边距、边框和外边距不影响行内框的高度。由一行形成的水平框称为行框(Line Box),行框的高度总是足以容纳它包含的所有行内框。不过,设置行高可以增加这个框的高度。

4 种不同类型的定位

static
元素框正常生成。块级元素生成一个矩形框,作为文档流的一部分,行内元素则会创建一个或多个行框,置于其父元素中。
relative
元素框偏移某个距离。元素仍保持其未定位前的形状,它原本所占的空间仍保留。
absolute
元素框从文档流完全删除,并相对于其包含块定位。包含块可能是文档中的另一个元素或者是初始包含块。元素原先在正常文档流中所占的空间会关闭,就好像元素原来不存在一样。元素定位后生成一个块级框,而不论原来它在正常流中生成何种类型的框。
fixed
元素框的表现类似于将 position 设置为 absolute,不过其包含块是视窗本身。

相对定位
是相对以前的自己的位置。
position:relative; 相对定位特征:
1)不影响元素本身的特性
2)不使元素脱离文档流(元素移动之后,原来的位置还是保留)
3)如果没有设置偏移量,对元素本身没有任何影响
4)提升层级

定位元素位置控制
top/right/bottom/left 定位元素偏移量。

绝对定位
绝对定位的元素的位置相对于最近的已定位祖先元素,如果元素没有已定位的祖先元素,那么它的位置相对于最初的包含块。
注释:根据用户代理的不同,最初的包含块可能是画布或 HTML 元素。
position:absolute; 绝对定位特征:
1)使元素完全脱离文档流(绝对定位使元素的位置与文档流无关,因此不占据空间。这一点与相对定位不同,相对定位实际上被看作普通流定位模型的一部分,因为元素的位置相对于它在普通流中的位置。)
2)使内嵌支持宽高
3)块属性标签内容撑开宽度
4)如果有定位父级相对于定位父级发生偏移,没有定位父级相对于document发生偏移。
5)相对定位一般都是配合绝对定位元素使用
6)提升层级

z-index:[number] 定位层级
1)定位元素默认后者层级高于前者
2)建议在兄弟标签之间比较层级

固定定位(fixed定位)
是相对于screen,比如:右下角的小火箭,返回到顶部;或者客服。
position:fixed 固定定位。
与绝对定位的特征基本一致,差别是始终相对整个文档进行定位;
问题:IE6不支持固定定位。

经验:
在定位中,

.div4 {
    background-color: black;
    position: fixed;
    right: 20px;
    bottom: 50px;
}

left,right,top,bottom : Xpx, 是贴近那边,再插入X像素在那一边。

默认static定位,从父元素集成定位属性的值(不兼容)

position:static;  默认
position:inherit;  从父级元素集成定位属性的值(不兼容)

那么一共有5种定位(position:relative|absolute|fixed|static|inherit)

案例:
我们给父级加了透明度,那么它的子集也会继承这个透明度。

不透明度:
标准浏览器 不透明度 opacity: 0~1
IE浏览器 滤镜 filter:alpha(opacity=0~100)

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,815评论 1 92
  • CSS 定位 CSS有三种基本的定位机制:普通流,浮动,绝对定位(absolute, fixed):普通流是默认定...
    _空空阅读 5,825评论 0 15
  • 译者:cherryvenus链接:http://www.zcfy.cc/article/1390原文:https:...
    IT程序狮阅读 3,294评论 0 18
  • 定位 定位概况 CSS 有三种基本的定位机制:普通流、浮动和绝对定位。除非专门指定,否则所有框都在普通流中定位。 ...
    xiaolizhenzhen阅读 386评论 0 0
  • 在CSS中关于定位的内容是:position:relative | absolute | static | fix...
    feelinghappy618阅读 658评论 0 0