当前位置: 首页 > news >正文

CSS定位布局

1.定义

2.分类

2.1 相对定位

【1】定义

【2】代码演示

<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>.box1 {/* 给元素加相对定位 */position: relative;/* 距离顶部 */top: 100px;/* 距离左侧 */left: 100px;width: 200px;height: 200px;background-color: pink;}.box2 {width: 200px;height: 200px;background-color: skyblue;}</style>
</head><body><div class="box1"></div><div class="box2"></div>
</body>

2.2 绝对定位

【1】语法

区别:相对定位保留位置,绝对定位不保留位置。

【2】代码演示

<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>.father {/* 给父亲加相对定位 */position: relative;width: 300px;height: 300px;background-color: #ccc;margin: 50px;}.son1 {/* 给儿子加绝对定位 */position: absolute;/* 加过绝对定位后,他就不占位置了,第二个盒子就是跑上去 *//* 他这个盒子距离,是距离视口的,父亲不会移动 *//* 但是可以给父亲加一个相对定位, *//* 那么他的距离,就会以父亲为标准 只在父亲内部移动 */top: 50px;left: 50px;width: 150px;height: 150px;background-color: pink;}.son2 {width: 120px;height: 120px;background-color: skyblue;}</style>
</head><body><div class="father"><div class="son1">第一个盒子</div><div class="son2">第二个盒子</div></div>
</body>

总结

PS:轮播图小圆点技巧

2.3 定位盒子的垂直居中

2.4 案例实现

<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>.box {/* 其他的隐藏即可 */overflow: hidden;/* 给父亲加相对定位 */position: relative;width: 1000px;margin: 100px auto;}.box::before {/* 居中显示 */text-align: center;line-height: 120px;color: #000;content: '可爱的小猫咪,滚动滚轮可以查看哦~~~';/* 属于行内元素 但是加了定位,则可以直接给高度和宽度 *//* 子绝父相 */position: absolute;top: -50px;left: 0;width: 100%;height: 100px;background-color: #fff;/* 弄成圆的 */border-radius: 50%;}.box::after {content: "";/* 属于行内元素 但是加了定位,则可以直接给高度和宽度 *//* 子绝父相 */position: absolute;bottom: -50px;left: 0;width: 100%;height: 100px;background-color: #fff;/* 弄成圆的 */border-radius: 50%;}ul,li {list-style: none;}.box ul {/* 让图片都在一行上 */display: flex;gap: 15px;/* 给最长的盒子加滚动条即ul *//* 水平滚动条 */overflow-x: auto;/* 隐藏滚动条 */scrollbar-width: none;/* 平滑滚动 */scroll-behavior: smooth;}.box ul li {/* 如果这样设置宽度的话,放到一行后会进行压缩的 *//* width: 200px; *//* 所以用flex布局,每个li都占200px *//* 不拉伸 不压缩 初始值设为200px */flex: 0 0 200px;}.box ul li img {width: 100%;}</style>
</head><body><div class="box"><ul><li><a href="#"><img src="../images/cat1.jpg" alt=""></a> </li><li><a href="#"><img src="../images/cat2.jpg" alt=""></a> </li><li><a href="#"><img src="../images/cat3.jpg" alt=""></a> </li><li><a href="#"><img src="../images/cat4.jpg" alt=""></a> </li><li><a href="#"><img src="../images/cat5.jpg" alt=""></a> </li><li><a href="#"><img src="../images/cat6.jpg" alt=""></a> </li><li><a href="#"><img src="../images/cat7.jpg" alt=""></a> </li><li><a href="#"><img src="../images/cat8.jpeg" alt=""></a> </li><li><a href="#"><img src="../images/cat9.jpeg" alt=""></a> </li><li><a href="#"><img src="../images/cat10.jpeg" alt=""></a> </li><li><a href="#"><img src="../images/cat11.jpeg" alt=""></a> </li><li><a href="#"><img src="../images/cat12.jpeg" alt=""></a> </li></ul></div><!-- 添加滚动效果用到了js --><script>// 1. 找到ulconst ul = document.querySelector(".box ul");// 2. 给ul添加滚动事件ul.addEventListener("wheel", (e) => {// 3. 打印滚动的距离// console.log(ul.scrollLeft);// 4. 滚动的距离 = 滚动的距离 + 滚动的方向 * 滚动的速度ul.scrollLeft += e.deltaY * 1.5;})</script>
</body>

2.4 固定定位

【1】语法

<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>.box {/* 设元素为固定定位 *//* 想让他们在浏览器下方固定 */position: fixed;/* 水平居中 *//* margin: 0 auto; 对于定位的盒子无效*//* 先让盒子走父亲的一半,再往左移动盒子宽度的一半 */left: 50%;margin-left: -300px;bottom: 30px;width: 600px;height: 120px;background-color: rgba(0, 0, 0, 0.5);border-radius: 15px;}</style>
</head><body><div class="box"></div>
</body>

2.5 粘性定位

<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>.nav {/* 设置粘性定位 */position: sticky;/* 即使是0也要写 */top: 0;width: 1000px;height: 100px;background-color: pink;margin: 100px auto;}.main {height: 2000px;background-color: skyblue;}</style>
</head><body><div class="nav">我是导航部分</div><main class="main"></main>
</body>

3. z-index叠放层次以及总结

3.1 z-index叠放层次

<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>.box img {/* 先定位 */position: absolute;}.tel1 {left: 30px;}.tel2 {left: 90px;}.tel3 {left: 150px;}.tel4 {left: 200px;}/* 现在弄个一个,鼠标一经过谁,谁就变成第一个 */.box img:hover {/* 改变层级就可以了 */z-index: 1;}</style>
</head><body><div class="box"><img src="../images/tel1.png" alt="" class="tel1"><img src="../images/tel2.png" alt="" class="tel2"><img src="../images/tel3.png" alt="" class="tel3"><img src="../images/tel4.png" alt="" class="tel4"></div>
</body>

3.2 总结

http://www.dtcms.com/a/419919.html

相关文章:

  • 织梦首饰网站模板茶楼 网站
  • 怎样建设微网站课程推广
  • 网站建设前的ER图重庆怎样网站推广
  • 虹膜边缘预测函数
  • day82—数组 | 哈希桶—找到所有数组中消失的数字(LeetCode-448)
  • 人该怎样活着呢?版本61
  • 天纪标注平台TLP:用大模型赋能高质量数据标注
  • 免费网站建设 百度收录wordpress怎么调用api
  • linux 系统cshrc 文件
  • 【网络安全】一、入门篇:读懂 HTTP 协议
  • 建设在线教育网站国外做的好的医疗网站设计
  • 酒店网站建设案例策划书怎么写网站设计是什么专业
  • java-字符集,编码解码
  • 使用 SQLAlchemy 和 Alembic 处理 FastAPI 中的模型变更
  • 怎么搭建属于自己的网站超详细wordpress常用函数
  • 【Java初学基础10】一文讲清反射
  • 深圳外贸营销型网站建设网站优化和提升网站排名怎么做
  • 可以做电算化的网站鄂州网站推广
  • 驻马店哪家做网站好专业展馆展厅设计
  • 20250928的学习笔记
  • seo网站推广策略福州短视频seo程序
  • Tsinghua OJ 工作分配(Workload)C++ 数组指针实现
  • 免费网站知乎网页打不开但是qq能上是怎么回事
  • 宁波网站设计制作公司wordpress免费简约模板
  • 乐山 做网站WordPress工作发布
  • 3.6 局域网 (答案见原书 P110)
  • C++基础:(五)类和对象(下)—— static、友元和内部类
  • 【二至九位数个位起符合递减限制求和】2022-11-19
  • eclipse jsp 网站开发登录中国沈阳网站
  • 【连载1】《假装自己是个小白 —— 重新认识 MySQL》实践指南