CSS position属性absolute relative等五个值的解释

yizhihongxing

下面是关于CSS position 属性及其五个值的详细讲解:

1. 什么是 position 属性

CSS position 属性指定一个元素在文档中的位置方式。这个属性可以控制元素的位置方式,并且会影响元素的显示效果。

2. position 属性的五个值

CSS position 属性有五种取值,分别为 static(默认值)、relativeabsolutefixedsticky

  • static:默认值,即元素在文档中的位置方式没有特别限制,元素在正常流中进行排列。
  • relative:元素会相对于自己在文档中的正常位置移动,但元素仍保持在文档中的正常流中。
  • absolute:元素会完全从文档中移除,并相对于文档的包含块进行定位。
  • fixed:元素会相对于浏览器窗口的视口进行定位,并在滚动页面时保持不变。
  • sticky:元素会根据文档流布局进行正常定位,并随着滚动而滚动,当元素到达容器的顶部或底部时,会固定在该位置上。

下面分别对这五个取值进行详细讲解。

2.1 static

staticposition 的默认值,它意味着元素在文档中的位置方式没有特别限制,元素在正常流中进行排列。

<div class="box">这是一个静态元素</div>

.box {
  border: 1px solid black;
  padding: 10px;
}

上面的代码中 .box 元素将以静态位置进行布局,即没有特别的限制,它将按照文档流中的顺序进行排列。

2.2 relative

relative 值会相对于元素在文档中的正常位置进行移动,但元素仍保持在文档中的正常流中。

<div class="box">这是一个相对定位元素</div>

.box {
  border: 1px solid black;
  padding: 10px;
  position: relative;
  left: 50px;
  top: 50px;
}

上面的代码中 .box 元素使用了 position: relative,同时使用 lefttop 属性移动了元素的位置,元素相对于原来的位置向右移动了 50px,向下移动了 50px。

2.3 absolute

absolute 值会使元素完全从文档中移除,并相对于文档的包含块进行定位。

<div class="relative">
  <div class="absolute">这是一个绝对定位元素</div>
</div>

.relative {
  border: 1px solid red;
  height: 200px;
  margin-bottom: 10px;
  position: relative;
}

.absolute {
  border: 1px solid blue;
  bottom: 0;
  left: 0;
  height: 50px;
  position: absolute;
  width: 100%;
}

上面的代码中,.relative 这个容器使用了 position: relative,它的 height 属性指定了容器的高度,并为内部的 .absolute 元素提供了位置参照。.absolute 使用了 position: absolute,width属性设置为100%,使其宽度和父元素相同,随着父元素宽度的变化而变化。bottom 属性被设置为 0,用于将元素定位到容器的底部,left 属性被设置为 0,将元素与容器的左侧对齐。

2.4 fixed

fixed 值会使元素相对于浏览器窗口的视口进行定位,并在滚动页面时保持不变。

<div class="fixed">这是一个固定定位元素</div>

.fixed {
  background-color: #eee;
  bottom: 0;
  padding: 10px;
  position: fixed;
  right: 0;
}

上面的代码中,.fixed 元素将总是出现在视口右下角,即使页面滚动也是如此。它的 bottom 值设置为 0,right 值设置为 0,使其相对于视口右下角定位。

2.5 sticky

sticky 值会使元素根据文档流布局进行正常定位,并随着滚动而滚动,当元素到达容器的顶部或底部时,会固定在该位置上。

<div class="sticky">
  <div class="item">这是一个卡顿效果元素</div>
  <div class="item">这是一个卡顿效果元素</div>
  <div class="item">这是一个卡顿效果元素</div>
</div>

.sticky {
  border: 1px solid red;
  height: 300px;
  overflow: auto;
  position: sticky;
  top: 10px;
}

.item {
  border: 1px solid blue;
  height: 100px;
  margin-bottom: 10px;
}

上面的代码中,.sticky 元素和内部的 .item 元素都使用了 position: sticky。.sticky 的 height 属性指定了容器的高度,并使用了 overflow: auto 以创建一个滚动条。.sticky 的 top 值被设置为 10px,表示从视口顶部往下滚动 10px 后,该元素变为固定位置。.item 元素使用了 margin-bottom,使它们之间留出空白。

总结

position 属性是控制元素位置的重要属性,不同的取值会有不同的作用和影响。这里我们介绍了 staticrelativeabsolutefixedsticky 这五个值,并且结合了示例代码进行讲解,希望对大家有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:CSS position属性absolute relative等五个值的解释 - Python技术站

(0)
上一篇 2023年6月9日
下一篇 2023年6月9日

相关文章

  • Div+CSS对HTML的table表格定位用法实例

    这是一个“Div+CSS对HTML的table表格定位用法”的攻略,主要介绍如何使用CSS的定位属性来精确定位和布局HTML中的table表格。下面将会逐步介绍内容。 HTML中的表格 HTML中的表格是页面设计中经常用到的元素之一,也是前端开发中常见的问题,常用于放置数据。 <table id="my-table"> &lt…

    css 2023年6月9日
    00
  • JavaScript实现为input与textarea自定义hover,focus效果的方法

    要实现为input与textarea自定义hover、focus效果的方法,可以用JavaScript来实现。下面是具体的步骤。 步骤1. 获取input或textarea元素 首先需要获取input或textarea元素,可以使用document.querySelector()方法来获取元素。比如: const input = document.query…

    css 2023年6月10日
    00
  • 功能强大的jquery.validate表单验证插件

    下面是“功能强大的jquery.validate表单验证插件”的详细攻略,包含两个示例说明。 什么是jquery.validate表单验证插件 jquery.validate表单验证插件是通过使用jQuery及其插件,帮助开发者轻松地实现Web表单的验证功能的一个强大工具。 使用该插件,可以非常方便地为表单添加各种验证规则、错误提示信息等功能,大大减少了开发…

    css 2023年6月9日
    00
  • css下div下同行多元素右对齐

    要实现CSS下div下同行多元素右对齐,可以使用以下两种方式: 使用Flex布局 Flex布局是CSS的一个强大布局方式,可以实现简单的对齐需求。 要实现多个元素右对齐,可以将这些元素放在一个Flex容器中,添加justify-content: flex-end样式即可。同时,还需要给这些元素指定宽度,保证它们不会抢占Flex容器的空间。 下面是一个示例代码…

    css 2023年6月10日
    00
  • CSS Transition通过改变Height实现展开收起元素

    CSS Transition 是用于添加动画效果的 CSS 属性之一,可以通过改变元素的某些属性值来实现过渡效果,其中改变 height 属性值来实现展开收起元素效果是常见的应用。 下面详细讲解一下 CSS Transition 通过改变 Height 实现展开收起元素的完整攻略: 原理分析 展开收起元素的原理是通过控制元素的高度,实现元素高度从 0 到最大…

    css 2023年6月10日
    00
  • CSS 继承 inherit属性的方法

    CSS 继承是CSS样式机制的一种特性。它指的是子元素可以继承父元素的一些属性值,并且可以重写这些属性值。其中,inherit 是CSS样式机制中的一个关键字,表示要从父元素继承相应的属性值。 以下是使用 inherit 属性的方法。 1. 指定子元素的属性值为父元素的属性值 使用 inherit 属性可以将子元素的指定属性值设置为其父元素的属性值。例如,以…

    css 2023年6月10日
    00
  • 使用snowfall.jquery.js实现爱心满屏飞的效果

    使用 snowfall.jquery.js 可以实现很多有趣的效果,其中最常见的就是爱心满屏飞的效果。下面是实现该效果的完整攻略。 1. 引入必要的文件 首先需要在 HTML 文件中引入 jquery.js 和 snowfall.jquery.js 两个文件: <script src="https://code.jquery.com/jque…

    css 2023年6月10日
    00
  • Vue 使用超图SuperMap的实践

    下面我将为您提供一份“Vue 使用超图SuperMap的实践”的完整攻略: Vue 使用超图SuperMap的实践 背景 超图SuperMap是一款常用的GIS地理信息系统,而Vue是一个流行的前端框架,本攻略旨在介绍如何在Vue项目中使用超图SuperMap。 前置条件 了解Vue框架的基础知识,包括Vue组件、数据绑定、生命周期等。 能够基础的HTML、…

    css 2023年6月10日
    00
合作推广
合作推广
分享本页
返回顶部