定位:static\relative\absolute\fixed\sticky\z-index、绝对定位的盒子居中、定位的特殊性

1.1为什么需要定位

1、浮动可以让多个块级盒子一行没有分析排列显示,经常用于横向排列盒子。
2、定位则是可以让盒子自由的在某个盒子内移动位置或者固定屏幕中的某个位置,并且可以压住其他盒子。

1.2定位组成

定位=定位模式+边偏移
定位模式用于指定一个元素在文档中的定位方式。边偏移则决定了该元素的最终位置。

定位模式

它是通过css里面的position属性来设置

参数值 说明
static 静态定位
relative 相对定位
absolute 绝对定位
fixed 固定定位
边偏移
参数值 示例 描述
top top:80px 顶端偏移量,定义元素相对于其父元素上边线的距离。
bottom bottom:80px 底部偏移量,定义元素相对于其父元素下边线的距离。
left left:80px 左侧偏移量,定义元素相对于其父元素左边线的距离。
right right:80px 右端偏移量,定义元素相对于其父元素右边线的距离。

1.3静态定位static

静态定位是元素的默认定位方式,无定位的方式。
选择器{position:static;}

  • 静态定位按照标准流特性摆放位置,它没有边偏移。
  • 静态定位在布局时很少用到。

1.4相对定位relative(重要)

相对定位是元素在移动位置的时候,是相对于它原来的位置来说的(自恋型)。
选择器{position:relative;}
相对定位的特点:

  • 它是相对于自己原来的位置来移动的(移动位置的时候参考点是自己原来的位置)
  • 原来在标准流的位置继续占有,后面的盒子仍然以标准流的方式对待他。(不脱标,继续保留原来位置)
    因此相对定位没有脱标,他最经典的应用是给绝对定位当爹。

1.4绝对定位absolute(重要)

是相对于它的祖先元素说的(拼爹型)
选择器{position:absolute;}
绝对定位的特点:

  • 如果没有祖先(父)元素或者祖先(父)元素没有定位,则以浏览器为准定位(Document文档)
  • 如果祖先元素有定位(相对、绝对、固定定位),则以最近一级的有定位祖先元素为参考点移动位置。
  • 绝对定位不再占有原先的位置。(脱标)

1.6子绝父相的由来(重要)

口诀:子级是绝对定位的话,父级要用相对定位。
1、子级绝对定位,不会占有位置,可以放到父盒子里面的任何一个地方,不会影响其他的兄弟盒子。
2、父盒子需要加定位限制子盒子在父盒子内显示。
3、父盒子在布局时,需要占有位置,因此父亲只能是相对定位。

1.7固定定位fixed(重要)

固定定位是元素固定于浏览器可视区的位置。主要使用场景:可以在浏览器页面滚动时元素的位置不会改变。
选择器{position:fix;}
固定定位的特点:

  • 以浏览器的可视窗口为参照点移动元素(跟父元素没有任何关系)
  • 不随着滚动条的滚动而滚动
  • 固定定位不占有原先的位置
    固定定位也是脱标的,其实固定定位也可以看做是一种特殊的绝对定位。
    固定定位的小技巧:固定在版心的右侧位置。
    小算法:
    1、让固定定位的盒子left:50%,走到浏览器可视区(也可以看做版心)的一半位置。
    2、让固定定位的盒子margin-left版心宽度的一半距离。多走版心宽度的一半位置就可以让固定定位的盒子贴着版心右侧对齐了
  .w{
            width: 800px;
            height: 1400px;
            background-color: pink;
            margin: 0 auto ;
        }
        .fixed{
            position:fixed;
            /* 1、走浏览器宽度的一半 */
            left:50%;
            /* 2、利用margin盒子走版心宽度的一半 */
            margin-left: 400px;
            width: 50px;
            height: 150px;
            background-color: skyblue;
        }
<div class="fixed"></div>
    <div class="w">版心盒子 800像素</div>
image.png

1.8粘性定位sticky

粘性定位可以被认为是相对定位和固定定位的混合。
选择器{position:sticky;top:10px;}
粘性定位的特点:

  • 以浏览器的可视窗口为参照点移动元素(固定定位特点)
  • 粘性定位占有原先的位置(相对定位特点)
  • 必须添加top、left、right、bottom其中一个才有效
    跟页面滚动搭配使用,兼容性较差,ie不支持。
  body{
            height: 3000px;
        }
        .nav{
            /* 粘性定位 */
            position:sticky;
            top:0;
            width: 800px;
            height: 50px;
            background-color: pink;
            margin: 100px auto;
        }
 <div class="nav">我是导航栏</div>

1.9定位叠放次序 z-index

在使用定位布局时,可能会出现盒子重叠的情况。此时,可以使用z-index来控制盒子的前后次序。
选择器{z-index:1;}

  • 数值可以是正整数,负整数或0,默认是auto,数值越大,盒子越靠上
  • 如果属性值相同,则按照书写顺序,后来居上。
  • 数字后面不能加单位
  • 只有定位的盒子才有z-index属性。

2.0绝对定位的盒子居中

加了绝对定位的盒子不能通过margin:0 auto;水平居中,但是可以通过以下计算方法实现水平居中和垂直居中。

.box{
        position:absolute;
        /*1、left走50%父容器宽度的一半*/
        left:50%;
        /*2、margin 负值 往左走 自己盒子宽度的一半*/
        margin-left:-100px;
        top:50%;
        margin-top:-100px;
        width:200px;
        height:200px;
        background-color:pink;
}

2.1 定位特殊特性

绝对定位和固定定位也和浮动类似
1、行内元素添加绝对或固定定位可以直接设置高度和宽度。
2、块级元素添加绝对或者固定定位,如果不给宽度或者高度,默认大小是内容的大小。
3、浮动元素、绝对定位(固定定位)元素都不会触发外边距合并的问题(外边距塌陷)
4、浮动元素指挥压住它下面标准流的盒子,但是不会压住下面标准流盒子里面的文字(图片)
但是绝对定位(固定定位)会压住下面标准流所有的内容。
浮动之所以不会压住文字,因为浮动产生的目的最初就是为了文字环绕效果,文字会围绕浮动元素。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 211,884评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,347评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,435评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,509评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,611评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,837评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,987评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,730评论 0 267
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,194评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,525评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,664评论 1 340
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,334评论 4 330
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,944评论 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,764评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,997评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,389评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,554评论 2 349