CSS布局

本文详细介绍了CSS中的定位技术,包括静态、相对、绝对和固定定位,以及它们的特点和应用场景。同时,讨论了元素层级关系和z-index的使用。此外,还涉及了装饰效果,如垂直对齐方式、光标类型、边框圆角的创建、内容溢出处理、元素隐藏方法和透明度控制,丰富了CSS在网页设计中的表现力。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、定位

1. 定位的基本使用

1.1 设置定位方式

  • 属性名:position
  • 常见属性值:

1.2 设置偏移值

  • 偏移值设置分为两个方向,水平和垂直方向各选一个使用即可
  • 选取的原则一般是就近原则 (离哪边近用哪个)

2. 静态定位

2.1 介绍:静态定位是默认值,就是之前认识的标准流。

2.2 代码position:static;

2.3 注意点

  • 静态定位就是之前标准流,不能通过方位属性进行移动
  • 之后说的定位不包括静态定位,一般特指后几种:相对、绝对、固定

3. 相对定位

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

3.2 代码position:relative;

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

3.4 应用场景

  • 配合绝对定位组CP(子绝父相)
  • 用于小范围的移动

4. 绝对定位

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

 4.2 代码 position: absolute;

4.3 特点

  • 需要配合方位属性实现移动
  • 默认相对于浏览器可视区域进行移动
  • 在页面中不占位置 → 已经脱标

4.4 注意:

绝对定位相对于谁移动?

  • 祖先元素中没有定位 → 默认相对于浏览器进行移动
  • 祖先元素中有定位 → 相对于 最近的 有定位 的祖先元素进行移动

4.5 应用场景

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

例: 

5. 子绝父相

5.1 场景:让子元素相对于父元素进行自由移动

5.2 含义:

  • 子元素:绝对定位
  • 父元素:相对定位

5.3 子绝父相好处:

  • 父元素是相对定位,则对网页布局影响最小

5.4(拓展) 子绝父绝特殊场景

 1) 场景:在使用子绝父相的时候,发现父元素已经有绝对定位了,此时直接子绝即可!

 2) 原因父元素已经有定位已经满足要求,如果盲目修改父元素定位方式,可能会影响之前写好的布局

5.5一些案例方法

a. 子绝父相水平居中方法

1) 子绝父相

2) 先让子盒子往右移动父盒子的一半 left:50%

3) 再让子盒子往左移动自己的一半

普通做法:margin-left:负的子盒子宽度的一半

  • 缺点:子盒子宽度变化后需要重新改代码

优化做法:transform:translateX(-50%)

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

4)小结

  1. 子绝父相
  2. left:50%;
  3. transform:translateX(-50%);

b.子绝父相垂直居中方法

 1)子绝父相

 2) 让子盒子往右走大盒子一半      left:50%

 3) 让子盒子往下走大盒子一半      top:50%

 4) 让子盒子往左+往上走自己的一半 transform:translate(-50%,-50%);

6. 固定定位

6.1 介绍:死心眼型定位,相对于浏览器进行定位移动

6.2 代码position: fixed;

6.3 特点

  • 需要配合方位属性实现移动
  • 相对于浏览器可视区域进行移动
  • 在页面中不占位置 → 已经脱标

6.4 应用场景

  •  让盒子固定在屏幕中的某个位置

7. 元素的层级关系

7.1 元素层级问题

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

  • 标准流 < 浮动 < 定位

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

  • 相对、绝对、固定默认层级相同
  • 此时HTML中写在下面的元素层级更高,会覆盖上面的元素

7.2 更改定位元素的层级

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

2)属性:z-index

3)属性值:数字      (数字越大,层级越高)

二、装饰

1.垂直对齐方式

1.1 文字对齐

  • 属性名:vertical-align
  • 属性值:

1.2(拓展)项目中 vertical-align 可以解决的问题
  • 文本框和表单按钮无法对齐问题
  • input和img无法对齐问题
  • div中的文本框,文本框无法贴顶问题
  • div不设高度由img标签撑开,此时img标签下面会存在额外间隙问题
  • 使用line-height让img标签垂直居中问题

1.3 注意点:

  • 学习浮动之后,不推荐使用行内块元素让div一行中显示,因为可能会出现垂直对齐问题
  • 推荐优先使用浮动完成效果

2. 光标类型

2.1 场景:设置鼠标光标在元素上时显示的样式

2.2 属性名:cursor

2.3 常见属性值:

3. 边框圆角

3.1边框圆角的设置

  • 场景:让盒子四个角变得圆润,增加页面细节,提升用户体验
  • 属性名:border-radius
  • 常见取值:数字+px 、百分比
  • 原理:

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

3.2 边框圆角的常见应用

1)画一个正圆:

  • 盒子必须是正方形
  • 设置边框圆角为盒子宽高的一半 → border-radius:50%

2)胶囊按钮:

  • 盒子要求是长方形
  • 设置 → border-radius:盒子高度的一半

4. overflow溢出部分显示效果

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

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

4.3 属性名:overflow

4.4 常见属性值:

5. 元素本身隐藏

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

5.2 常见属性:

  • visibility:hidden
  • display:none

5.3 区别:

  •  visibility:hidden 隐藏元素本身,并且在网页中 占位置
  •  display:none 隐藏元素本身,并且在网页中 不占位置

5.4 注意点:

  • 开发中经常会通过 display属性完成元素的显示隐藏切换
  • display:none;(隐藏)、 display:block;(显示)

6. 元素整体透明度

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

6.2 属性名:opacity

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

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

6.4 注意点:

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

7.边框合并

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

7.2 代码:border-collapse:collapse;

8.用CSS画三角形技巧

8.1 场景:在网页中展示出小三角形时,除了可以使用图片外,还可以使用代码完成。

8.2 实现原理: 利用盒子边框完成

8.3 实现步骤:

  1. 设置一个盒子
  2. 设置四周不同颜色的边框
  3. 将盒子宽高设置为0,仅保留边框
  4. 得到四个三角形,选择其中一个后,其他三角形(边框)设置颜色为透明
<style>
    div {
        width: 0px;
        height: 0px;
        border-top: 100px solid transparent;
        border-bottom: 100px solid red;
        border-left: 100px solid transparent;
        border-right: 100px solid transparent;
    }
</style>

8.4 拓展:通过调整不同边框的宽度,可以调整三角形的形态

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值