CSS基础学习--14 Position(定位)

news2024/9/27 9:21:08

一、定义

position属性指定了元素的定位类型

 position 属性的五个值:

  • static
  • relative
  • fixed
  • absolute
  • sticky

元素可以使用的顶部,底部,左侧和右侧属性定位。然而,这些属性无法工作,除非是先设定position属性。他们也有不同的工作方式,这取决于定位方法。

二、static 定位

HTML 元素的默认值,即没有定位,遵循正常的文档流对象。

 静态定位的元素不会受到 top, bottom, left, right影响。

<style>
div.static {
    position: static;
    border: 3px solid #73AD21;
}
</style>

 使用 position: static; 定位的元素,无特殊定位,遵循正常的文档流对象

三、fixed 定位

元素的位置相对于浏览器窗口是固定位置。

即使窗口是滚动的它也不会移动

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"> 
<title>CSS基础知识-定位position</title> 
<style>
p.pos_fixed
{
	position:fixed;
	top:30px;
	right:5px;
}
</style>
</head>
<body>

<p class="pos_fixed">Some more text</p>
<p><b>注意:</b> IE7 和 IE8 支持只有一个 !DOCTYPE 指定固定值.</p>
<p>Some text</p><p>Some text</p><p>Some text</p><p>Some text</p><p>Some text</p><p>Some text</p><p>Some text</p><p>Some text</p><p>Some text</p><p>Some text</p><p>Some text</p><p>Some text</p><p>Some text</p><p>Some text</p><p>Some text</p><p>Some text</p>
</body>
</html>

 注意: Fixed 定位在 IE7 和 IE8 下需要描述 !DOCTYPE 才能支持。

Fixed定位使元素的位置与文档流无关,因此不占据空间。

Fixed定位的元素和其他元素重叠。

四、relative 定位

相对定位元素的定位是相对其正常位置

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"> 
<title>CSS基础学习-相对定位</title> 
<style>
h2.pos_left
{
	position:relative;
	left:-20px;
}

h2.pos_right
{
	position:relative;
	left:20px;
}
</style>
</head>

<body>
<h2>这是位于正常位置的标题</h2>
<h2 class="pos_left">这个标题相对于其正常位置向左移动</h2>
<h2 class="pos_right">这个标题相对于其正常位置向右移动</h2>
<p>相对定位会按照元素的原始位置对该元素进行移动。</p>
<p>样式 "left:-20px" 从元素的原始左侧位置减去 20 像素。</p>
<p>样式 "left:20px" 向元素的原始左侧位置增加 20 像素。</p>
</body>

</html>

 移动相对定位元素,但它原本所占的空间不会改变

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"> 
<title>CSS基础知识-相对定位1</title> 
<style>
h2.pos_top
{
	position:relative;
	top:-50px;
}
</style>
</head>

<body>
<h2>这是一个没有定位的标题</h2>
<h2 class="pos_top">这个标题是根据其正常位置向上移动</h2>
<p><b>注意:</b> 即使相对定位元素的内容是移动,预留空间的元素仍保存在正常流动。</p>
</body>

</html>

 相对定位元素经常被用来作为绝对定位元素的容器块

五、absolute 定位

绝对定位的元素的位置相对于最近的已定位父元素,如果元素没有已定位的父元素,那么它的位置相对于<html>

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"> 
<title>CSS基础学习-绝对定位</title> 
<style>
h2
{
	position:absolute;
	left:100px;
	top:150px;
}
</style>
</head>

<body>
<h2>这是一个绝对定位了的标题</h2>
<p>用绝对定位,一个元素可以放在页面上的任何位置。标题下面放置距离左边的页面100 px和距离页面的顶部150 px的元素。.</p>
</body>

</html>

absolute 定位使元素的位置与文档流无关,因此不占据空间。

absolute 定位的元素和其他元素重叠。

 六、sticky 定位

sticky 英文字面意思是粘,粘贴,所以可以把它称之为粘性定位。

position: sticky; 基于用户的滚动位置来定位。

粘性定位的元素是依赖于用户的滚动,在 position:relative 与 position:fixed 定位之间切换。

它的行为就像 position:relative; 而当页面滚动超出目标区域时,它的表现就像 position:fixed;,它会固定在目标位置。

元素定位表现为在跨越特定阈值前为相对定位,之后为固定定位。

这个特定阈值指的是 top, right, bottom 或 left 之一,换言之,指定 top, right, bottom 或 left 四个阈值其中之一,才可使粘性定位生效。否则其行为与相对定位相同

注意: Internet Explorer, Edge 15 及更早 IE 版本不支持 sticky 定位。 Safari 需要使用 -webkit- prefix (查看以下实例)。

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"> 
<title>CSS基础学习</title> 
<style>
div.sticky {
  position: -webkit-sticky;
  position: sticky;
  top: 0;
  padding: 5px;
  background-color: #cae8ca;
  border: 2px solid #4CAF50;
}
</style>
</head>
<body>

<p>尝试滚动页面。</p>
<p>注意: IE/Edge 15 及更早 IE 版本不支持 sticky 属性。</p>

<div class="sticky">我是粘性定位!</div>

<div style="padding-bottom:2000px">
  <p>滚动我</p>
  <p>来回滚动我</p>
  <p>滚动我</p>
  <p>来回滚动我</p>
  <p>滚动我</p>
  <p>来回滚动我</p>
</div>

</body>
</html>

 七、重叠的元素

元素的定位与文档流无关,所以它们可以覆盖页面上的其它元素

z-index属性指定了一个元素的堆叠顺序(哪个元素应该放在前面,或后面)

一个元素可以有正数或负数的堆叠顺序

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"> 
<title>CSS基础知识-重叠</title> 
<style>
img
{
	position:absolute;
	left:0px;
	top:0px;
	z-index:-1;
}
</style>
</head>

<body>
<h1>This is a heading</h1>
<img src="w3css.gif" width="100" height="140" />
<p>因为图像元素设置了 z-index 属性值为 -1, 所以它会显示在文字之后。</p>
</body>
</html>

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/657132.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

scratch lenet(1): 读写 pgm 图像文件

scratch lenet(1): 读写 pgm 图像文件 文章目录 scratch lenet(1): 读写 pgm 图像文件1. 目的2. pgm 格式介绍2.1 概要2.2 meta 信息2.3 像素内容 3. 创建 .pgm 文件4. 使用C语言读取 .pgm 灰度图文件4.1 实现4.2 解释 5. 使用C语言保存 .pgm 灰度图文件 1. 目的 最近在 githu…

车载软件架构 —— 闲聊几句AUTOSAR OS(四)

我是穿拖鞋的汉子,魔都中坚持长期主义的工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 没有人关注你。也无需有人关注你。你必须承认自己的价值,你不能站在他人的角度来反对自己。人生在世,最怕的就是把别人的眼光当成自己生活的唯一标准。到最…

初识Telegraf、InfluxDB和Grafana铁三角形成的监控可视化解决方案

文章目录 前言原始的监控靠人盯进化的监控靠批处理脚本高端的监控靠完整的可视化解决方案Telegraf、InfluxDB和Grafana铁三角TelegrafInfluxDBGrafana Grafana仪表板展示服务器资源总览负载和内存使用网络带宽磁盘IOIO延迟其他指标进程信息 总结 前言 数据监控目前用于各行各业…

Cracking C++(13): 读取不超过n个字符

文章目录 1. 目的2. 正确用法实例3. 纠正错误用法3.1 错误用法3.2 让 AddressSanitizer 告诉你错误3.3 解释 4. 总结 1. 目的 在读取 pgm 格式图像的 meta 信息时&#xff0c; 使用了 %2s 这个格式串&#xff0c; 之前不是很了解&#xff0c; 尝试后发现&#xff0c; 如果不小…

花上半小时帮你快速熟悉微服务架构

本文将介绍微服务架构和相关的组件&#xff0c;介绍他们是什么以及为什么要使用微服务架构和这些组件。本文侧重于简明地表达微服务架构的全局图景&#xff0c;因此不会涉及具体如何使用组件等细节。 要理解微服务&#xff0c;首先要先理解不是微服务的那些。通常跟微服务相对…

读发布!设计与部署稳定的分布式系统(第2版)笔记02_停飞的代码异常

1. 以前“计划内的停机”很正常&#xff0c;现在则不被接受 2. 高可用性架构 2.1. CF系统不会遇到任何常见的单点失效问题 2.1.1. 硬件的每一部分都有冗余 2.1.1.1. CPU 2.1.1.2. 驱动器 2.1.1.3. 网卡 2.1.1.4. 电源 2.1.1.5. 网络交换机 2.1.1.6. 风扇 2.1.2. 为了…

Redis哨兵模式的配置

1.环境准备 master节点1个slave节点2个sentinel【哨兵】节点3个redis版本5.0.3操作系统&#xff1a;Centos7 2.主从节点配置 创建redis-conf目录&#xff0c;此目录用于存放主从节点的配置文件 复制redis.conf&#xff0c;然后创建三个配置文件&#xff1a;redis-6379.conf&…

循环缓冲题目

题目&#xff1a;一环形缓冲区由 6 个缓冲区 0~5 组成&#xff0c;其中 Full 表示装满数据的缓冲区&#xff0c;Empty 表示空缓冲区。按照顺时针方向&#xff0c;指针 Pf 指向第一个 “满” 缓冲区&#xff0c;指针 Pe 指向第一个 “空” 缓冲区。进程 In 在 Pe 指示下不断向 E…

XSS数据接收网站——XSS在线平台

文章目录 前言使用步骤1、进入到xss在线平台主页2、创建项目3、生成攻击poc4、查看返回结果 前言 平台的网址是&#xff1a; 链接: XSS在线平台 使用步骤 1、进入到xss在线平台主页 2、创建项目 我的项目&#xff0c;点击创建&#xff0c;项目名称和描述随便填&#xff0c;…

Docker安装和使用,Docker拉取Mysql.

Docker Unbuntu安装dockerdocker的相关操作开启docker服务查看镜像搜索镜像拉取镜像删除镜像运行容器查看容器停止运行容器重新运行容器删除容器构建一个Docker镜像登陆Dockerhub提交镜像到dockerhub退出dockerhub进入正在运行的容器的交互式终端其他docker操作 docker拉取mysq…

qemu arm Linux 环境测试交叉编译的 glib 库 测试用例 tests

环境搭建 ubuntu 20.04 arm 平台交叉编译 glib 库 交叉编译 glib 库 glib 库 本身带有大量的测试用例 tests&#xff0c;分别在 glib 各个模块目录下的 tests 目录&#xff0c;如果是 ARM Linux 平台的交叉编译&#xff0c;可以开启 installed_tests 选项 开启 glib tests 测…

2.pixi.js编写的塔防游戏(类似保卫萝卜)-场景编辑器

游戏说明 一个用pixi.js编写的h5塔防游戏&#xff0c;可以用electron打包为exe&#xff0c;支持移动端&#xff0c;也可以用webview控件打包为app在移动端使用 环境说明 cnpm6.2.0 npm6.14.13 node12.22.7 npminstall3.28.0 yarn1.22.10 npm config list electron_mirr…

一种正弦信号叠加高频噪声的信号基频率准确测量方法

1.问题 当信号叠加有高频噪声时&#xff0c;特别是类似有变频器这类强干扰源存在的情况下&#xff0c;如何测得信号的准确频率&#xff0c;是个问题。FFT要求长时间采样&#xff0c;对于嵌入式应用&#xff0c;采样点数和时间消耗都是个问题。而即使用示波器的波形叠加功能&…

Debian12 U盘安装

今天买了一个蓝牙适配器&#xff0c;想着在我的Centos7上把这个蓝牙使用起来&#xff0c;但遗憾的是即使经过淘宝客服的远程操作也无法正常使用起来&#xff0c;原因是我的Centos版本太低&#xff0c;有些头文件缺失内容导致编译不过&#xff0c;然后蓝牙驱动无法正常安装。在客…

【八】spring boot集成数据库连接池druid

spring boot集成数据库连接池druid 最近在进行程序优化的过程中发现程序瓶颈在数据库连接这块&#xff0c;于是开始研究怎么对数据库连接池参数进行调优&#xff0c;在这个过程中发现很多人使用druid很不规范&#xff0c;经常会出现导入的包和配置参数不对应的情况&#xff0c;…

Mybatis-Plus《学习笔记(22版尚硅谷)》

一、MyBatis-Plus 1.简介 MyBatis-Plus (opens new window)&#xff08;简称 MP&#xff09;是一个 MyBatis (opens new window)的增强工具&#xff0c;在 MyBatis 的基础上只做增强不做改变&#xff0c;为简化开发、提高效率而生。 我们的愿景是成为 MyBatis 最好的搭档&…

【SpringCloud入门】-- Ribbon入门

1.什么是Ribbon&#xff1f; Ribbon就是netflix公司的一个开源项目&#xff0c;主要功能是提供客户端负载均衡算法和服务调用。Ribbon客户端组件提供了完善的配置项&#xff0c;如连接超时&#xff0c;重试等等。Ribbon作为服务消费者的负载均衡器&#xff0c;有两种使用方式&…

LeetCode 2481. Minimum Cuts to Divide a Circle【数学,几何】简单

本文属于「征服LeetCode」系列文章之一&#xff0c;这一系列正式开始于2021/08/12。由于LeetCode上部分题目有锁&#xff0c;本系列将至少持续到刷完所有无锁题之日为止&#xff1b;由于LeetCode还在不断地创建新题&#xff0c;本系列的终止日期可能是永远。在这一系列刷题文章…

AMD——CPU微架构分析

一、SoC架构 1.1 整体架构 Zeppelin 参考链接&#xff1a;wikichip: Zeppelin 通过infinity fabric总线将单die分成多die的SoC架构&#xff0c;每个Die包含两个CPU核&#xff08;CCX&#xff09;、2各DDR通道、USB、低功耗IO以及多个IFOP和IFIS serdes接口。 如下所述中&…

【Python 随练】三数字排序

题目&#xff1a; 输入三个整数 x, y, z&#xff0c;请按照从小到大的顺序输出这三个数。 简介&#xff1a; 在本篇博客中&#xff0c;我们将使用Python代码解决一个简单的排序问题&#xff1a;如何将输入的三个整数按照从小到大的顺序进行排序并输出。我们将提供问题的解析…