Css基础——Css的定位

news2024/11/18 17:51:14

1、定位模式

1.1、静态定位 static

1.2、相对定位 relative

postion:relative:

1、是相对于自己本来的位置进行的边偏移

2、它不会脱标,仍然会在它文件流时候应有的位置

html:

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <link rel="stylesheet" href="./css/style.css">
</head>

<body>
    <div class="first"></div>
    <div class="second"></div>
</body>

</html>

css:

.first {
    width: 300px;
    height: 300px;
    background-color: red;
    position: relative;
    top: 20px;
    left: 30px;
}

.second {
    width: 200px;
    height: 200px;
    background-color: blue;
    position: static;
}

效果图:

1.3、绝对定位 absolute

position: absolute

1、它的绝对是相较于祖先元素来定的,若其没有祖先元素或者是祖先元素没有定位的时候,就以浏览器为准定位

2、若祖先元素都有定位(相对定位,绝对定位、固定定位)的时候,就会以最近一级有定位(相对定位,绝对定位、固定定位)的祖先元素为准进行定位

3、绝对定位的元素会脱标

html:

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <link rel="stylesheet" href="./css/style.css">
</head>

<body>
    <div class="first">
        <div class="second">
            <div class="third"></div>
        </div>
    </div>

</body>

</html>

css:

.first {
    width: 300px;
    height: 300px;
    background-color: red;
    position: relative;
    top: 20px;
    left: 30px;
}

.second {
    width: 200px;
    height: 200px;
    background-color: greenyellow;
    /* position: relative; */
}

.third {
    width: 100px;
    height: 100px;
    background-color: gold;
    position: absolute;
    top: 30px;
    left: 30px;
}

效果图: 

解释说明:

因为third盒子(黄色)采用的定位方法是绝对定位,所以它会想外层逐渐寻找有定位(相对定位、绝对定位、固定定位)的祖先元素去进行定位,又因为.second盒子没有采用定位,所以third盒子继续向外层寻找有定位的祖先元素(相对定位、绝对定位、固定定位)去完成自身的定位,然后寻找到first盒子,first盒子的定位方式是相对排序,所以可以满足third盒子的满足需要,所以third盒子以first盒子为准,进行了top: 30px;left: 30px的定位

1.4、固定定位 fixed

position: fixed;

1、是以浏览器的可视窗口为参考点移动元素

2、跟父元素没有关系、不随滚动条滚动

3、会脱标

小拓展:利用position: fixed;做一个紧贴网页版心的导航栏

html:

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <link rel="stylesheet" href="./css/style.css">
</head>

<body>
    <div class="main"></div>
    <div class="nav">导航栏</div>
</body>

</html>

css:

.main {
    width: 1400px;
    height: 2200px;
    background-color: skyblue;
    margin: auto;
}

.nav {
    position: fixed;
    width: 100px;
    height: 100px;
    top: 30px;
    left: 50%;
    /* 先走浏览器页面宽的一半 */
    margin-left: 700px;
    /* 再走主版块宽的一半 */
    background-color: pink;
}

 效果图:

1.5、粘性定位 sticky

position: sticky

1、以浏览器的可视窗口为参考的进行移动

2、不脱标

3、必须至少有left、right、top、bottom其中一个属性才生效

html:

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <link rel="stylesheet" href="./css/style.css">
</head>

<body>
    <div class="header">我是页面顶端的导航栏</div>
    <p>1</p>
    <p>2</p>
    <p>3</p>
    <p>4</p>
    <p>5</p>
    <p>6</p>
    <p>7</p>
    <p>8</p>
    <p>9</p>
    <p>10</p>
    <p>11</p>
    <p>12</p>
    <p>13</p>
    <p>14</p>
    <p>15</p>
    <p>16</p>
    <p>17</p>
    <p>18</p>
    <p>19</p>
    <p>20</p>
    <p>21</p>
    <p>22</p>
    <p>23</p>
    <p>24</p>
    <p>25</p>
    <p>26</p>
    <p>27</p>
    <p>28</p>
    <p>29</p>
    <p>30</p>
</body>

</html>

css:

.header {
    width: 1400px;
    height: 50px;
    margin: auto;
    margin-top: 70px;
    position: sticky;
    top: 10px;
    background-color: skyblue;
}

效果图:

2、定位的子绝父相

3、定位的总结

4、定位的叠放次序 z-index

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <link rel="stylesheet" href="./css/style.css">
</head>

<body>
    <div class="middle"></div>
</body>

</html>

5、定位的拓展应用

         5.1、绝对定位的盒子居中

通过加了绝对定位的盒子不能通过margin: 0 auto;达到水平居中效果

解决方法:

html

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <link rel="stylesheet" href="./css/style.css">
</head>

<body>
    <div class="middle"></div>
</body>

</html>

css:

.middle {
    width: 100px;
    height: 100px;
    background-color: hotpink;
    position: absolute;
    left: 50%;
    margin-left: -50px;
}

效果图:

反思:

同样也可以用下列代码实现垂直居中

position: absolute;
top: 50%;
margin-top: -50px;

 5.2、定位的特殊性

5.3、脱标的盒子不会触发外边距塌陷

浮动元素、绝对定位、固定定位的元素都不会触发外边距合并的问题

5.4、绝对定位、固定定位会完全压住盒子

浮动元素不同,只会压住它下面标准流的盒子,但是不会压住下面标准流盒子里面的文字( 图片);

box浮动的情况下:

box在绝对定位的情况下:

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

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

相关文章

【编程语言】C#语言相关知识

前言&#xff1a;我们在游戏开发的过程中&#xff0c;往往会通过游戏引擎结合编程语言的方式&#xff0c;来作为项目开发的手段。因此&#xff0c;了解相关语言的特性、发展和前沿知识&#xff0c;就显得相当必要。笔者这里结合自身的工作经验和学习心得&#xff0c;用简洁通俗…

南蛮图腾的题解

目录 原题描述&#xff1a; 题目描述 输入格式 输出格式 样例 Input 1 Output 1 Input 2 Output 2 Input 3 Output 3 样例解释 数据范围 主要思路&#xff1a; ACCode: 作者的灵魂拷问&#xff1a; 原题描述&#xff1a; 时间限制: 1000ms 空间限制: 524288kB 题目…

2024年,找工作不要太老实!胆子越大,涨薪越多!

又到了金三银四跳槽季。 送给大家一句话&#xff1a;“脸皮厚能吃肉&#xff0c;脸皮薄吃不着&#xff01;” 这句俗语可是大实话&#xff0c;在找工作的时候一样适用。 面试的多了你就会发现&#xff0c;脸皮厚、胆子大可能是帮你找到工作&#xff0c;找到好工作的最佳助力。…

安全知识分享域渗透

内网渗透思维导图 密码相关域渗透攻击思路DACL的应用NTLM 中继攻击滥用 ACE 内网渗透思维导图 专注于web漏洞挖掘、内网渗透、免杀和代码审计&#xff0c;感谢各位师傅的关注&#xff01;网安之路漫长&#xff0c;与君共勉&#xff01; 密码相关 域渗透攻击思路 常见攻击手法&a…

基于springboot+vue实现早餐店点餐系统项目【项目源码+论文说明】

基于springbootvue实现早餐店点餐系统演示 摘要 多姿多彩的世界带来了美好的生活&#xff0c;行业的发展也是形形色色的离不开技术的发展。作为时代进步的发展方面&#xff0c;信息技术至始至终都是成就行业发展的重要秘密。不论何种行业&#xff0c;大到国家、企业&#xff0…

ASP.Net实现玩具管理(三层架构,两项数据相乘)

目录 演示功能&#xff1a; 点击启动生成页面 步骤&#xff1a; 1、建文件 ​编辑 2、添加引用关系 3、根据数据库中的列写Models下的XueshengModels类 4、DAL下的DBHelper&#xff08;对数据库进行操作&#xff09; 5、DAL数据访问层下的service文件 6、BLL业务逻辑层…

计算机服务器中了faust勒索病毒怎么解密,faust勒索病毒解密工具流程

在互联网飞速发展的今天&#xff0c;越来越多的企业走向了数字化办公模式&#xff0c;许多企业开始利用网络计算机开展各项工作业务&#xff0c;网络也为企业的生产效率提供了极大便利&#xff0c;但网络中存在许多恶意威胁。近日&#xff0c;云天数据恢复中心接到许多企业的求…

【C++】NULL值在C、C++中的歧义

NULL实际是一个宏&#xff0c;在头文件stddef.h中是这么定义的&#xff1a; #ifndef NULL #ifdef __cplusplus #define NULL 0 #else #define NULL ((void *)0) #endif #endif从定义可以看出NULL可能是0&#xff0c;也可能是(void*)0&#xff0c;但C将NULL看做0&#xff0…

记一次用Arthas排查Redis连接数增加问题(附:redis连接池优化)

有一次生产环境发包后&#xff0c;发现redis连接数变多了&#xff0c;由于改的代码比较多&#xff0c;不确定是哪里出了问题。因此用Arthas来进行了一次排查。 项目比较多&#xff0c;有用到 jedis、lettuce、redisson 3种客户端。 项目用到的 SpringContextHolder 代码如下&…

视频剪辑大师:批量快进慢放,让你的视频瞬间生动起来!

在数字时代&#xff0c;视频已经成为我们生活中不可或缺的一部分。无论是工作中的演示、学习中的教程&#xff0c;还是娱乐中的短片、Vlog&#xff0c;我们都需要对视频进行精细的剪辑和处理&#xff0c;以呈现出最佳的效果。然而&#xff0c;面对大量的视频文件&#xff0c;如…

操作系统(1)——学习导论(Ⅲ)

目录 小程一言专栏链接: [link](http://t.csdnimg.cn/6grrU)本篇文章因内容需要&#xff0c;且依靠书中内容达不到小程想要的效果&#xff0c;so部分内容依赖其他网络资源 学习导论&#xff08;Ⅲ&#xff09;操作系统相关概念进程——Process线程——Thread调度——Scheduling…

【漏洞复现】Linksys E2000 position.js 身份验证绕过漏洞(CVE-2024-27497)

0x01 产品简介 Linksys E2000是一款由思科&#xff08;Cisco&#xff09;品牌推出的无线路由器&#xff0c;它是一款支持2.4GHz和5GHz双频段的无线路由器&#xff0c;用户可以避开拥挤的2.4GHz频段&#xff0c;独自享受5GHz频段的高速无线生活。 0x02 漏洞概述 Linksys E200…

编译Linux内核并修改版本号后缀为学号-Ubuntu22.04中编译安装Linux内核6.7.8

前言&#xff1a;实验课要求下载最新版本Linux内核并修改版本号&#xff0c;本人在Vmware中Ubuntu22.04中实现&#xff0c;花三天时间查阅大量网站资料。记录一下误打误撞成功的过程&#xff0c;希望对你们有帮助。 目录 一、常规安装步骤&猜想Ubuntu与gcc版本过低 二、安…

docker总结,一套搞定,常用命令,项目部署,jar包打包成镜像/容器

docker 归总 一、学习路线 1、学习视频&#xff08;黑马程序员&#xff09; &#xff08;https://www.bilibili.com/video/BV1HP4118797/?spm_id_from333.1007.top_right_bar_window_history.content.click&vd_source6acc7ed97919d92de048f2b1e5803427&#xff09; 2、…

python爬虫反反爬之图片验证

文章目录 发现宝藏一、ddddOcr&#xff08;针对图形验证码&#xff09;1. 工具介绍2. 安装及环境支持3. 识别示例14. 识别示例2 二、Tesseract&#xff08;标准OCR识别&#xff09;1. 工具介绍2. 配置系统环境3. 识别示例14. 识别示例23. 识别示例3 发现宝藏 前些天发现了一个…

C++ 队列

目录 队列的应用场景 1、429. N 叉树的层序遍历 2、 103. 二叉树的锯齿形层序遍历 3、662. 二叉树最大宽度 4、515. 在每个树行中找最大值 队列的应用场景 广度优先搜索&#xff08;BFS&#xff09;&#xff1a;队列是广度优先搜索算法的核心数据结构。在BFS中&#xff…

如何将应用一键部署至多个环境?丨Walrus教程

在 Walrus 平台上&#xff0c;运维团队在资源定义&#xff08;Resource Definition&#xff09;中声明提供的资源类型&#xff0c;通过设置匹配规则&#xff0c;将不同的资源部署模板应用到不同类型的环境、项目等。与此同时&#xff0c;研发人员无需关注底层具体实现方式&…

Redis精讲

redis持久化 RDB方式 Redis Database Backup file (redis数据备份文件), 也被叫做redis数据快照. 简单来说就是把内存中的所有数据记录到磁盘中. 快照文件称为RDB文件, 默认是保存在当前运行目录. [rootcentos-zyw ~]# docker exec -it redis redis-cli 127.0.0.1:6379> sav…

02- 使用Docker安装RabbitMQ

使用Docker安装RabbitMQ 下载安装镜像 方式一: 启动docker服务,然后在线拉取 # 在线拉取镜像 docker pull rabbitmq:3-management# 使用docker images查看是否已经成功拉取方式二: 从本地加载 ,将RabbitMQ上传到虚拟机中后使用命令加载镜像即可 docker load -i mq.tar启动M…

你必须要知道外贸独立站的那些事

导语 独立站&#xff0c;顾名思义就是具有独立域名的网站。对于跨境电商来说&#xff0c;独立站就是让他们脱离第三方束缚的一个平台。 简单来说就是自己建立一个属于自己的电商平台&#xff0c;然后上传商品出售&#xff0c;但是需要自己去做营销、做推广。 一、自建独立站的好…