css关于position属性的用法详解(绝对定位和相对定位的混淆)

CSS关于position属性的用法详解(绝对定位和相对定位的混淆)

position属性的概述

position属性定义了元素的定位方式,其可选值有四种:static,relative,absolutefixed

  • static表示元素的默认定位方式,即元素在文档流中按照其自身的顺序排列
  • relative表示按照元素自身的偏移量来确定元素在文档流中的位置,其不会影响其它元素的布局
  • absolute表示将元素完全从文档流中移除,并按照最近的非静态定位祖先元素进行定位
  • fixed表示将元素固定在页面视口中的指定位置上,其不会随页面的滚动而移动

绝对定位和相对定位的混淆

经常会出现混淆的情况是当绝对定位元素的祖先元素具有相对定位时,子元素的定位位置是相对于祖先元素而不是相对于文档流。

例如:

<div style="position:relative">
  <div style="position:absolute;top:10px;left:10px;">我是绝对定位元素</div>
</div>

以上代码中,子元素<div style="position:absolute;top:10px;left:10px;">是一个绝对定位元素,而祖先元素<div style="position:relative">是一个相对定位元素。在此情况下,子元素的位置是相对于祖先元素而不是文档流。

如何正确使用绝对定位和相对定位

使用绝对定位布局通常会造成网页布局的不稳定,因此应该尽量避免使用绝对定位元素。

相对定位布局则更加灵活,可通过对同级元素和该元素的父元素进行定位来达到最优的布局效果,从而尽可能避免使用绝对定位的情况。例如:

<div style="position:relative">
  <div style="position:relative;left:20px;">我是相对定位元素</div>
</div>

以上代码中,子元素<div style="position:relative;left:20px;">是一个相对定位元素,使用了left属性来实现横向偏移。父元素<div style="position:relative">也是一个相对定位元素,从而使子元素位置相对于该元素进行定位。

示例一:使用相对定位布局实现文字垂直居中

<style>
  .content {
    width: 300px;
    height: 300px;
    background-color: #ccc;
  }

  .text {
    position: relative;
    top: 50%;
    transform: translateY(-50%);
  }
</style>

<div class="content">
  <div class="text">我要垂直居中</div>
</div>

以上代码中,通过对文本元素的相对定位和使用toptransform属性实现了文本的垂直居中。

示例二:使用相对定位和绝对定位布局实现图片覆盖效果

<style>
  .wrapper {
    position: relative;
    width: 300px;
  }

  .wrapper img {
    max-width: 100%;
  }

  .overlay {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    opacity: 0.5;
    background-color: #000;
  }

  .text {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    color: #fff;
  }
</style>

<div class="wrapper">
  <img src="example.jpg" alt="example image" />
  <div class="overlay"></div>
  <div class="text">我是文字覆盖层</div>
</div>

以上代码中,通过对包含图片的父元素进行相对定位,实现了对绝对定位元素的定位。通过对覆盖层和文字的绝对定位,实现了层叠效果和图片上增加文字的效果。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:css关于position属性的用法详解(绝对定位和相对定位的混淆) - Python技术站

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

相关文章

  • CSS3 清除浮动的方法示例

    CSS中使用浮动(float)可以将元素脱离文档流并实现排版效果。但是,浮动元素会对其父元素和兄弟元素产生影响,可能导致布局错乱。因此,我们需要使用清除浮动的方法来避免这种局面。以下是CSS3中清除浮动的几种方法: 1、使用 clear 属性 首先介绍的是 clear 属性。在 CSS 中, clear 属性用于清除浮动。该属性有四个取值:left,righ…

    css 2023年6月10日
    00
  • CSS框架开发指南

    CSS框架是一种用于快速构建网站和应用程序的工具,它提供了一组预定义的CSS样式和布局,可以帮助开发人员快速创建具有一致外观和感觉的网站。本攻略将介绍如何开发一个CSS框架,包括框架的设计、实现和使用。同时,本攻略将提供两个示例,以说明如何使用CSS框架来构建网站。 设计CSS框架 在设计CSS框架之前,需要考虑以下几个方面: 目标受众:框架的目标受众是谁?…

    css 2023年5月18日
    00
  • 页面出现滚动条的时候如何让滚动条不影响页面宽度

    要让页面出现滚动条的时候不影响页面宽度,我们可以采用以下几种方法: 一、使用 overflow: hidden; 可以在需要限制宽度的容器上设置 overflow: hidden;。这样就能阻止滚动条的出现,同时保持页面的宽度不变。 .container { max-width: 1000px; overflow: hidden; } 二、使用 overfl…

    css 2023年6月10日
    00
  • 详解CSS两种添加注释的方法

    CSS注释是指在CSS代码中添加注释信息,用于增强代码可读性和维护性。注释可以在必要时提供有关代码的额外信息,并且不会被浏览器解释为CSS规则。 CSS注释的语法很简单,可以使用如下两种方式: 单行注释 单行注释以“/”开头,以“/”结尾。注释内容之间不得使用“*/”,否则注释会提前结束。 例如: /* 这是一个单行注释 */ 多行注释 多行注释也以“/”开…

    Web开发基础 2023年3月20日
    00
  • 一列固定宽度布局和背景图片绝对定位

    一列固定宽度布局和背景图片绝对定位的完整攻略如下。 设置容器宽度 首先,我们需要设置容器的宽度。这可以使用CSS中的width属性进行设置。例如,我们可以将容器的宽度设置为960像素: .container { width: 960px; } 添加背景图片 接下来,我们需要添加背景图片。这可以使用CSS中的background-image属性进行设置。例如,…

    css 2023年6月9日
    00
  • 利用Bootstrap Multiselect实现下拉框多选功能

    好的!下面提供详细的攻略: 利用Bootstrap Multiselect实现下拉框多选功能 简介 Bootstrap Multiselect是一款基于Bootstrap框架的下拉框多选插件,可以提供用户友好的UI界面,实现下拉框中选取多个选项的功能。本文将详细介绍如何使用Bootstrap Multiselect实现下拉框多选功能,并提供两个实例演示其用法…

    css 2023年6月13日
    00
  • css使用overflow属性控制滚动条的样式

    下面是关于 CSS 使用 overflow 属性控制滚动条样式的详细攻略。 什么是 overflow 属性 CSS 中的 overflow 属性用于控制元素内容溢出时的处理方式。如果一个元素的内容超出了它的区域,那么就会出现滚动条,overflow 可以决定这个滚动条的样式、是否显示等。 使用 overflow 控制滚动条样式 控制滚动条的样式 默认情况下,…

    css 2023年6月9日
    00
  • CSS代码编写中视觉格式化模型的学习教程

    学习视觉格式化模型 CSS代码编写中的视觉格式化模型,是指CSS用于控制HTML元素在页面中如何排列和呈现的方式。学习视觉格式化模型需要掌握CSS选择器、盒模型、定位和浮动等基本知识。 首先,我们需要了解CSS选择器。选择器是来定位HTML元素的,它可以按照元素的标签名、类名、ID等属性来选择一个或多个元素。常见的选择器有: 标签选择器:选择所有指定标签名的…

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