欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

css position 5种不同的值的用法

程序员文章站 2022-07-04 09:54:48
position属性 position属性指定用于元素的定位方法的类型(静态,相对,固定,绝对或粘性)。 有五种不同的值: static relative fixed absolute sticky 然后使用top,bottom,left和right属性定位元素。但是,除非首先设置position属 ......

position属性

position属性指定用于元素的定位方法的类型(静态,相对,固定,绝对或粘性)。 有五种不同的值:

  • static
  • relative
  • fixed
  • absolute
  • sticky

然后使用topbottomleftright属性定位元素。但是,除非首先设置position属性,否则这些属性将不起作用。根据位置值,它们的工作方式也不同。

position:static;

默认情况下,html元素定位为静态。静态定位元素不受top,bottom,left和right属性的影响。 元素position:static;没有以任何特殊方式定位; 它总是根据页面的正常流程定位:

这个<div>元素的position:static;
<!doctype html>
<html>
<head>
    <meta charset="utf-8">
    <title>css</title>
    <style>
        div.static {
            position: static;
            border: 3px solid #73ad21;
        }
    </style>
</head>
<body>

<h2>position: static;</h2>

<p>一个位置为position:static; 没有任何特殊的定位; 它是始终根据页面的正常流程定位:</p>

<div class="static">
    这个div元素的位置为:static;
</div>

</body>
</html>

position:relative;

具有position:relative;相对于其正常位置定位的元素。设置相对定位元素的topbottomleftright属性将使其远离其正常位置进行调整。其他内容不会被调整以适应元素留下的任何空白。

这个<div>元素的position:relative;
<!doctype html>
<html>
<head>
    <meta charset="utf-8">
    <title>css</title>
    <style>
        div.relative {
            position: relative;
            left: 30px;
            border: 3px solid #73ad21;
        }
    </style>
</head>
<body>

<h2>position: relative;</h2>

<p>position:relative的元素; 相对于其正常位置定位:</p>

<div class="relative">
    这个div元素有position: relative;
</div>

</body>
</html>

position:fixed;

元素position:fixed;相对于视口定位,这意味着即使页面滚动,它也始终保持在同一位置。topbottomleftright属性用于定位元素。固定元素不会在页面中留下通常位于其中的间隙。注意页面右下角的固定元素。

<!doctype html>
<html>
<head>
    <meta charset="utf-8">
    <title>css教程(jc2182.com)</title>
    <style>
        div.fixed {
            position: fixed;
            bottom: 0;
            right: 0;
            width: 300px;
            border: 3px solid #73ad21;
        }
    </style>
</head>
<body>

<h2>position:fixed;</h2>

<p>position:fixed; 相对于视口定位,这意味着即使页面滚动,它也始终保持在同一位置:</p>

<div class="fixed">
    这个div元素有position: fixed;
</div>

</body>
</html>

position:absolute;

具有position:absolute;相对于最近定位的祖先定位的元素(而不是相对于视口定位,如fixed)。然而; 如果绝对定位元素没有定位祖先,它将使用文档正文,并随页面滚动一起移动。 注意: “定位”元素的位置是除了static之外的任何元素。

<!doctype html>
<html>
<head>
    <meta charset="utf-8">
    <title>css教程(jc2182.com)</title>
    <style>
        div.relative {
            position: relative;
            width: 400px;
            height: 200px;
            border: 3px solid #73ad21;
        }

        div.absolute {
            position: absolute;
            top: 80px;
            right: 0;
            width: 200px;
            height: 100px;
            border: 3px solid #73ad21;
        }
    </style>
</head>
<body>

<h2>position: absolute;</h2>

<p>position:absolute;的元素; 相对于最近定位的祖先定位(而不是相对于视口定位,如fixed):</p>

<div class="relative">这个div元素有 position: relative;
    <div class="absolute">这个div元素有 position: absolute;</div>
</div>

</body>
</html>

position:sticky;

position:sticky;根据用户的滚动位置定位元素。粘性元素在relative和之间切换fixed,具体取决于滚动位置。它被相对定位,直到在视口中满足给定的偏移位置 - 然后它“粘住”到位(如位置:fixed)。

注意: internet explorer,edge 15及更早版本不支持粘性定位。safari需要-webkit-前缀(参见下面的示例)。您还必须指定的至少一个top,right,bottom或left为粘稠的定位工作。

在此示例中,top: 0当您到达其滚动位置时,粘性元素会粘到页面顶部。

<!doctype html>
<html>
<head>
    <style>
        div.sticky {
            position: -webkit-sticky;
            position: sticky;
            top: 0;
            padding: 5px;
            background-color: #cae8ca;
            border: 2px solid #4caf50;
        }
    </style>
</head>
<body>

<p>尝试在此框架内<b>滚动</b>以了解粘性定位的工作原理。</p>
<p>注意:ie/edge15及更早版本不支position: sticky;。</p>

<div class="sticky">我很粘!</div>

<div style="padding-bottom:2000px">
    <p>在此示例中,当您到达其滚动位置时,粘性元素会粘到页面顶部(顶部:0)。</p>
    <p>向上滚动以消除粘性。</p>
    <p>some text to enable scrolling.. lorem ipsum dolor sit amet, illum definitiones no quo, maluisset concludaturque et eum, altera fabulas ut quo. atqui causae gloriatur ius te, id agam omnis evertitur eum. affert laboramus repudiandae nec et. inciderint efficiantur his ad. eum no molestiae voluptatibus.</p>
    <p>some text to enable scrolling.. lorem ipsum dolor sit amet, illum definitiones no quo, maluisset concludaturque et eum, altera fabulas ut quo. atqui causae gloriatur ius te, id agam omnis evertitur eum. affert laboramus repudiandae nec et. inciderint efficiantur his ad. eum no molestiae voluptatibus.</p>
    <p>some text to enable scrolling.. lorem ipsum dolor sit amet, illum definitiones no quo, maluisset concludaturque et eum, altera fabulas ut quo. atqui causae gloriatur ius te, id agam omnis evertitur eum. affert laboramus repudiandae nec et. inciderint efficiantur his ad. eum no molestiae voluptatibus.</p>
    <p>some text to enable scrolling.. lorem ipsum dolor sit amet, illum definitiones no quo, maluisset concludaturque et eum, altera fabulas ut quo. atqui causae gloriatur ius te, id agam omnis evertitur eum. affert laboramus repudiandae nec et. inciderint efficiantur his ad. eum no molestiae voluptatibus.</p>
</div>

</body>
</html>

所有css定位属性

属性 描述
设置定位框的底部边缘
剪辑一个绝对定位的元素
设置定位框的左边缘
指定元素的定位类型
设置定位框的右边缘
设置定位框的上边缘
设置元素的堆栈顺序