Python HTML和CSS 9:定位布局

总体内容
1、文档流的介绍
2、关于定位的属性以及使用
3、案例的展示

一、文档流的介绍:文档流,是指盒子按照html标签编写的顺序依次从上到下,从左到右排列,块元素占一行,行内元素在一行之内从左到右排列,先写的先排列,后写的排在后面,每个盒子都占据自己的位置。

二、关于定位的属性以及使用

  • 2.1、用css的position属性来设置元素的定位类型,postion的设置项如下:

    • <1>、relative 生成 相对定位 元素,元素所占据的文档流的位置保留,元素本身相对自身原位置进行偏移。

      相对定位

      .box1{
           background-color: pink;
           position: relative;
           left: 50px;
           top: 50px;
      }
      

      提示:position 要配合 leftrighttopbottom 来使用

    • <2>、absolute 生成 绝对定位 元素,元素脱离文档流,不占据文档流的位置,可以理解为漂浮在文档流的上方,相对于上一个设置了定位的父级元素来进行定位,如果找不到,则相对于body元素进行定位。

      绝对定位

      // 父级样式
      .con{
           width: 400px;
           height: 400px;
           border: 1px solid #000;
           margin: 50px auto;
           position: relative;
       }
      
      .box1,.box2{
           width: 300px;
           height: 100px;
           margin: 10px;
      }
      
      .box1{
          background-color: pink;
          /* 2、绝对定位 */
          position: absolute;
          left: 50px;
          top: 50px;
       }
      

      提示:在设置为 position: relative; 后,就会相对于上一个设置了定位的父级元素来进行定位,如果找不到,则相对于body元素进行定位。,上图我们对 box1的父级元素进行了定位

    • <3>、fixed 生成 固定定位 元素,元素脱离文档流,不占据文档流的位置,可以理解为漂浮在文档流的上方,相对于浏览器窗口进行定位

      固定定位

      .box1{
           background-color: pink;
           /* 3、固定定位 */
           position: fixed;
           left: 50px;
           top: 50px;
       }
      
    • <4>、static 默认值,没有定位,元素出现在正常的文档流中,相当于取消定位属性或者不设置定位属性。

    • <5>、inherit 从父元素继承 position 属性的值。

  • 2.2、定位元素的偏移:定位的元素还需要用left、right、top或者bottom来设置相对于参照元素的偏移值。

    提示: left 是相对于左边向右偏移,right 是相对于右边向左偏移,top 是相对于上面向下偏移,bottom 是相对于下面向上偏移。

  • 2.3、定位元素层级 :定位元素是浮动的正常的文档流之上的,可以用 z-index 属性来设置元素的层级
    在元素设置定位后,层级的是按照标签的先后顺序来排列的,最后面的标签在显示的时候再最上面,我们可以使用 z-index 属性 来改变层级顺序的问题,默认的层级是小于 10的,如下例子

    定位元素层级

    <!DOCTYPE html>
    <html lang="en">
    <head>
         <meta charset="UTF-8">
         <title>定位的层级</title>
         <style type="text/css">
            .con{
                 width: 400px;
                 height: 400px;
                 border: 1px solid #000;
                 margin: 50px auto;
                 position: relative;
             }
            .con div{
                 width: 90px;
                 height: 90px;
                 position: absolute;
             }
             .box1{
                 background-color: pink;
                 left: 20px;
                 top: 20px;
                 z-index:10;
             }
             .box2{
                 background-color: red;
                 left: 40px;
                 top: 40px;
             }
             .box3{
                 background-color: green;
                 left: 60px;
                 top: 60px;
             }
             .box4{
                 background-color: yellow;
                 left: 80px;
                 top: 80px;
             }
         </style>
    </head>
    <body>
          <div class="con">
              <div class="box1">box1</div>
              <div class="box2">box2</div>
              <div class="box3">box3</div>
              <div class="box4">box4</div>
          </div>
    </body>
    </html>
    

    提示:我们可以个每个盒子的样式设置 z-index 来改变其展示的层级顺序

  • 2.4、定位元素特性:绝对定位和固定定位的块元素和行内元素会自动转化为行内块元素

三、案例的展示

  • 3.1、制作如下图的页面


    案例一
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>定位练习一</title>
        <style type="text/css">
            .con{
                width: 100px;
                height: 100px;
                background-color: gold;
                margin: 50px auto;
                /* 相对定位 */
                position: relative;
                border-radius: 10px;
            }
    
            .box1{
                width: 28px;
                height: 28px;
                background-color: red;
                color: white;
                text-align: center;
                line-height: 28px;
                font-size: 16px;
                /* 绝对定位 */
                position: absolute;
                left: 86px;
                bottom: 86px;
                /* 圆角的设置 */
                border-radius: 14px;
            }
        </style>
    </head>
    <body>
        <div class="con">
            <div class="box1">10</div>
        </div>
    </body>
    </html>
    
  • 3.2、固定在顶部的水平居中的菜单


    固定在顶部的水平居中的菜单
    !DOCTYPE html>
    <html lang="en">
    <head>
       <meta charset="UTF-8">
       <title>定位练习二</title>
       <style type="text/css">
           .con{
               width: 400px;
               height: 80px;
               background-color: yellow;
               position: fixed;
               left: 50%;
               margin-left: -200px;
           }
           .con div{
               line-height: 80px;
               text-align: center;
           }
           div{
               text-align: center;
           }
       </style>
    </head>
    <body>
        <div class="con">
            <div>固定在顶部的水平居中的菜单</div>
        </div>
    </body>
    </html>
    

    提示:上述代码要注意居中的技巧

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

推荐阅读更多精彩内容

  • 各种纯css图标 CSS3可以实现很多漂亮的图形,我收集了32种图形,在下面列出。直接用CSS3画出这些图形,要比...
    剑残阅读 9,506评论 0 8
  • 一、文档流的概念指什么?有哪些方式可以让元素脱离文档流? 文档里指元素在文档中的位置由元素在html里的位置决定,...
    dengpan阅读 535评论 0 3
  • 一、CSS入门 1、css选择器 选择器的作用是“用于确定(选定)要进行样式设定的标签(元素)”。 有若干种形式的...
    宠辱不惊丶岁月静好阅读 1,589评论 0 6
  • 本课来自http://www.imooc.com/learn/9请不要用作商业用途。 HTML5 HTML介绍 H...
    PYLON阅读 3,210评论 0 5
  • 屏幕上,整个文件,只有一行字,“史密斯维森 2020年1月23日。” 维森是一名俄罗斯情报局的一名特工,2...
    青闺闺阅读 559评论 0 2