absolute如果找不到定位父元素那么会相对于谁进行定位_第五章 定位模型

第一节 定位模型

定位是将某个元素放到某个位置上。

1.定位的方式

  • 流动定位
    文档默认的定位方式,元素按照自左向右,自上而下的方式定位。具有水流的特征,称为流动定位。
  • 浮动定位
    使用float属性实现元素的定位。
  • position属性定位
    使用position属性设置元素的定位方式

2.position属性定位

position属性用于控制页面元素的位置

position:static/absolute/relative/fixed;

2.1 静态定位

元素没有设置position定位属性时默认就是静态定位,其实就是用页面流动模型进行定位。

2.2绝对定位

以特定的位置为参考进行定位。可以配合四个方向的偏移属性(left,top,right,bottom)进行元素定位。绝对定位的元素脱离了文档流,在文档中不占据任何位置。

  • 默认的绝对定位,是以浏览器的左上角位置作为参考进行定位。
  • 如果父容器设置了定位属性(absolute,relative,fixed),那么就以父容器为参考,进行定位

包含块:如果元素设置了定位属性为:absolute,relative,fixed,则该元素被称为包含块。此时,该元素的子元素在定位时,会以该元素为基准进行偏移。

<!DOCTYPE html>
<html>
 <head>
  <title> 这是我的页面 </title>
  <style type="text/css">
    #d1
    {
        width:100px;
        height:100px;
        background-color:blue;
        /*float:left;*/
        position:absolute;
        /*绝对定位和偏移属性结合使用
          以浏览器的左上角为标准进行偏移
        */
        /*left:100px;
        top:80px;*/
        right:100px;
        bottom:100px;
    }
    #d2
    {
        width:500px;
        height:300px;
        background-color:red;
        color:white;
    }
  </style>
 </head>
​
 <body>
  <!--绝对定位会让元素脱离文档流,跑到另外一个层上-->
  <div id="d1"></div>
  <div id="d2">这是一些内容,有很多东西</div>
 </body>
</html>
​

v2-ec1c2b096a8919176a05b1a5f8e1cf40_b.jpg
<!DOCTYPE html>
<html>
 <head>
  <title> 这是我的页面 </title>
  <style type="text/css">
  #d1
  {
    width:300px;
    height:300px;
    margin-left:200px;
    margin-top:200px;
    background-color:red;
    color:white;
    /*如果元素设置了定位属性为:absolute,relative,fixed
      则该元素被称为包含块。此时,该元素的子元素在定位时,
      会以该元素为基准进行偏移
    */
    position:fixed;
  }
​
  #d2
  {
    width:100px;
    height:100px;
    background-color:blue;
    position:absolute;
    left:10px;
    top:10px;
  }
  </style>
 </head>
​
 <body>
  <div id="d1">这是内容
    <div id="d2"></div>
  </div>
 </body>
</html>
​

v2-1bbb397d554a5420071c4767adf6bdf3_b.jpg

2.3相对定位

相对定位,以元素原有的位置为基准进行定位,定位时可以使用偏移属性(left,top,right,bottom)进行位置的设置。没有脱离文档流,受文档流的制约。

2.4 固定定位

就是讲元素固定定位到浏览器窗口的某个位置。

<!DOCTYPE html>
<html>
 <head>
  <title> 这是我的页面 </title>
  <style type="text/css">
    #login
    {
        width:300px;
        height:200px;
        border:2px solid red;
        background-color:gray;
        /*固定到浏览器窗口的指定位置*/
        position:fixed;
        left:40%;
        top:20%;
    }
    form
    {
        width:200px;
        height:150px;
        border:2px dashed black;
        margin:10px auto;
    }
  </style>
 </head>
​
 <body>
  <!--固定定位-->
  <div id="login">
    <form>
        账号:<input type="text" name="account"/><br/>
        密码:<input type="password" name="pwd"/><br/>
        <input type="submit" value="登录"/>
    </form>
  </div>
  <p>这是一些内容这是一些内容这是一些内容这是一些内容这是一些内容</p>
  <p>这是一些内容这是一些内容这是一些内容这是一些内容这是一些内容</p>
  <p>这是一些内容这是一些内容这是一些内容这是一些内容这是一些内容</p>
  <p>这是一些内容这是一些内容这是一些内容这是一些内容这是一些内容</p>
  <p>这是一些内容这是一些内容这是一些内容这是一些内容这是一些内容</p>
  <p>这是一些内容这是一些内容这是一些内容这是一些内容这是一些内容</p>
  <p>这是一些内容这是一些内容这是一些内容这是一些内容这是一些内容</p>
  <p>这是一些内容这是一些内容这是一些内容这是一些内容这是一些内容</p>
  <p>这是一些内容这是一些内容这是一些内容这是一些内容这是一些内容</p>
  <p>这是一些内容这是一些内容这是一些内容这是一些内容这是一些内容</p>
  <p>这是一些内容这是一些内容这是一些内容这是一些内容这是一些内容</p>
  <p>这是一些内容这是一些内容这是一些内容这是一些内容这是一些内容</p>
  <p>这是一些内容这是一些内容这是一些内容这是一些内容这是一些内容</p>
  <p>这是一些内容这是一些内容这是一些内容这是一些内容这是一些内容</p>
  <p>这是一些内容这是一些内容这是一些内容这是一些内容这是一些内容</p>
  <p>这是一些内容这是一些内容这是一些内容这是一些内容这是一些内容</p>
  <p>这是一些内容这是一些内容这是一些内容这是一些内容这是一些内容</p>
  <p>这是一些内容这是一些内容这是一些内容这是一些内容这是一些内容</p>
  <p>这是一些内容这是一些内容这是一些内容这是一些内容这是一些内容</p>
  <p>这是一些内容这是一些内容这是一些内容这是一些内容这是一些内容</p>
  <p>这是一些内容这是一些内容这是一些内容这是一些内容这是一些内容</p>
  <p>这是一些内容这是一些内容这是一些内容这是一些内容这是一些内容</p>
  <p>这是一些内容这是一些内容这是一些内容这是一些内容这是一些内容</p>
  <p>这是一些内容这是一些内容这是一些内容这是一些内容这是一些内容</p>
  <p>这是一些内容这是一些内容这是一些内容这是一些内容这是一些内容</p>
  <p>这是一些内容这是一些内容这是一些内容这是一些内容这是一些内容</p>
  <p>这是一些内容这是一些内容这是一些内容这是一些内容这是一些内容</p>
  <p>这是一些内容这是一些内容这是一些内容这是一些内容这是一些内容</p>
  <p>这是一些内容这是一些内容这是一些内容这是一些内容这是一些内容</p>
  <p>这是一些内容这是一些内容这是一些内容这是一些内容这是一些内容</p>
  <p>这是一些内容这是一些内容这是一些内容这是一些内容这是一些内容</p>
  <p>这是一些内容这是一些内容这是一些内容这是一些内容这是一些内容</p>
  <p>这是一些内容这是一些内容这是一些内容这是一些内容这是一些内容</p>
  <p>这是一些内容这是一些内容这是一些内容这是一些内容这是一些内容</p>
  <p>这是一些内容这是一些内容这是一些内容这是一些内容这是一些内容</p>
 </body>
</html>
​

v2-6df3ffc46faf89c823228e7077a6acd8_b.jpg

第二节 祝福墙

<!DOCTYPE html>
<html>
 <head>
  <title> 这是我的页面 </title>
  <style type="text/css">
  #wall
  {
    border:2px solid gray;
    background-color:#ffcc33;
    width:600px;
    height:400px;
    /*让容器变为包含块*/
    position:relative;
​
    margin:0px auto;
  }
  #wall h3
  {
    text-align:center;
  }
​
  #wall div
  {
    width:150px;
    height:200px;
    border:1px solid red;
    font-size:12px;
  }
​
  #wall div:hover
  {
    z-index:9;
  }
​
​
  #wall div p
  {
    text-indent:2em;
  }
  #wall div.card1
  {
    border:2px dashed blue;
    background-color:#ff66cc;
    position:absolute;
    left:50px;
    top:50px;
  }
  #wall div.card2
  {
    border:2px dashed blue;
    background-color:#cc6699;
    position:absolute;
    left:70px;
    top:70px;
  }
  #wall div.card3
  {
    border:2px dashed blue;
    background-color:#ccff66;
    position:absolute;
    left:90px;
    top:100px;
  }
  #wall div.card4
  {
    border:2px dashed blue;
    background-color:#3333ff;
    position:absolute;
    right:50px;
    top:50px;
  }
  #wall div.card5
  {
    border:2px dashed blue;
    background-color:#66ff66;
    position:absolute;
    right:80px;
    top:100px;
  }
​
​
  </style>
 </head>
​
 <body>
  <div id="wall">
    <h3>祝福墙</h3>
    <div class="card1">
        <h4>To tommy:</h4>
        <p>
            今天天气不错今天天气不错今天天气不错今天天气不错今天天气不错今天天气不错今天天气不错今天天气不错今天天气不错今天天气不错
        </p>
    </div>
    <div class="card2">
        <h4>To tommy:</h4>
        <p>
            今天天气不错今天天气不错今天天气不错今天天气不错今天天气不错今天天气不错今天天气不错今天天气不错今天天气不错今天天气不错
        </p>
    </div>
    <div class="card3">
        <h4>To tommy:</h4>
        <p>
            今天天气不错今天天气不错今天天气不错今天天气不错今天天气不错今天天气不错今天天气不错今天天气不错今天天气不错今天天气不错
        </p>
    </div>
    <div class="card4">
        <h4>To tommy:</h4>
        <p>
            今天天气不错今天天气不错今天天气不错今天天气不错今天天气不错今天天气不错今天天气不错今天天气不错今天天气不错今天天气不错
        </p>
    </div>
    <div class="card5">
        <h4>To tommy:</h4>
        <p>
            今天天气不错今天天气不错今天天气不错今天天气不错今天天气不错今天天气不错今天天气不错今天天气不错今天天气不错今天天气不错
        </p>
    </div>
  </div>
 </body>
</html>
​

v2-d224ef5e4e38f54b83e0f885cea38c7a_b.jpg

第三节 级联菜单

垂直级联菜单

<!DOCTYPE html>
<html>
 <head>
  <title> 这是我的页面 </title>
  <style type="text/css">
   ul
   {
    border:1px solid red;
    margin:0px;
    padding:0px;
    /*none:去除列表项目符号*/
    list-style:none;
   }
​
   #menu
   {
    width:150px;
   }
​
   #menu a
   {
    display:block;
    height:30px;
    text-align:center;
    line-height:30px;
   }
​
   #menu>li>a
   {
    background-color:black;
    color:white;
   }
​
   #menu ul a
   {
    background-color:gray;
    color:white;
   }
    /*初始隐藏二级菜单*/
   #menu ul
   {
    display:none;
   }
​
   /*放到一级菜单的li元素上时,让下面的ul元素显示*/
   #menu li:hover ul
   {
    display:block;
   }
  </style>
 </head>
​
 <body>
    <ul id="menu">
        <li>
            <a href="#">一级菜单1</a>
            <ul>
                <li><a href="#">二级菜单1</a></li>
                <li><a href="#">二级菜单2</a></li>
                <li><a href="#">二级菜单3</a></li>
            </ul>
        </li>
        <li>
            <a href="#">一级菜单2</a>
            <ul>
                <li><a href="#">二级菜单1</a></li>
                <li><a href="#">二级菜单2</a></li>
                <li><a href="#">二级菜单3</a></li>
            </ul>
        </li>
        <li>
            <a href="#">一级菜单3</a>
            <ul>
                <li><a href="#">二级菜单1</a></li>
                <li><a href="#">二级菜单2</a></li>
                <li><a href="#">二级菜单3</a></li>
            </ul>   
        </li>
    </ul>
 </body>
</html>
​

v2-50bf657f809c0347fa74460592dd922b_b.jpg
<!DOCTYPE html>
<html>
 <head>
  <title> 这是我的页面 </title>
  <style type="text/css">
   ul
   {
    margin:0px;
    padding:0px;
    /*去除项目符号*/
    list-style:none;
    border:1px solid red;
   }
   #menu
   {
    overflow:auto;
   }
   #menu>li
   {
    float:left;
   }
​
   /*设置菜单样式*/
   #menu a
   {
    display:block;
    width:150px;
    height:30px;
    border:1px solid black;
    text-align:center;
    line-height:30px;
   }
​
   /*隐藏二级菜单*/
   #menu ul
   {
    display:none;
    /*让二级菜单绝对定义,避免影响其他元素*/
    position:absolute;
    background-color:white;
   }
    /*鼠标悬浮时,显示二级菜单*/
   #menu li:hover ul
   {
    display:block;
   }
  </style>
 </head>
​
 <body>
  <ul id="menu">
    <li><a href="#">一级菜单1</a></li>
    <li>
        <a href="#">一级菜单2</a>
        <ul>
            <li><a href="#">二级菜单1</a></li>
            <li><a href="#">二级菜单2</a></li>
            <li><a href="#">二级菜单3</a></li>
            <li><a href="#">二级菜单4</a></li>
        </ul>
    </li>
    <li>
        <a href="#">一级菜单3</a>
        <ul>
            <li><a href="#">二级菜单1</a></li>
            <li><a href="#">二级菜单2</a></li>
            <li><a href="#">二级菜单3</a></li>
            <li><a href="#">二级菜单4</a></li>
        </ul>   
    </li>
    <li><a href="#">一级菜单4</a></li>
  </ul>
  <p>新闻内容新闻内容新闻内容新闻内容新闻内容新闻内容新闻内容新闻内容新闻内容新闻内容新闻内容新闻内容新闻内容新闻内容新闻内容新闻内容新闻内容新闻内容新闻内容新闻内容新闻内容新闻内容新闻内容新闻内容新闻内容新闻内容新闻内容新闻内容新闻内容新闻内容新闻内容新闻内容新闻内容新闻内容新闻内容新闻内容新闻内容新闻内容新闻内容新闻内容新闻内容新闻内容</p>
 </body>
</html>
​

v2-c48077735cd0a2cc6e97645c2ad99578_b.jpg

作业

汽车之家网页

v2-0aaf31c3827529414340bdf3c0072207_b.jpg

旅游资讯网

v2-7f42b3bf0e6bd09813b31be0503817c8_b.jpg
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值