一、定位
1. 可以让元素自由的摆放在网页的任意位置
2. 一般用于 盒子之间的层叠情况
1.1 定位常见的应用场景
解决盒子之间的层叠问题
让盒子始终固定在屏幕的某个位置
1.2 定位属性position


1.3 相对定位
占有原来的位置
不改变标签的显示模式
改变位置参照原来的位置
如果left/right都有以left为准,如果top和bottom都有以top为准
1.4 绝对定位
先找已经定位的父级,如果有这样的父级就以这个父级为参照物进行定位;
有父级但父级没有定位,以浏览器窗口为参照物进行定位
不占有原来的位置
改变标签的显示模式:行内块
子绝父相:子级绝对定位,父级(祖先即可)相对定位,子级就可以在父级内改变位置
1.5 定位居中
<!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: absolute;
/* 盒子的左边缘线移动到浏览器中间,但整体偏右 */
left:50%;
/* 盒子向左侧调整自己宽度的一半 */
margin-left: -150px;
width: 300px;
height: 300px;
background-color: pink;
top:50%;
margin-top: -150px;
}
</style>
</head>
<body>
<div class="box"></div>
</body>
</html>
/* 添加这个属性可以不用计算margin调整的距离,直接改变宽高即可 */
transform: translate(-50%,-50%);
1.6 固定定位
position: fixed;
相对于浏览器的位置进行移动,在页面中保持相对不动的位置
脱标,不占位置
改变位置参考浏览器窗口
具备行内块特点
1.7 元素层级问题
- 不同布局方式元素的层级关系:
标准流 < 浮动 < 定位
- 不同定位的层级关系:
相对、绝对、固定默认层级相同
默认情况下html中写在下面的元素层级更高,会覆盖上面的元素
z-index:整数;取值越大显示越靠上,z-index默认为0(配合定位才生效)
二、装饰
2.1 垂直对齐方式

基线对齐:当图片和文字在一行时,肉眼可见并不对齐,是由于浏览器默认的基线对齐方式造成的
浏览器默认把行内和行内块标签当成文字处理,默认基线对齐
解决办法↓
属性名:vertical-align
属性值:
| basline | 基线对齐 |
| top | 顶部对齐 |
| middle | 中部对齐 |
| bottom | 底部对齐 |
子级在父级居中:给父级设置行高(等于高),子级设置vertical-align:middle;
2.2 光标类型
设置鼠标光标在元素上的显示样式
属性名:cursor
属性值:
|
default | 默认值,箭头 |
| pointer | 小手效果,可以点击 |
| text | 工字形,提示用户可以选择文字 |
| move | 十字光标,提示用户可以移动 |
2.3 边框圆角
让盒子四个角变得圆润
属性名:border-radius
取值:数字+px/百分比
<!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{
margin: 50px auto;
width: 200px;
height: 200px;
background-color: pink;
/* 一个值表示四个角相同 */
/* border-radius: 10px; */
/* 左上 右上 左下 右下 */
/* border-radius: 10px 20px 40px 80px; */
/* 没写的看对角 */
border-radius: 10px 40px 80px;
}
.circle{
/* 画一个圆 盒子必须是正方形 边框圆角为盒子宽高的一半 */
margin: 50px auto;
width: 200px;
height: 200px;
background-color: orange;
border-radius: 100px;
}
.jiaonang{
/* 胶囊按钮 盒子是长方形 圆角是盒子高度的一半 */
margin: 50px auto;
width: 200px;
height: 100px;
border:1px solid red;
border-radius: 50px;
line-height: 100px;
text-align: center;
}
</style>
</head>
<body>
<div class="box"></div>
<div class="circle"></div>
<div class="jiaonang">按钮</div>
</body>
</html>

2.4 overflow溢出部分显示效果
溢出部分:盒子内容部分超出盒子范围的区域
属性名:overflow
属性值:
| visible |
默认,溢出部分可见 |
| hidden | 溢出部分不可见 |
| scroll | 无论是否溢出都显示滚动条 |
| auto | 根据是否溢出,自动显示或隐藏滚动条 |
2.5 元素本身隐藏
属性:
visiblity:hidden;(占位隐藏)
display:none;(不展位隐藏)
<!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>
* {
margin: 0;
padding: 0;
}
/* 因为有通栏:占满一行的边框,所以需要有一个通栏:占满一行的盒子 */
.nav {
height: 40px;
border-bottom: 1px solid #ccc;
}
/* 因为ul中所有的内容都是在网页的宽度固定并且水平居中的盒子内部,所以设置ul为宽度固定并且水平居中的效果(后面项目中所用到的版心) */
ul {
list-style: none;
width: 1200px;
margin: 0 auto;
}
ul li {
float: left;
width: 20%;
height: 40px;
border-right: 1px solid #ccc;
/* 自动内减 */
box-sizing: border-box;
text-align: center;
line-height: 40px;
}
ul .last {
border-right: none;
}
ul li a {
/* a标签默认是行内元素,宽高由内容撑开,并且无法设置宽高,此时默认情况用户只能点击文字区域才能调整 */
/* 如果把a标签转换成块级元素,此时可以设置宽高,会让a标签范围更大,用户可以点击调整的区域也越大 */
display: block;
/* 宽度不设置块元素会默认占满一行 */
height: 40px;
text-decoration: none;
color: #000;
}
ul li .app {
position: relative;
}
.code {
position: absolute;
left: 50%;
top: 41px;
display: none;
transform: translate(-50%);
}
.nav li a:hover img{
display: block;
}
</style>
</head>
<body>
<!-- 导航 -->
<div class="nav">
<ul>
<li><a href="#">我要投资</a></li>
<li><a href="#">平台介绍</a></li>
<li><a href="#">新手专区</a></li>
<!-- 因为用户鼠标放在二维码图片上也能跳转,所以证明img也是在a的范围内,因此把img写在a标签的内部 -->
<li><a href="#" class="app">手机微金所 <img src="./code.jpg" alt="" class="code"> </a></li>
<li class="last"><a href="#">个人中心</a></li>
</ul>
</div>
</body>
</html>
2.6 元素整体透明度
让某个标签里的所有元素一起透明
属性名:opacity
属性值:0-1之间的数字,0完全透明,1完全不透明
本文介绍了CSS中的定位技术,包括相对定位、绝对定位、固定定位及其应用场景,如解决盒子层叠、元素居中等。此外,还讨论了装饰属性,如垂直对齐、光标类型、边框圆角、overflow效果以及元素的隐藏方法。


被折叠的 条评论
为什么被折叠?



