HTML定位

定位

  • position属性可以控制Web浏览器如何以 及在何处显示特定的元素。
  • 可以使用position属性把一个元素放置到网 页中的任何位置。
  • 可选值:
  • static(默认)
  • relative(相对)
  • absolute(绝对)
  • fixed(固定)

相对定位relative

  • 每个元素在页面的文档流中都有一个自然位置。相 对于这个位置对元素进行移动就称为相对定位。周 围的元素完全不受此影响。
  • 当将position属性设置为relative时,则开启了元素 的相对定位。
  • 当开启了相对定位以后,可以使用top、right、 bottom、left四个属性对元素进行定位

特点

  • 如果不设置元素的偏移量,元素位置不会发生改变。
  • 相对定位不会使元素脱离文本流。元素在文本流中 的位置不会改变。
  • 相对定位不会改变元素原来的特性。
  • 相对定位会使元素的层级提升,使元素可以覆盖文 本流中的元素。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>相对定位</title>
    <style type="text/css">
        .box1{
            height: 200px;
            background-color: red;
            position: relative;
        }
        .box2{
            width: 200px;
            height: 200px;
            background-color: yellow;
            /*
            定位:
                - 定位指的就是将指定的元素摆放到页面的任意位置
                    通过定位可以任意的摆放元素
                - 通过position属性来设置元素的定位
                -可选值:
                    static:默认值,元素没有开启定位
                    relative:开启元素的相对定位
                    absolute:开启元素的绝对定位
                    fixed:开启元素的固定定位(也是绝对定位的一种)
            */
            /*
            当元素的position属性设置为relative时,则开启了元素的相对定位
                1.当开启了元素的相对定位以后,而不设置偏移量时,元素不会发生任何变化
                2.相对定位是相对于元素在文档流中原来的位置进行定位
                3.相对定位的元素不会脱离文档流
                4.相对定位会使元素提升一个层级
                5.相对定位不会改变元素的性质,块还是块,内联还是内联
            */
            position: relative;
            /*
            当开启了元素的定位(position属性值是一个非static的值)时,可以通过left right top bottom四个属性来设置元素的偏移量
                left:元素相对于其定位位置的左侧偏移量
                right:元素相对于其定位位置的右侧偏移量
                top:元素相对于其定位位置的上边的偏移量
                bottom:元素相对于其定位位置下边的偏移量
            通常偏移量只需要使用两个就可以对一个元素进行定位,
            一般选择水平方向的一个偏移量和垂直方向的偏移量来为一个元素进行定位
            */
            left: 100px;
            top: 200px;
        }
        .box3{
            width: 200px;
            height: 200px;
            background-color: yellowgreen;
        }

        .s1{
            position: relative;
            width: 200px;
            height: 200px;
            background-color: yellow;
        }
    </style>
</head>
<body>
    <div class="box1"></div>
    <div class="box2"></div>
    <div class="box3"></div>

    <span class="s1">我是一个span</span>
</body>
</html>

绝对定位absolute

  • 绝对定位指使元素相对于html元素或离他最近 的祖先定位元素进行定位。
  • 当将position属性设置为absolute时,则开启 了元素的绝对定位。
  • 当开启了绝对定位以后,可以使用top、right、 bottom、left四个属性对元素进行定位。

绝对定位的特点

  • 绝对定位会使元素完全脱离文本流。
  • 绝对定位的块元素的宽度会被其内容撑开。
  • 绝对定位会使行内元素变成块元素。
  • 一般使用绝对定位时会同时为其父元素指定一 个相对定位,以确保元素可以相对于父元素进 行定位。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>绝对定位</title>
    <style type="text/css">
        .box1{
            width: 200px;
            height: 200px;
            background-color: red;
        }
        .box2{
            width: 200px;
            height: 200px;
            background-color: yellow;
            /*
            当position属性值设置为absolute时,则开启了元素的绝对定位

            绝对定位:
                1.开启绝对定位,会使元素脱离文档流
                2.开启绝对定位以后,如果不设置偏移量,则元素的位置不会发生变化
                3.绝对定位是相对于离他最近的、开启了定位的祖先元素进行定位的(一般情况,开启了子元素的绝对定位,都会同时开启父元素的相对定位)
                    如果所有的祖先元素都没有开启定位,则会相对于浏览器窗口进行定位
                4.绝对定位会使元素提升一个层级
                5.绝对定位会改变元素的性质:
                    内联元素变成块元素,
                    块元素的宽度和高度默认都被内容撑开
            */
            position: absolute;
            /*left: 100px;
            top: 100px;*/
        }
        .box3{
            width: 300px;
            height: 300px;
            background-color: yellowgreen;
        }
        .box4{
            width: 300px;
            height: 300px;
            background-color: orange;
            /*开启box4的相对定位*/
            /*position: relative;*/
        }
        .s1{
            width: 100px;
            height: 100px;
            background-color: yellow;
            /*开启绝对定位*/
            position: absolute;
        }
    </style>
</head>
<body>
    <div class="box1"></div>
    <div class="box5">
        <div class="box4">
            <div class="box2"></div>
        </div>
    </div>
    <div class="box3"></div>

    <span class="s1">我是一个span</span>
</body>
</html>

固定定位fixed

  • 固定定位的元素会被锁定在屏幕的某个位置上,当 访问者滚动网页时,固定元素会在屏幕上保持不动。
  • 当将position属性设置为fixed时,则开启了元素的 固定定位。
  • 当开启了固定定位以后,可以使用top、right、
    bottom、left四个属性对元素进行定位。
  • 固定定位的其他特性和绝对定位类似。
  • 对当前窗口进行定位(四个角)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>固定定位</title>
    <style type="text/css">
        .box1{
            width: 200px;
            height: 200px;
            background-color: red;
        }
        .box2{
            width: 200px;
            height: 200px;
            background-color: yellow;
            /*
            当元素的position属性设置fixed时,则开启了元素的固定定位
            固定定位也是一种绝对定位,它的大部分特点都和绝对定位一样
            不同的是:
                固定定位永远都会相对于浏览器窗口进行定位
                固定定位会固定在浏览器窗口某个位置,不会随滚动条滚动

            IE6不支持固定定位
            */
            position: fixed;
            left: 0px;
            top: 0px;
        }
        .box3{
            width: 200px;
            height: 200px;
            background-color: yellowgreen;
        }
    </style>
</head>
<body style="height: 5000px;">
    <div class="box1"></div>

    <div class="box4" style="width: 300px; height: 300px; background-color: orange; position: relative;">
        <div class="box2"></div>
    </div>

    <div class="box3"></div>
</body>
</html>

z-index层级

  • 当元素开启定位以后就可以设置z-index这 个属性。
  • 这个属性可以提升定位元素所在的层级。
  • z-index可以指定一个整数作为参数,值越 大元素显示的优先级越高,也就是z-index 值较大的元素会显示在网页的最上层。
  • 父元素的层级再高,也不会盖住子元素

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>元素的层级</title>
    <style type="text/css">
        .box1{
            width: 200px;
            height: 200px;
            background-color: red;
            position: relative;
            z-index: 2;
            opacity: 0.5;
            filter: alpha(opacity=50);
        }
        .box2{
            width: 200px;
            height: 200px;
            background-color: yellow;
            /*开启绝对定位*/
            position: absolute;
            /*设置偏移量*/
            top: 100px;
            left: 100px;
            /*
            如果定位元素的层级是一样,则下边的元素会盖住上边的
            通过z-index属性可以用来设置元素的层级
            可以为z-index指定一个正整数作为值,该值将会作为当前元素的层级,层级越高,越优先显示
            
            对于没有开启定位的元素不能使用z-index
            */
            z-index: 25;
            opacity: 0.5;
            filter: alpha(opacity=50);
        }
        .box3{
            width: 200px;
            height: 200px;
            background-color: yellowgreen;
            /*position: relative;
            z-index: 3;*/
            position: absolute;
            top: 200px;
            left: 200px;
            z-index: 30;
            /*
            设置元素的透明背景
            opacity可以用来设置元素背景的透明,它需要一个0-1之间的值
                0 表示完全透明
                1 表示完全不透明
                0.5 表示半透明
            */
            opacity: 0.5;

            /*
            opacity属性在IE8及以下的浏览器中不支持
            IE8及以下的浏览器需要使用如下属性代替
                alpha(opacity=透明度)
            透明度,需要一个0-100之间的值
                0 表示完全透明
                100 表示完全不透明
                50 半透明
            这种方式支持IE6,但是这种效果在IE Tester中无法测试
            */
            filter: alpha(opacity=50);
        }
        .box4{
            width: 200px;
            height: 200px;
            background-color: orange;
            /*开启相对定位*/
            position: relative;
            /*父元素的层级再高,也不会盖住子元素*/
            z-index: 20;

            top: 500px;
        }
        .box5{
            width: 100px;
            height: 100px;
            background-color: skyblue;
            /*开启绝对定位*/
            position: absolute;
            z-index: 10;
        }
    </style>
</head>
<body>
    <div class="box1"></div>

    <div class="box2"></div>

    <div class="box3"></div>

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

推荐阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,747评论 1 92
  • 定位 position属性可以控制web浏览器如何以及在何处显示特定的元素。可以使用position属性把一个元素...
    鬼会画符阅读 294评论 0 0
  • 定位的四种方式 1、默认定位:static 其没有top/bottom/left/right属性 2、固定定位:f...
    石子1110阅读 440评论 0 1
  • position:relative(相对定位) position:relative; 相对定位 position...
    小小彭007阅读 265评论 0 0
  • 从昌吉市区,驱车三个半小时的路程,我和指挥部同志一行来到准东开发区五彩湾派出所,看望来自泉州石狮的民警小李子。 小...
    孝爱义恩阅读 326评论 0 0