博客列表 >默认布局与定位布局

默认布局与定位布局

吴长清
吴长清原创
2022年07月12日 16:51:04512浏览

1.默认布局

默认布局是浏览器默认的布局方式,也叫做文档流布局或正常布局流,源码的书写顺序决定了元素在html页面中显示的顺序,由此可见元素的排列位置具有可Yu测性,关键语法:position:static

布局元素分为两类:块级元素和内联(行内)元素

类型 特征 关键语法
块级元素 高度:总是占据父级的全部宽度(100%);宽度:未设置时,由内容的高度来决定;是可以自定义宽高,总是垂直排列 display:block
内联(行内)元素 用来描述块级元素内部的内容/文本,高度和宽度都由内容的宽高来决定,均不能自定义宽高,总是水平排列;内联元素中padding有效,margin只有左右有效 display:inline
内联块 既可以像内联元素一样水平排列,又可以像块级元素一样设置宽高 display:inline-block

2.定位布局

类型 描述 关键语法
相对定位 相对于”自身在文档流中的位置”,以文档左上角为中心,向左(X轴)或向下(Y轴)移动 position:relative
绝对定位 相对于”距离它最近的定位元素的位置”,即常说的”定位父级”,逐级向上直到找到最初包含块(最初的视口) position:absolute
固定定位 总是相对于”最初包含块”定位,永远保持在视口的某一位置 position:fixed
粘性定位 粘性定位 = 静态定义 + 固定定位 position:sticky

3.案例

HTML代码

  1. <div class="parent">
  2. <div class="childBox1">
  3. <img src="logo.jpg" alt="" />
  4. <ul class="absoluteList">
  5. <li class="item">首页</li>
  6. <li class="item">视频教程</li>
  7. <li class="item">学习路径</li>
  8. <li class="item">培训</li>
  9. <li class="item">资源下载</li>
  10. <li class="item">技术文章</li>
  11. <li class="item">社区</li>
  12. <li class="item">App下载</li>
  13. </ul>
  14. </div>
  15. <div class="childBox2">
  16. <ul class="fixedList">
  17. <li class="item">直播课</li>
  18. <li class="item">限时折扣</li>
  19. <li class="item">最新课程</li>
  20. <li class="item">热门推荐</li>
  21. <li class="item">手册教程</li>
  22. <li class="item">资源下载</li>
  23. <li class="item">技术文章</li>
  24. <li class="item">博客文章</li>
  25. <li class="item">社区问答</li>
  26. <li class="item">APP下载</li>
  27. </ul>
  28. </div>
  29. </div>
  30. <div class="box">
  31. <img src="app.jpg" alt="">
  32. </div>
  33. <div class="con">
  34. <div>
  35. <h2 style="background-color: yellow">第一章 小二上酒</h2>
  36. <p>
  37. <!-- 这里内容自定义 -->
  38. </p>
  39. </div>
  40. <div>
  41. <h2 style="background-color: coral">第二章 白狐脸儿</h2>
  42. <p>
  43. <!-- 这里内容自定义 -->
  44. </p>
  45. </div>
  46. <div>
  47. <h2 style="background-color: green">这是第三个标题</h2>
  48. <p>
  49. <!-- 这里内容自定义 -->
  50. </p>
  51. </div>
  52. <div>
  53. <h2 style="background-color: cyan">这是第四个标题</h2>
  54. <p>
  55. <!-- 这里内容自定义 -->
  56. </p>
  57. </div>
  58. </div>

CSS代码

  1. html {
  2. /* 简化布局,方便计算 */
  3. box-sizing: border-box;
  4. }
  5. img {
  6. margin-left: 10%;
  7. margin-top: 12px;
  8. }
  9. .childBox1 {
  10. width: 100%;
  11. height: 80px;
  12. }
  13. .childBox1 > .absoluteList {
  14. width: 60%;
  15. top: 5px;
  16. /* 绝对定位 */
  17. position: absolute;
  18. display: block;
  19. left: 20%;
  20. }
  21. .absoluteList > li {
  22. width: 10%;
  23. height: 50px;
  24. display: inline-block;
  25. line-height: 50px;
  26. text-align: center;
  27. }
  28. /* 去掉ul的小圆点 */
  29. ul {
  30. list-style-type: none;
  31. }
  32. .parent > .childBox2 {
  33. /* 固定定位 */
  34. position: fixed;
  35. right: 0;
  36. top: 25%;
  37. }
  38. .fixedList > li {
  39. width: 150px;
  40. height: 30px;
  41. border-top: 1px solid rgb(255, 253, 254);
  42. background-color: lightgray;
  43. text-align: center;
  44. margin-top: 1px;
  45. padding-top: 15px;
  46. }
  47. /* 最后一个li字体加粗 */
  48. .fixedList > li:last-of-type {
  49. font-weight: bold;
  50. }
  51. .box{
  52. width: 150px;
  53. height: 150px;
  54. position: relative;
  55. top: 20px;
  56. left: 20px;
  57. float: left;
  58. }
  59. .con {
  60. background-color: antiquewhite;
  61. }
  62. .con h2 {
  63. /* 粘性定位 */
  64. position: sticky;
  65. /* 当到了top=0的位置时,就自动悬停住了,就像粘在那里一样 */
  66. top: 0;
  67. }

效果预览

声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议