CSS定位中Positoin、absolute、Relative的一些研究

CSS定位中Position、Absolute、Relative的一些研究

Position属性

CSS中的Position属性用于指定元素在文档中的定位方式。它可以取三个值,分别是static、relative和absolute。

  • static: 默认值。元素按照正常文档流进行排布。
  • relative: 元素相对于其正常位置进行定位,也就是说,相对于该元素在文档中的实际位置进行定位。如果没有设置left、right、top、bottom属性,则仍然按照正常文档流进行排布。
  • absolute: 元素相对于最近的非static定位的父元素进行定位。如果没有找到这样的父元素,则相对于body元素进行定位。

定位的相对性

上面提到了Position属性可以用来指定元素在文档中的定位方式。对于absolute和relative属性来说,它们还有一个重要的特性,就是它们支持对位置的调整。这个位置的调整是相对于元素的原始位置来进行的。

对于relative属性来说,元素需要设置left、right、top、bottom属性来进行位置调整。元素的位置调整不会影响其他元素的位置,所以它不会导致其他元素重新排布。

<div style="background-color: pink; padding: 50px;">
  <div style="background-color: yellow; position: relative; left: 50px;">I'm relative element</div>
</div>

对于absolute属性来说,元素需要设置left、right、top、bottom属性来进行位置调整。然而,它的定位是相对于最近的非static定位的父元素来进行的,也就是说如果没有设置非static定位的父元素,那么就相对于body元素进行定位。

<div style="background-color: pink; padding: 50px; position: relative;">
  <div style="background-color: yellow; position: absolute; left: 50px;">I'm absolute element</div>
</div>

定位的叠加性

如果一个元素同时设置了relative和absolute属性,那么它的位置调整是相对于它自己的位置进行的。此时,它的位置调整会影响其他元素的位置,因为其他元素需要重新排布以腾出位置给它。

<div style="background-color: pink; padding: 50px;">
  <div style="background-color: yellow; position: relative;">
    <div style="background-color: purple; position: absolute; left: 50px;">I'm absolute element</div>
  </div>
  <div style="background-color: blue;">I'm another element</div>
</div>

定位的堆叠性

如果两个相邻的元素同时设置了position属性,并且它们之间没有空隙,那么它们的垂直位置的相对性取决于它们的z-index值。z-index属性用于指定元素在垂直方向上的堆叠顺序。z-index值越大的元素在前面,越小的元素在后面。

<div style="background-color: pink; padding: 50px;">
  <div style="background-color: yellow; position: relative; z-index: 1;">I'm relative element with z-index 1</div>
  <div style="background-color: blue; position: relative; z-index: 2;">I'm relative element with z-index 2</div>
</div>

总结

  • Position属性用于指定元素在文档中的定位方式。它可以取三个值,分别是static、relative和absolute。
  • relative属性是相对于元素的原始位置进行定位的,可以使用left、right、top、bottom属性进行位置调整。调整相对位置不会对其他元素产生影响。
  • absolute属性是相对于最近的非static定位的父元素进行定位的。定位的顺序受该父元素的位置影响。
  • 如果一个元素同时设置了relative和absolute属性,那么它的位置调整是相对于它自己的位置进行的。其他元素需要重新排布以腾出位置给它。
  • 如果两个相邻的元素同时设置了position属性,并且它们之间没有空隙,那么它们的垂直位置的相对性取决于它们的z-index值。z-index值越大的元素在前面,越小的元素在后面。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:CSS定位中Positoin、absolute、Relative的一些研究 - Python技术站

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

相关文章

  • 如何在vue中使用HTML 5 拖放API

    下面是如何在Vue中使用HTML5拖放API的攻略。 HTML5拖放API简介 HTML5拖放API是一组允许我们通过拖放元素来实现交互的API。可以说它是一个非常方便且自然的交互方式,目前已经广泛应用于网页上。在这个API中,我们主要关注了三个事件:dragstart、drag、dragend。 dragstart: 当元素被拖动时触发。 drag: 当元…

    css 2023年6月10日
    00
  • Vue组件化开发之通用型弹出框的实现

    让我来为大家详细讲解“Vue组件化开发之通用型弹出框的实现”。这篇攻略主要介绍如何使用Vue组件化的思想,开发一个通用的弹出框组件。 引言 在Vue开发中,弹出框是非常常见的功能,虽然弹出框的样式、内容和功能都可能各不相同,但是在实现方式上,很多情况下是非常相似的。因此,我们可以通过组件化的思想,将弹出框组件进行封装和抽象,从而实现通用型弹出框的开发。 实现…

    css 2023年6月10日
    00
  • Angular 4中如何显示内容的CSS样式示例代码

    Angular 4中如何显示内容的CSS样式示例代码 在Angular 4中,可以使用CSS样式来显示内容。本攻略将详细讲解Angular 4中如何显示内容的CSS样式示例代码,包括基本用法、注意事项和示例说明。 1. 基本用法 在Angular 4中,可以使用ngStyle指令来设置元素的CSS样式。ngStyle指令可以接受一个对象,对象的属性为CSS样…

    css 2023年5月18日
    00
  • js实现滚动条滚动到某个位置便自动定位某个tr

    实现滚动条滚动到某个位置便自动定位某个tr,可以使用jQuery库中的scrollTop和offset方法,以下是详细的步骤: 步骤一:获取需要定位到的元素 首先,需要获取需要定位到的元素,可以使用jQuery中的选择器(如id、class、属性等)选中此元素。例如: var $targetTr = $(‘#target-tr’); 上述代码使用了id选择器…

    css 2023年6月10日
    00
  • web前端vue之CSS过渡效果示例

    下面是详细的“web前端vue之CSS过渡效果示例”的攻略。 1. 什么是CSS过渡效果 CSS过渡效果是指元素在改变样式时的动画效果。不同于直接瞬间改变样式,CSS过渡可以让这个过程更加柔和,增加用户的体验感。 2. 使用Vue中的过渡效果 在Vue中也可以使用CSS过渡效果来增强用户体验。Vue提供了三个内置的过渡类名: v-enter:进入过渡的开始状…

    css 2023年6月10日
    00
  • JS实现小球的弹性碰撞效果

    JS实现小球的弹性碰撞效果是一项比较基础的前端交互效果,而且很实用。以下是实现该效果的几个步骤: 步骤一:绘制小球 在 HTML 中添加一个 canvas 元素,然后在 JS 中使用 Canvas API 绘制小球。例如: <canvas id="canvas" width="500" height="…

    css 2023年6月10日
    00
  • Android WebView缓存机制优化加载慢问题

    Android WebView缓存机制优化加载慢问题 在Android开发中,经常会用到WebView控件加载网页内容。但是在一些低端手机上,当加载大量网页时,会出现加载慢、内存占用过大等问题,降低用户体验。为了解决这些问题,可以对WebView的缓存机制进行优化。 一、Webview缓存机制 Webview的缓存机制可以分为两种:内存缓存和磁盘缓存。 内存…

    css 2023年6月9日
    00
  • CSS设置字体方法详解

    CSS字体是指用于在网页中渲染文本的字体样式。在CSS中,可以使用以下属性来设置字体: font-family:设置字体的名称。可以设置多个备用字体名称,用逗号分隔。如果第一种字体不可用,就使用第二种,以此类推。例如: body { font-family: "Helvetica Neue", Arial, sans-serif; } f…

    Web开发基础 2023年3月20日
    00
合作推广
合作推广
分享本页
返回顶部