CSS定位及其它常用属性

417 阅读8分钟

定位相关

定位的常见应用场景:

1,可以解决盒子与盒子之间的层叠问题,定位之后的元素层级最高,可以层叠在其他盒子上面

2,可以让盒子始终固定在屏幕中的某个位置

属性名:position

属性值:

relative相对定位 absolute绝对定位 fixed固定定位

块级元素 使用了定位(绝对和固定) 变成由内容撑开!

1,relative相对定位

介绍:自恋型定位,相对于自己之前的位置进行移动 特点:

1,需要配合方位属性实现移动 2,相对于自己原来位置进行移动 3,在页面中占位置 → 没有脱标

应用场景:

1,配合绝对定位组CP(子绝父相)

2,用于小范围的移动

2,absolute绝对定位

介绍:拼爹型定位,相对于非静态定位的父元素进行定位移动 特点:

  1. 需要配合方位属性实现移动
  2. 默认相对于浏览器 可视区域 进行移动
  3. 在页面中不占位置 → 已经脱标 应用场景:
  4. 配合绝对定位组CP(子绝父相) ➢ 绝对定位相对于谁移动?
  5. 祖先元素中没有定位 → 默认相对于浏览器进行移动
  6. 祖先元素中有定位 → 相对于 最近的 有定位 的祖先元素进行移动

子绝父相介绍 ➢ 场景:让子元素相对于父元素进行自由移动 ➢ 含义: • 子元素:绝对定位父元素:相对定位 ➢ 子绝父相好处: • 父元素是相对定位,则对网页布局影响最小 在使用子绝父相的时候,发现父元素已经有绝对定位了,此时直接子绝即可

3,fixed固定定位

➢ 介绍:死心眼型定位,相对于浏览器进行定位移动 ➢ 代码:position:fixed ➢ 特点:

  1. 需要配合方位属性实现移动
  2. 相对于浏览器可视区域进行移动
  3. 在页面中不占位置 → 已经脱标
  4. ➢ 应用场景:让盒子固定在屏幕中的某个位置

4,定位居中问题

1,子绝父相 水平居中 解决方法

(因为在绝对定位当中元素已经脱标,所以不能够再使用margin:0 auto 进行水平居中)

步骤:

子绝父相

1,先让子盒子往右移动父盒子的一半,

2,再让子盒子往左移动自己的一半

3,缺点:子盒子宽度变化后需要计算盒子宽度重新改代码

实现代码:

left:50%;

margin-left:负的子盒子宽度的一半;

2,子绝父相 垂直居中

top:50%;

margin-top:负的子盒子高度的一半;

5,水平 垂直 居中 优化做法:

水平居中

  1. 子绝父相

  2. left:50%;

3.transform:translateX(-50%)/transform:translate(-50%)

​ translate()如果只给出一个值, 表示x轴方向移动距离

​ 优点:表示沿着X轴负方向(往左)始终移动自己宽度的一半,子盒子宽度变化不需要更改代码

垂直居中

  1. 子绝父相
  2. top:50%
  3. transform:translateY(-50%)

子绝父相水平垂直都居中

top:50%

left:50%

transform:translate(-50%,-50%);

6,元素的层级问题

➢ 不同布局方式元素的层级关系:

​ • 标准流 < 浮动 < 定位

➢ 不同定位之间的层级关系:

​ • 相对、绝对、固定默认层级相同

​ • 此时HTML中写在下面的元素层级更高,会覆盖上面的元素

➢更改定位元素的层级

​ 场景:改变定位元素的层级

 属性名:**z-index:数字;**

​ 属性值:数字

   数字越大,层级越高

文本装饰效果

1,基线问题

​ 浏览器文字类型元素排版中存在用于对齐的基线(baseline)

​ 场景:解决行内/行内块元素垂直对齐问题

​ 问题:当图片和文字在一行中显示时,其实底部不是对齐的

垂直对齐方式 属性名:vertical-align 属性值:bottom middle top

2,项目中 vertical-align 可以解决的问题

​ 1. 文本框和表单按钮无法对齐问题

​ 2. input和img无法对齐问题

​ 3. div中的文本框,文本框无法贴顶问题

​ 4. div不设高度由img标签撑开,此时img标签下面会存在额外间隙问题

5. 使用line-heightimg标签垂直居中问题
   6. 取值top    middle      bottom

3,设置鼠标光标在元素上时显示的样式

​ 属性名:cursor

​ 属性值:

​ pointer 小手效果

​ text 工字型

​ move 十字光标

4,边框圆角

​ 属性名:border-radius

​ 常见取值:数字+px 、百分比

​ 赋值规则:从左上角开始赋值,然后顺时针赋值,没有赋值的看对角!

➢ 画一个正圆:

​ 1. 盒子必须是正方形

​ 2. 设置边框圆角为盒子宽高的一半 → border-radius:50%

➢ 胶囊按钮:

​ 1. 盒子要求是长方形

​ 2. 设置 → border-radius:盒子高度的一半

5,溢出部分显示效果

​ ➢ 溢出部分:指的是盒子 内容部分 所超出盒子范围的区域

​ ➢ 场景:控制内容溢出部分的显示效果,如:显示、隐藏、滚动条……

​ ➢ 属性名:overflow

​ 属性值:

overflow: hidden 溢出部分隐藏;

​ scroll 无论是否溢出都显示滚动条

​ auto 根据是否溢出,自动显示或者隐藏滚动条

6,元素本身隐藏

​ ➢ 场景:让某元素本身在屏幕中不可见。如:鼠标:hover之后元素隐藏

​ ➢ 常见属性:

​ 1. visibility:hidden

​ 2. display:none

​ ➢ 区别:

​ 1. visibility:hidden 隐藏元素本身,并且在网页中 占位置

​ 2. display:none 隐藏元素本身,并且在网页中 不占位置

​ ➢ 注意点:

​ • 开发中经常会通过 display属性完成元素的显示隐藏切换

​ • display:none;(隐藏)、 display:block;(显示)

7,(拓展)元素整体透明度

​ ➢ 场景:让某元素整体(包括内容)一起变透明

​ ➢ 属性名:opacity

​ ➢ 属性值:0~1之间的数字

	 **• 1:表示完全不透明**

• 0:表示完全透明

​ ➢ 注意点:

​ • opacity会让元素整体透明,包括里面的内容,如:文字、子元素等……

8,(拓展)边框合并

​ ➢ 场景:让相邻表格边框进行合并,得到细线边框效果

​ ➢ 代码:border-collapse:collapse;

​ ➢border-collapse:collapse;需要在table样式里面添加

​ table{

​ border: 1px solid;

​ border-collapse:collapse;}

9,链接伪类选择器

​ 场景:常用于选中超链接的不同状态

a:link{} 选中a链接中 未被访问过 的状态;

a:visited{} 选中a链接中 访问之后 的状态;

a:hover{} 选中a链接中 鼠标悬停 的状态;

a:active{} 选中a链接中 鼠标按下 的状态;

10,焦点伪类选择器

​ 格式:

​ 类名:focus { }

​ 场景:用于选中元素获取焦点时状态常用于表单控件

​ input focus {

​ background-color:red;

​ }

(表单控件获取焦点时默认会显示外部轮廓线)

11,属性选择器

​ 场景:通过元素上的HTML属性来选择元素,常用于选择 input 标签

​ 选择器语法:

E[attr] 选择具有attr属性的E元素;

E[attr="val"] 选择具有attr属性并且属性值等于"val"的E元素;

精灵图

精灵图的介绍

​ Ø 场景:项目中将多张小图片,合并成一张大图片,这张大图片称之为精灵图

​ Ø 优点:减少服务器发送次数,减轻服务器的压力,提高页面加载速度

​ Ø 例如:需要在网页中展示8张小图片 • 8张小图片分别发送 → 发送8次 • 合成一张精灵图发送 → 发送1次

(普通背景图只是一样图片,精灵图是由许多小图片合并成一张大图,通过位置找到需要的一小部分)

使用精灵图的步骤是什么?

​ 1. 创建一个盒子

​ 2. 设置 盒子大小 为 小图片大小

​ 3. 设置精灵图为盒子的背景图片

   4. 将小图片**左上角坐标 取负值**,设置给盒子的**background-position:x y**
             1. ***(background-position:方位  	left表示:向左侧移动自身宽度		right:向右侧移动自身宽度)***
 span {
            display: inline-block;
            width: 24px;
            height: 24px;
            background-image: url("图片/taobao.png");
            background-position: 0 0;
            color: red;
        }

阴影

文字阴影

​ Ø 作用:给文字添加阴影效果,吸引用户注意

​ Ø 属性名:text-shadow

​ Ø 取值:

h-shadow: 必须 水平偏移量,允许负值;

v-shadow: 必须 垂直偏移量,允许负值;

blur 可选,模糊度

color 可选,阴影颜色

盒子阴影

​ Ø 作用:给盒子添加阴影效果,吸引用户注意,体现页面的制作细节

​ Ø 属性名:box-shadow

​ Ø 取值:

​ h-shadow: 必须 水平偏移量,允许负值;

​ v-shadow: 必须 垂直偏移量,允许负值;

​ blur 可选,模糊度

spread 可选,扩大阴影

​ color 可选,阴影颜色

inset 可选,将阴影改为内阴影

连写: x轴 y轴 模糊度 扩大 颜色 内阴影

box-shadow: 10px 20px 30px 40px red inset;