CSS -- 定位篇

CSS -- 定位

CSS中最重要的应该就是布局和定位, 也就是display和position两个属性。
布局篇在这里

讲布局之前, 先说一下CSS的框模型Box Model, 它规定了元素框处理 元素内容,内边距,边框和外边距的方式

框模型

Box Model

外边距合并

外边距合并意思就是当两个垂直的外边距相遇时,会合并成一个外边距,合并之后外边距的高度是两个外边距中较大的一个。

外边距合并1

当一个元素包含在另一个元素中时(假设没有内边距或边框把外边距分隔开),它们的上和/或下外边距也会发生合并。

外边距合并2

文档流

元素按照HTML中的位置顺序元素,块元素(block)独占一行,内联元素(inline),不独占一行

定位

CSS的定位主要是靠position这个属性,它有以下五种选择

  • static
  • relative
  • fixed
  • absolute
  • sticky

static - 静态定位

元素默认的position属性,浏览器会根据源码的顺序,决定每个元素的位置,就是正常的文档流。 每个区块占据自己的位置, 不会发生重叠(同级区块)。并且此时left,right,top,bottom的属性是无效的,元素的位置由浏览器自主决定。

static.jpg

relative - 相对定位

相对定位是在静态定位的基础上进行偏移。偏移是根据left,right,top,bottom四个属性决定方向和距离。


relative.jpg

此时, 元素依然处于文档流中,而且,相对定位是不会影响文档流的。
举个例子,

<style  type="text/css">
    .parent {
        border: 2px solid red;
    }

    .parent div {
        height: 100px;
        width: 100px;
        background-color: red;
        margin-bottom: 10px;
        text-align: center;
    }
    
    .div2 {
        position: relative;
        background-color: orange !important;
        top: 200px;
        left: 20px;
    }
</style>
<div class="parent">
    <div class="div1">test1</div>
    <div class="div2">test2</div>
    <div class="div3">test3</div>
</div>
relative-demo.png

div2 的位置虽然有偏移,但是父元素并没有受其影响,就是说它在文档流中的位置还是和静态布局的位置一样,只是显示的时候有偏移。

absolute-绝对定位

绝对定位是根据第一个定位不为static的父元素进行偏移。如果没有不为static的父元素, 则根据整个网页的根元素HTML进行偏移,偏移的方向和距离根据left,right,top,bottom四个属性决定。绝对定位不会影响页面中的其他元素

就如刚才的例子,如果把div2的定位设为绝对定位,则文档流中只有div1和div3。


absolute-demo.png

fixed-固定定位

固定定位是类似于绝对定位, 但是是相对于浏览器窗口定位, 而且不会受到滚动条的影响。
Example

sticky-粘性定位

粘性定位可以说是相对定位和固定定位的组合,就是可以自动切换相对定位/固定定位。它主要用在对scroll事件的监听上;简单来说,在滑动过程中,某个元素距离其父元素的距离达到粘性定位的要求时(比如top:10px),这时其效果相当于fixed定位,固定到适当位置。

使用条件:

  • 必须搭配top、bottom、left、right其一使用, 否则相当于相对定位
  • 父元素的overflow不能为hidden或者overflow
  • 父元素的高度不能低于sticky元素的高度
  • sticky元素仅在其父元素内生效
<!DOCTYPE html>
<html>

<head>
    <title>position</title>
    <style type="text/css">
        .stacking-slide {
            height: 100vh;
            width: 100%;
            position: sticky;
            top: 0;
        }

        .stacking-slide:nth-child(1) {
            background-color: #ffc2c2;
        }

        .stacking-slide:nth-child(2) {
            background-color: #ffe0c2;
        }

        .stacking-slide:nth-child(3) {
            background-color: #ffffc2;
        }

        .stacking-slide:nth-child(4) {
            background-color: #e0ffc2;
        }

        .stacking-slide:nth-child(5) {
            background-color: #c2ffc2;
        }
    </style>
</head>

<body>

    <div class="stacking-slide">
        <h2>Section 1</h2>
    </div>
    <div class="stacking-slide">
        <h2>Section 2</h2>
    </div>
    <div class="stacking-slide">
        <h2>Section 3</h2>
    </div>
    <div class="stacking-slide">
        <h2>Section 4</h2>
    </div>
    <div class="stacking-slide">
        <h2>Section 5</h2>
    </div>

</body>

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