一、定位
- 网页常见布局:
- 标准流:块级元素独占一行 → 垂直布局,行内元素/行内块元素一行显示多个 → 水平布局
- 浮动: 可以让原本垂直布局的 块级元素变成水平布局
- 可以让元素自由的摆放在网页的任意位置, 一般用于盒子之间的层叠情况
- 定位方式
- 静态定位
{position:static;}
- 静态定位
静态定位就是之前标准流,不能通过方位属性进行移动,
之后说的定位不包括静态定位,一般特指后几种:相对、绝对、固定
- 相对定位{position:relative;}
相对定位的元素,不脱标,位置偏移之后还保留原来的位置
,位置偏移的时候,参考自身位置
- 绝对定位:{position:absolute;}
绝对定位的盒子脱标,不占据原来的位置
绝对定位的元素,如果所有的父元素都没有定位,它的位置偏移基于浏览器窗口
绝对定位的元素,如果父元素有定位,位置偏移参考离他最近的使用了定位的父元素
- 固定定位 {position:fixed;}
- 固定定位, 将盒子固定到页面的某个位置,页面滚动条滚动,元素不跟随滚动条滚动
1.脱标,不占据原来的位置
2.固定定位位置偏移基于浏览器可视窗口
- 子绝父相:
- 让子元素相对于父元素进行自由移动
- 子绝父相,子元素绝对定位,父元素相对定位, 不脱标,在标准流占位置,不会影响后边的元素,子元素位置移动参考父元素
如果父元素绝对定位,下边的大盒子会上来,造成布局的混乱 - 使用子绝父相水平垂直居中的操作
1.子绝父相
2.left:50%;
3.top:50%;
4.transform:translate(-50%,-50%);
- 绝对定位的盒子居中方法
- 向右走父元素宽度的一半,向左走自身宽度的一半,向下走父元素高度的一半,向上走自身高度的一半
margin: 0 auto 只对标准流设置了宽度的块元素水平居中有效
- 对盒子设置宽高,
position: absolute;
left: 0;
right: 0;
top: 0;
bottom: 0;
/* 这个技巧子元素必须设置宽高 */
margin: auto;
width: 177px;
height: 177px;
- 透明效果的实现
- rgba控制单颜色透明 a是alpha是透明, 取值范围是0-1, 0.5的0可以省略掉
- 控制元素整体透明度,取值范围0-1 , 0.5的0可以省略掉
- 元素整体透明度:opacity 1:表示完全不透明,0:表示完全透明
- 脱标元素的特点
- 脱标(浮动、绝对定位、固定定位)元素的特点
1. 块元素脱标之后不会默认父元素的宽了,默认宽高是0,内容会撑开宽高
2. 行内元素脱标之后可以直接设置宽高了
- 元素的层级问题
- 定位元素(相等定位,绝对定位,固定定位)默认层叠顺序,元素越靠后,层叠顺序越靠上
- z-index调整定位元素(相等定位,绝对定位,固定定位)层叠顺序, 值越大,越靠上,不带单位,可以为负值
二、装饰
- 垂直对齐方式
- vertical-align: top; 顶部对齐
- vertical-align: baseline; 默认,基线对齐
- vertical-align: middle; 中部对齐
- vertical-align: bottom; 底部对齐
- vertical-align能解决的问题如下
文本框和表单按钮无法对齐问题
input和img无法对齐问题
div中的文本框,文本框无法贴顶问题
div不设高度由img标签撑开,此时img标签下面会存在额外间隙问题
使用line-height让img标签垂直居中问题
• 学习浮动之后,不推荐使用行内块元素让div一行中显示,因为可能会出现垂直对齐问题
- 光标类型 :
设置鼠标光标在元素上时显示的样式- default 默认值 小白箭头
pointer 小手
text 文本
move 移动
help 帮助
not-allowed 禁止
- 边框圆角:
正圆的做法,盒子是正方形,border-radius: 50%
胶囊按钮效果,border-radius: 高度的一半 ,盒子必须是长方形
- overflow溢出部分显示效果
- overflow:visible; 默认值,溢出部分可见
- overflow:hidden; 溢出部分隐藏
- overflow:scroll; 无论是否溢出,都显示滚动条
- overflow:auto; 根据是否溢出,自动显示或隐藏滚动条
- 单行文本省略号
文本强制一行显示
white-space: nowrap;
溢出隐藏
overflow: hidden;
文本溢出省略号
text-overflow: ellipsis;
元素本身隐藏
visibility:hidden; 隐藏元素本身,并且在网页中占位置<br /> display:none; 隐藏元素本身,并且在网页中不占位置<br /> display:block; 元素显示
行内块元素垂直居中问题
```
- 图片在盒子里边垂直居中, 图片设置vertical-align: middle, 将图片的父元素设置成高度和行高相等 ```
- 精灵图的使用
- 精灵图是将很多装饰类的小图片,放到一张大图上,减少服务器请求的次数,提升页面的加载速度(打开速度)
1.测量局部的大小设置为盒子的宽高
2.测量局部的坐标值设置为背景定位的负值
- 背景图片大小
- 设置背景图片大小
写2个值,分别是宽高
只写一个值,代表宽,高默认auto,等比例缩放
写百分比,参考的盒子的宽高,不是图片的宽高
contain 背景图片等比例缩放,有可能铺不满盒子
cover 背景图片等比例缩放,铺满盒子,背景图片有可能显示不完整 - background-size的连写 注意 前边必须有背景定位的值/ 后边是背景尺寸
- 设置背景图片大小
- 盒子的阴影
- 第1个值 阴影的水平偏移量 正值向右 负值向左
第2个值 阴影的垂直偏移量 正值向下 负值向上
第3个值 阴影的模糊范围
第4个值 阴影的大小 可以为负值
第5个值 阴影的颜色
注意: 多组阴影用逗号隔开, inset内阴影
- 文字阴影
- 第1个值 阴影的水平偏移量 正值向右 负值向左
第2个值 阴影的垂直偏移量 正值向下 负值向上
第3个值 阴影的模糊范围
第4个值 阴影的颜色
- 过渡属性:
- 过渡是从一种状态到另外一种状态的变化,是属性值的变化, 需要触发条件, 过渡通常加在开始状态(all 全部属性过渡)
- 单个属性过渡
transition: background-color 1s;
多个属性过渡,用英文逗号隔开
transition: background-color 5s, border-radius 2s;
三、选择器拓展
- 链接伪类选择器
- a:link{ } 选中a链接未访问过的状态
- a:visited{ } 选中a链接访问之后的状态
- a:hover{ } 选中鼠标悬停的状态
- a:active{ } 选中鼠标按下的状态
- 焦点伪类选择器 {input:focus}
属性选择器
<p class="text"></p>
class=属性名 text=属性值