01 CSS定位概念理解

01 标准流布局概念的理解

02 position属性

02 相对定位

依然在标准流中

应用场景: 在不影响其它元素的情况下,对当前元素进行微调

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
.text {
/* 相对定位: 相对元素自己原来的位置 */
position: relative;
left: 30px;
top: 50px;
}
</style>
</head>
<body>
<span>span元素</span>
<strong class="text">strong元素</strong>
<img src="../images/gouwujie01.jpg" alt="">
<div>div元素</div>
</body>
</html>

2.1 案例1

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
span {
position: relative;
font-size: 10px;
top: -8px;
}
</style>
</head>
<body>
<div>
3<span>2</span> + 2<span>3</span> = 17
</div>
</body>
</html>

2.2 案例2

梦幻西游使用背景的方法让图片的重要内容始终居中

<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
body {
margin: 0;
padding: 0;
} .box {
height: 489px;
overflow: hidden;
} .box img {
position: relative;
/* 先把图片移到最左边 */
left: -960px;
/* 再把图片移动包含块的一半{marigin-left的百分比是相对于包含块的} */
margin-left: 50%;
}
</style>
</head>
<body>
<div class="box">
<img src="./imgs/mhxy.jpg" alt="">
</div>
</body>
</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>
<style>
body {
margin: 0;
padding: 0;
} .box {
height: 489px;
overflow: hidden;
} .box img {
position: relative;
/* 先移动图片的一半(translate是相对于自己)*/
transform: translate(-50%);
/* 再把图片移动包含块的一半{marigin-left的百分比是相对于包含块的} */
margin-left: 50%;
}
</style>
</head>
<body>
<div class="box">
<img src="./imgs/mhxy.jpg" alt="">
</div>
</body>
</html>

03 固定定位

脱离标准流(相对于视口即可见区域)

使用固定定位前

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<span>span元素</span>
<img src="./imgs/gouwujie01.jpg" alt="">
<strong>strong元素</strong>
</body>
</html>

使用固定定位后(相当于把原来的元素拿走了,自己再决定放在哪里[用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>Document</title>
<style>
strong {
position: fixed;
}
</style>
</head>
<body>
<span>span元素</span>
<img src="./imgs/gouwujie01.jpg" alt="">
<strong>strong元素</strong>
</body>
</html>

3.1 案例1

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
.handle {
position: fixed;
right: 30px;
bottom: 30px; } .handle .item {
text-align: center;
width: 80px;
height: 40px;
color: #fff;
line-height: 40px;
background-color: brown;
border-radius: 8px;
cursor: pointer;
} .handle .item:hover {
background-color: red;
} .handle .top {
margin-bottom: 5px;
}
</style>
</head>
<body>
<div class="handle">
<div class="item top">顶部</div>
<div class="item bottom">底部</div>
</div>
</body>
</html>

04 绝对定位

脱离标准流(参考的是最临近的定位祖先元素如果没有找到这样的祖先元素,参考的是视口)

4.1 基本使用

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
.box .item1 {
position: relative;
width: 400px;
height: 400px;
background-color: green;
} .box .item1 > .item2 {
position: absolute;
right: 0;
bottom: 0;
width: 200px;
height: 200px;
background-color: red;
} .box .item1 > .item2 strong {
position: absolute;
left: 0;
bottom: 0;
}
</style>
</head>
<body>
<div class="box">
<div class="item1">
<div class="item2">
<strong>strong元素</strong>
</div>
</div>
</div>
</body>
</html>

05 position为absolute或fixed的元素的特点

代码案例

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
.box {
background-color: red;
}
/* 可以看到box这个元素直接在页面消失了,所以当设置元素为absolute它就不会向父元素汇报自己的宽度和高度了 */
.box .container {
position: absolute;
}
</style>
</head>
<body>
<div class="box">
<div class="container">div元素</div>
</div>
</body>
</html>

06 绝对定位让元素水平居中

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
.box {
position: relative;
width: 800px;
height: 300px;
background-color: red;
}
.container {
position: absolute;
width: 200px;
height: 100px;
left: 0;
right: 0;
bottom: 0;
margin: auto;
background-color: green;
}
</style>
</head>
<body>
<!-- 水平方向的公式: red box的宽度=绿色盒子的宽度+left+right+margin left + margin right -->
<div class="box">
<div class="container"></div>
</div>
</body>
</html>

07 绝对定位让元素垂直居中

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
.container {
position: relative;
width: 800px;
height: 300px;
background-color: green;
}
.box {
position: absolute;
width: 200px;
height: 100px;
background-color: red;
top: 0;
bottom: 0;
margin: auto;
}
</style>
</head>
<body>
<div class="container">
<div class="box"></div>
</div>
</body>
</html>

08 粘性定位

代码示例

09 z-index

11-CSS定位的更多相关文章

  1. 简单CSS定位瀑布流实现方法

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  2. UI自动化测试(二)浏览器操作及对元素的定位方法(xpath定位和css定位详解)

    Selenium下的Webdriver工具支持FireFox(geckodriver). IE(InternetExplorerDriver).Chrome(ChromeDriver). Opera( ...

  3. CSS 定位 (Positioning) 实例

    CSS 定位和浮动CSS 为定位和浮动提供了一些属性,利用这些属性,可以建立列式布局,将布局的一部分与另一部分重叠,还可以完成多年来通常需要使用多个表格才能完成的任务. 定位的基本思想很简单,它允许你 ...

  4. xpath定位和css定位对比

    xpath定位和css定位对比   实际项目中使用较多的是xpath定位和css定位.XPath是XML文档中查找结点的语法,换句话就是通过元素的路径来查找这个元素.xpath比较强大,而css选择器 ...

  5. vue—你必须知道的 js数据类型 前端学习 CSS 居中 事件委托和this 让js调试更简单—console AMD && CMD 模式识别课程笔记(一) web攻击 web安全之XSS JSONP && CORS css 定位 react小结

    vue—你必须知道的   目录 更多总结 猛戳这里 属性与方法 语法 计算属性 特殊属性 vue 样式绑定 vue事件处理器 表单控件绑定 父子组件通信 过渡效果 vue经验总结 javascript ...

  6. html5--6-33 CSS定位是什么

    html5--6-33 CSS定位是什么 一.总结 一句话总结: 1.常规文档流是一套体系,浮动是另外一套体系. 2.标签清除浮动之后会跑到常规文档流它本来的地方. 3.浮动是否占据常规文档流:应该不 ...

  7. css定位

    文档流 所谓的文档流,指的是元素排版布局过程中,元素会自动从左往右,从上往下的流式排列.并最终窗体自上而下分成一行行, 并在每行中按从左至右的顺序排放元素.脱离文档流即是元素打乱了这个排列,或是从排版 ...

  8. 常用的CSS定位,XPath定位和JPath定位

    CSS定位 举例 描述 div#menu id为menu的div元素 div.action-btn.ok-btn class为action-btn和ok-btn的div元素 table#emailLi ...

  9. div+css定位position详解

    div+css定位position详解 1.div+css中的定位position 最主要的两个属性:属性 absolute(绝对定位) relative(相对定位),有他们才造就了div+css布局 ...

  10. CSS 定位

    一.CSS 定位和浮动   它们代替了多年来的表格布局.   定位的思想很简单,相对于正常位置.相对于父元素.另一个元素甚至是浏览器窗口的位置.   浮动在 CSS1 中被首次提出.浮动不完全是定位, ...

随机推荐

  1. SQL server 批量删除表

    select 'drop table '+name+';' from sys.tables declare c cursor forselect NAME from sysobjects where ...

  2. 关于Git和Svn的区别

    关于Git 和 Svn 的选用,详细列出区别 Git 是分布式的,而 Svn 不是分布的; Git 把内容按元数据方式存储,而 SVN 是按文件; Git 没有一个全局版本号,而 SVN 有:目前为止 ...

  3. SAP集成技术(四)五种集成架构

    本文中,我们将介绍并解释五个主要的模型.我们主要区分直接集成.中间件导向集成以及两个一般的架构概念.直接集成(例如点对点集成)中的标准化很少,但中间件导向的拓扑(例如中心辐射型拓扑以及企业服务总线)追 ...

  4. CSP-S2023游记

    不知不觉也高二了呢,最后一年OI了. Day -?? 过了初赛.没什么难度. Day -4 模拟赛挂分. RP++. Day -3 模拟赛挂分. RP++. Day -2 没挂分--?换数据了,又挂了 ...

  5. 超轻量级的c#版基于文件的日志记录工具,可定制输出格式,可指定日志文件

    这是我自己个人编写的日志记录,主要使用在只需要记录日志,偶尔到文件中查看一下日志记录的情况.我自己写的一些服务之类的是使用了这个的,代码很少,使用很简单. 第一步 搜索和安装我的Nuget包 搜索和安 ...

  6. ssh秘钥对免密码登陆

    准备两台linux服务器 a和b , 在a上使用ssh命令登陆b服务器 , 并且不用 输入密码 1.在a服务器上,比如是root用户 ,进去/root/.ssh目录 ,没有就创建, 就是进入家目录的. ...

  7. Go-Zero自定义goctl实战:定制化模板,加速你的微服务开发效率(四)

    前言 上一篇文章带你实现了Go-Zero和goctl:解锁微服务开发的神器,快速上手指南,本文将继续深入探讨Go-Zero的强大之处,并介绍如何使用goctl工具实现模板定制化,并根据实际项目业务需求 ...

  8. ansible系列(24)--ansible的loop循环语句

    目录 1. loop循环语句 1.1 使用循环批量安装软件 1.2 使用循环批量启动服务 1.3 使用循环批量创建用户 1.4 使用循环批量拷贝文件 1. loop循环语句 在写 playbook 的 ...

  9. IDEA连接github

    在IDEA中添加github账号: File-->Settings-->Version Control-->GitHub 点击 + 号,添加账号可以选择账号密码登陆或者使用token ...

  10. vue特殊attribute-key

    官方说明:如果不使用 key,Vue 会使用一种最大限度减少动态元素并且尽可能的尝试就地复用相同类型元素的算法.而使用 key 时,它会基于 key 的变化重新排列元素顺序,并且会移除 key 不存在 ...