关于HTML定位

前言

    本文要介绍的是html&CSS中的元素的定位,通过元素的定位我们可以去更好的将盒子放到我们想要的位置。下面就让我们一起来看看吧。

一、什么是定位

定位:position属性,可以让我们将元素从文档流中取出,然后使用方位词属性(left top right bottom)精准的控制它的位置。

不同的定位值可以使元素拥有不同的表现形式,例如放在另外一个元素上面或者固定在浏览器的显示区某个位置

二、定位的分类和取值

absolute	生成绝对定位的元素,相对于 static 定位以外的第一个父元素进行定位。
fixed	    生成固定定位的元素,相对于浏览器窗口进行定位。
relative	生成相对定位的元素,相对于其正常位置进行定位。
static	    默认值。没有定位,元素出现在正常的流中。

其中静态定位是默认的样式,元素保持原来的性质去排列放置,所以就不去做详细的说明了。下面让我们来看一下相对定位、绝对定位和固定定位。

1.相对定位(relative)

相对定位能让元素保持原文本流位置的同时,可以通过方位属性进行相对于原位置的偏移。

特点:

不会脱离文档流

不影响元素本身的任何特性

如果不加方位词偏移那么没有任何影响

2.绝对定位(absolute)

绝对定位能让元素脱离文档流,使用方位属性相对于最近的有定位的父级元素进行偏移。

注意!方位属性初始值不是0,而是auto。

方位属性left和top 优先级比 right和bottom高,比如一个元素既拥有left也拥有right,最终位置以left为准。

特点:

脱离文档流

元素宽高默认值为0

找不到最近的定位父级则相对于body标签

一般配合相对定位使用(参照物)

会将元素转换成块元素

设置了绝对定位,没有设置层级;html后写居上

margin:auto 暂时失效

 基点(起始点/坐标原点):

绝对定位的基点是会往父元素找,如果父元素是相对定位(relative )就以此为基点,如果不是的话就继续往上找,直到html元素为止。

 绝对定位的元素跟浮动元素是有点相似的,但绝对定位是完全脱离文档流。

应用场景 

1.元素不会占据页面空间

2.元素需要移动到指定位置
 

3.固定定位(fixed)

固定定位能让元素脱离文档流,使用方位属性相对于浏览器可视区进行偏移;

特点:

脱离文档流

元素宽高默认值为0

margin:auto失效

固定定位的基点(起始点)就是当前视口的起始点,换句话说就是当前页面的大小,默认视口大小=body 大小=html大小

应用场景:

位置固定,不会随着页面滚动而滚动

三、示例

下面,我们通过一个示例来加深一下对定位的理解:

首先,我们写一个网页的导航.

期望效果:顶部导航栏随滚动条滚动不移动

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        *{
            margin: 0px; padding:0px; list-style: none;
        }
        .container{
            width: 726px;
            height: 8000px;
            background-color: pink;
            margin:0 auto;
        } 
        .container ul{
            position: fixed;
            /* 固定定位 */
            top: 0px;
        }
        .container ul li{
            /* 右边框 */
            border-right: 1px solid white;
            width: 120px;
            height: 50px;
            /* 文字水平居中 */
            text-align: center;
            /* 文字垂直居中 */
            line-height: 50px;
            font-size: 20px;
            /* 设置左浮动 导航横向排布 */
            float: left;
            background-color: rgb(120, 120, 203);
        }
        .container ul li a{
            color: aliceblue;
            /* 清楚下划线 */
            text-decoration: none;
        }
    </style>
</head>
<body>
    <div class="container">
        <div style="height:300px;"></div>
        <ul>
            <li><a href="#">首页</a></li>
            <li><a href="#">亲子旅游</a></li>
            <li><a href="#">居家生活</a></li>
            <li><a href="#">宠物生活</a></li>
            <li><a href="#">美食酒水</a></li>
            <li><a href="#">个护清洁</a></li>
        </ul>
    </div>
</body>
</html>

 在我们运用固定定位后:

   .container ul{
            position: fixed;
            /* 固定定位 */
            top: 0px; }

 效果如图:

 

总结

以上就是关于HTML中定位的全部内容了,通过定位可以在不同需求下使用不同的方法,从而使你的界面设计更加得心应手,希望本文能对大家有所帮助。
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值