CSS布局中的定位

news2024/11/18 5:35:00

一、position

1.static

position: static;  默认值,没有定位

2 .relative

相对定位:相对自身原来的位置进行偏移

偏移设置:top、left、right、bottom

相对定位元素的规律:

  • 设置相对定位的盒子会相对于它原来的位置,通过指定的偏移,到达新的位置
  • 设置相对定位的盒子仍然在标准的文档流中,它对父级盒子和相邻的盒子没有任何的影响。
  • 设置相对定位的盒子原来的位置会被保留下来
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>01.relative相对定位</title>
    <style>
        div{
            margin: 10px;  /*上下左右的间距为10px*/
            padding: 5px;  /*内边距是5px*/
            line-height: 25px;
        }
        #father{
            border: 1px #666 solid;
        }
        #first{
            background-color: #f2bb6f;
            border: 1px #B55a00 dashed;
            position: relative;  /*relative表示相对定位,定位的参照物是:自己原来的位置*/
            bottom: -20px;      /*定位会涉及到4个方向,最多我们只需要2个方向即可,top/bottom   left/right,其中他们表示距离哪里多少像素*/
            left: 20px;
        }
        #second{
            background-color: #003580;
            border: 1px #0000A8 dashed;
        }

        #third{
            background-color: #f3f3f3;
            border: 1px #395e4f dashed;
        }
        
    </style>
</head>
<body>
    <div id="father">
        <div id="first">第一个盒子</div>
        <div id="second">第二个盒子</div>
        <div id="third">第三个盒子</div>
    </div>
</body>
</html>

在这里插入图片描述

2.1浮动元素设置相对定位

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>01.relative相对定位</title>
    <style>
        div{
            margin: 10px;  /*上下左右的间距为10px*/
            padding: 5px;  /*内边距是5px*/
            line-height: 25px;
        }
        #father{
            border: 1px #666 solid;
        }
        #first{
            background-color: #f2bb6f;
            border: 1px #B55a00 dashed;
            position: relative;
            right: 20px;
            bottom: 20px;
        }
        #second{
            background-color: #003580;
            border: 1px #0000A8 dashed;
            float: right;  /*向右浮动*/
            position: relative;
            left: 20px;
            top:-20px;
        }

        #third{
            background-color: #f3f3f3;
            border: 1px #395e4f dashed;
        }
        
    </style>
</head>
<body>
    <div id="father">
        <div id="first">第一个盒子</div>
        <div id="second">第二个盒子</div>
        <div id="third">第三个盒子</div>
    </div>
</body>
</html>

2.2相对定位练习

在这里插入图片描述

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>04相对定位练习</title>
    <style>
        #box{
            width: 300px;
            height: 300px;
            border: 2px solid red;
            padding: 10px;
        }
        a{
            display: block; /*设置为块级元素*/
            width: 100px;
            height: 100px;
            background: #ff88fd;
            color: #fff;
            text-decoration: none;
            text-align: center;  /*水平居中*/
            line-height: 100px;  /*设置行高,垂直居中*/
        }
        a:hover{
            background: #0099ff;
        }
        #box a:nth-of-type(2){
            position: relative;
            left: 200px;
            top: -100px;

        }
        #box a:nth-of-type(4){
            position: relative;
            left: 200px;
            bottom: 100px;

        }
        #box a:nth-of-type(5){
            position: relative;
            left: 100px;
            bottom: 300px;

        }

    </style>
</head>
<body>
    <div id="box">
        <a href="#">链接1</a>
        <a href="#">链接2</a>
        <a href="#">链接3</a>
        <a href="#">链接4</a>
        <a href="#">链接5</a>
    </div>
</body>
</html> 	

3.absolute

绝对定位:偏移设置可以left、right、top、bottom

相对于最近的上一个已经定位的元素发生位置的变化

绝对定位小结:

  • 使用了绝对定位的元素以它最近的一个已经定位的祖先元素为基准进行偏移
  • 如果没有已经定位的祖先元素,会以浏览器窗口为基准进行定位
  • 绝对定位的元素从标准文档流中脱离,这意味着他们对其它的元素的定位不会造成影响
  • 元素位置发生偏移后,它原来的位置不会被保留下来的

经验:设置了绝对定位但是没有设置偏移量的元素将保持在它原来的位置。在网页制作中可以用于需要使某个元素脱离标准,而仍然希望他在原来位置的情况

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>05.绝对定位</title>
    <style>
        div{
            margin: 10px;  /*上下左右的间距为10px*/
            padding: 5px;  /*内边距是5px*/
            line-height: 25px;
        }
        #father{
            border: 1px #666 solid;
            position: relative;  /*将大的盒子设置为相对定位*/
        }
        #first{
            background-color: #f2bb6f;
            border: 1px #B55a00 dashed;
            position: absolute;  /*绝对定位*/
            bottom: 20px;
            left: 30px;
        }
        #second{
            background-color: #003580;
            border: 1px #0000A8 dashed;
        }

        #third{
            background-color: #f3f3f3;
            border: 1px #395e4f dashed;
        }
        
    </style>
</head>
<body>
    <div id="father">
        <div id="first">第一个盒子</div>
        <div id="second">第二个盒子</div>
        <div id="third">第三个盒子</div>
    </div>
</body>
</html>

3.1练习

在这里插入图片描述

需求:

  • 大盒子宽:430px 高:130px,相对定位
  • 大盒子中有一张图片和无序列表,无序列表就通过绝对定位来实现
  • li:左浮动,margin-right:5px,宽20px,高20px ,边框1px #666 solid ,文本居中,文字大小12px

position: relative; /将大的盒子设置为相对定位/

position: absolute; /绝对定位/

top、bottom、left、right

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>06轮播广告.html</title>
    <style>
        *{
            margin: 0;
            padding: 0;
        }
        #adverImg{
            width: 430px;
            height: 130px;
            position: relative; /*相对定位*/
            margin: 10px;
        }
        #adverImg:after{
            content: "";
            display: block;
            clear: both;
        }
        #number{
            position: absolute; /*绝对定位*/
            bottom: 2px;
            right: 5px;
        }
        #number ul{
            list-style: none;
        }
        #number li {
            float: left;
            width: 20px;
            height: 20px;
            border: 1px #666 solid;
            text-align: center;
            line-height: 20px;
            margin-right: 5px;
            background: #fff;
            font-size: 12px;
        }
    </style>
</head>
<body>
    <div id="adverImg">
        <img src="image/adver-01.jpg" alt="">
        <div id="number">
            <ul>
                <li>1</li>
                <li>2</li>
                <li>3</li>
                <li>4</li>
                <li>5</li>
            </ul>
        </div>
    </div>
</body>
</html>

4.固定定位

fixed:设置偏移left、right、top、bottom

类似于绝对定位,不过区别在于定位的基础不是祖先元素,而是浏览器窗口

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>07固定定位</title>
    <style>
        body{
            height: 1500px;
        }
        div:nth-of-type(1){  /*第一个div*/
            width: 100px;
            height: 100px;
            background: red;
            position: absolute;
            right: 0;
            bottom: 0;
        }
        div:nth-of-type(2){
            width: 50px;
            height: 50px;
            background: yellow;
            position: fixed;  /*固定定位*/
            right: 0;
            bottom:0;
        }
    </style>
</head>
<body>
    <div>div1</div>
    <div>div2</div>
</body>
</html>

5. 定位小结

  • 相对定位
    • 特性:
      • 相对于自己初始的位置来定位
      • 元素位置发生偏移后,它原来的位置会被保留下来
      • 层级提高,可以把标准文档流中的元素及浮动元素盖在下面
    • 使用场景:
      • 相对定位一般情况下很少自己单独使用,都是配合绝对定位来使用的,为绝对定位创造定位父级而又不设置偏移
  • 绝对定位
    • 特性:
      • 绝对定位是相对于它的定位父级的位置来定位的。如果没有设置父级定位,则相对于浏览器窗口来定位
      • 元素位置发生偏移后,原来的位置不会被保留
      • 层级提高,可以把标准文档流中的元素及浮动元素盖在下面
      • 设置绝对定位的元素脱离文档流的
    • 使用场景:
      • 一般情况下,绝对定位都能适用。如:下拉菜单、焦点轮播、弹出数字气泡,特别花边场景
  • 固定定位
    • 特性:
      • 相对于浏览器窗口来定位的
      • 偏移量不会随滚动条的移动而移动
    • 使用场景:
      • 一般在网页中被用在窗口左右两边的固定广告,返回顶部的图标、吸顶导航栏等等

二、z-index

知识点

z-index:调整元素定位时重叠层的上下位置

  • z-index属性值:整数,默认值是0
  • 设置postion属性时,z-inidex属性可以设置各元素的重叠高低关系
  • z-index数值越大九位于值小的上方

透明度

属性说明举例
opacity:xx的值为0~1,越小就越透明opacity:0.5;
filter:alpaha(opacity=x)x的值为0~100,越小就越透明filter:alpaha(opacity=50)
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>08z-index</title>
    <style>
        *{margin: 0; padding: 0;}
        ul li{
            list-style: none;
            line-height: 25px;
        }
        #content{
            width: 331px;
            padding: 5px;
            margin: 5px;
            border: 1px #999 solid;
            font-size: 12px;
        }
        #content ul {
            position: relative;
        }
        #content .tipText, #content .tipBg{
            position: absolute;
            top: 100px;
            width: 331px;
            height: 25px;
        }
        #content .tipText{
            text-align: center;
            color: #fff;
            z-index: 1;
        }
        #content .tipBg{
            background: #000;
            opacity: 0.4; 
            /* filter: alpha(opacity=40); */
        }
    </style>
</head>
<body>
    <div id="content">
        <ul>
            <li><img src="image/maple.jpg" alt=""></li>
            <li class="tipText">金秋魅力&#8226;相约共赏香山红叶</li>
            <li class="tipBg"></li>
            <li>时间:11月16日 星期六 8:30</li>
            <li>地点:朝阳区西大望路珠江帝景K区正门前集合</li>
        </ul>
    </div>
</body>
</html>

小结

  • 网页中的元素都含有两个堆叠级别
    • 未设置绝对定位时所处的环境,z-index都是0
    • 设置了绝对定位时所处的堆叠环境,此时层的位置由z-index的值来决定
  • 改变设置绝对定位和没有设置绝对定位的层的上下堆叠顺序,只需要台哦正定位层z-index的值就可以了

三、总结

在这里插入图片描述

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

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

相关文章

Nature数据库介绍及个人获取Nature文献下载途径

Springer Nature集团是一家全球领先的从事科研、教育和专业出版的机构&#xff0c;也是世界上最大的学术图书出版公司&#xff0c;同时出版全球最具影响力的期刊&#xff0c;也是开放获取领域的先行者。Springer Nature在2015年由Nature出版集团&#xff08;Nature Portfolio&a…

JS加密=JS混淆?(JS加密、JS混淆,是一回事吗?)

JS加密、JS混淆&#xff0c;是一回事吗&#xff1f; 是的&#xff01;在国内&#xff0c;JS加密&#xff0c;其实就是指JS混淆。 1、当人们提起JS加密时&#xff0c;通常是指对JS代码进行混淆加密处理&#xff0c;而不是指JS加密算法&#xff08;如xor加密算法、md5加密算法、…

正点原子——DS100示波器操作手册

目录 基础按键&#xff1a; 快捷键 主界面&#xff1a; 垂直设置&#xff1a; 通道设置&#xff1a; 探头比列&#xff1a; 垂直档位&#xff1a; 垂直偏移&#xff1a; 幅度单位&#xff1a; 水平设置&#xff1a; 触发方式&#xff1a; 测量和运算: 光标测量&am…

面试题:MySQL你用过WITH吗?领免费激活码

感谢Java面试教程的Java多线程文章&#xff0c;点击查看>原文 Java面试教程&#xff0c;发mmm116可获取IDEA-jihuoma 在MySQL中&#xff0c;WITH子句用于定义临时表或视图&#xff0c;也称为公共表表达式&#xff08;CTE&#xff09;。它允许你在一个查询中定义一个临时结果…

二叉搜索树 K模型 和 KV模型

&#x1f33b;个人主页&#xff1a;路飞雪吖~ ✨专栏&#xff1a;C/C 目录 一、二叉搜索树&#xff08;K模型&#xff09;的模拟实现 &#x1f31f;二叉搜索树的概念 &#x1f31f;二叉搜索树的操作 &#x1f320;二叉搜索树的查找 &#x1f320;二叉搜索树的插入 &#x…

Docker安装与应用

前言 Docker 是一个开源的应用容器引擎&#xff0c;基于 Go 语言开发。Docker 可以让开发者打包他们的应用以及依赖包到一个轻 量级、可移植的容器中&#xff0c;然后发布到任何流行的 Linux 机器上&#xff0c;也可以实现虚拟化。容器是完全使用沙箱机制&#xff0c;相互 之间…

《程序猿之Redis缓存实战(1) · 基础知识》

&#x1f4e2; 大家好&#xff0c;我是 【战神刘玉栋】&#xff0c;有10多年的研发经验&#xff0c;致力于前后端技术栈的知识沉淀和传播。 &#x1f497; &#x1f33b; CSDN入驻不久&#xff0c;希望大家多多支持&#xff0c;后续会继续提升文章质量&#xff0c;绝不滥竽充数…

OpenGL ES 绘制一个三角形(2)

OpenGL ES 绘制一个三角形(2) 简述 本节我们基于Android系统&#xff0c;使用OpenGL ES来实现绘制一个三角形。在OpenGL ES里&#xff0c;三角形是一个基础图形&#xff0c;其他的图形都可以使用三角形拼接而成&#xff0c;所以我们就的案例就基于这个开始。 在Android系统中…

添加vscode插件C/C++ snippets,快速生成LVGL .c/.h文件模版

文章目录 一、安装插件二、在安装目录下添加c.json和cpp.json文件①在 C:/Users/yourname/AppData/Roaming/Code/User/snippets/ 目录下创建 c.json 并填入如下内容&#xff1a;②在 C:/Users/yourname/AppData/Roaming/Code/User/snippets/ 目录下创建 cpp.json 并填入如下内容…

SQL学习1

24.9.28学习目录 一.数据库1.SQL语句基础2.匹配条件 一.数据库 对于嵌入式的数据库&#xff0c;其使用的是SQLite这种小型数据库&#xff1b; 在ubuntu中的下载方法 //字符界面 sudo apt-get install sqlite3//图形界面 sudo apt-get install sqlitemanSQLite特点&#xff1a…

windows系统中后台运行java程序

在windows系统中后台运行java程序&#xff0c;就是在启动java程序后&#xff0c;关闭命令行行窗口执行。 1、命令行方式 命令行方式运行java程序 启动脚本如下&#xff1a; echo off start java -jar app.jar exit启动后的结果如下 这种方式下&#xff0c;会马上启动一个命…

【RocketMQ】RocketMQ发送不同类型消息

&#x1f3af; 导读&#xff1a;本文介绍了RocketMQ消息队列系统中的几种消息发送模式及其应用场景&#xff0c;包括同步消息、异步消息以及事务消息。同步消息确保了消息的安全性&#xff0c;但牺牲了一定的性能&#xff1b;异步消息提高了响应速度&#xff0c;适用于对响应时…

搬砖6、Python函数和模块的使用

函数和模块的使用 在讲解本章节的内容之前&#xff0c;我们先来研究一道数学题&#xff0c;请说出下面的方程有多少组正整数解。 事实上&#xff0c;上面的问题等同于将8个苹果分成四组每组至少一个苹果有多少种方案。想到这一点问题的答案就呼之欲出了。 可以用Python的程序来…

人工智能开发实战照片智能搜索功能实现

内容提要 项目分析预备知识项目实战 一、项目分析 1、提出问题 随着人民生活水平的提高和手机照相功能的日趋完美&#xff0c;我们不经意中拍摄了很多值得回忆的时刻&#xff0c;一场说走就走的旅行途中也记录下许多令人心动的瞬间&#xff0c;不知不觉之中&#xff0c;我们…

Time-MoE : 时间序列领域的亿级规模混合专家基础模型

Time-MoE : 时间序列领域的亿级规模混合专家基础模型 时间序列预测一直是量化研究和工业应用中的重要课题。随着深度学习技术的发展&#xff0c;大规模预训练模型在自然语言处理和计算机视觉领域取得了显著进展&#xff0c;但在时间序列预测领域&#xff0c;这些模型的规模和运…

【归回预测】归回预测│PSO-ELM与标准ELM多输入预测对比源代码

摘要 本文比较了基于粒子群优化&#xff08;PSO&#xff09;和标准极限学习机&#xff08;ELM&#xff09;算法的电力负荷多输入预测模型。利用真实电力负荷数据集&#xff0c;对两种方法的预测性能进行了全面的评估&#xff0c;使用了均方误差&#xff08;MSE&#xff09;、平…

【文心智能体 | AI大师工坊】如何使用智能体插件,完成一款旅游类智能体的开发,来体验一下我的智能体『​​​​​​​厦门CityWalk』

目录 1.1、智能体运行效果 1.2、创作灵感来源 1.3、如何制作智能体 1.4、可能会遇到的几个问题 1.5、快速调优指南 『厦门CityWalk&#x1f680;』我的优质智能体&#xff1a;https://0nxj3k.smartapps.baidu.com/?_swebfr1&_swebScene3621000000000000 在当今这个全…

青动CRM V3.2.1

全面解决企业销售团队的全流程客户服务难题旨在助力企业销售全流程精细化、数字化管理&#xff0c;全面解决企业销售团队的全流程客户服务难题&#xff0c;帮助企业有效盘活客户资源、量化销售行为&#xff0c;合理配置资源、建立科学销售体系&#xff0c;提升销售业绩。标准授…

【宝藏妙招,轻松拿捏!】如何防止U盘资料被复制?U盘文件防拷贝的五种措施!

小李&#xff1a;“小张&#xff0c;你上次借我的U盘还回来的时候&#xff0c;我总觉得里面的资料好像被人动过了&#xff0c;有没有什么办法可以防止U盘里的资料被复制啊&#xff1f;” 小张&#xff1a;“当然有啦&#xff01;现在数据安全这么重要&#xff0c;防止U盘资料被…

贪心的思想

803.区间合并 给定 n 个区间 [li,ri]&#xff0c;要求合并所有有交集的区间。 注意如果在端点处相交&#xff0c;也算有交集。 输出合并完成后的区间个数。 例如&#xff1a;[1,3] 和 [2,6] 可以合并为一个区间 [1,6]。 输入格式 第一行包含整数 n。 接下来 n 行&#x…