博客列表 >相对定位与绝对定位的区别和联系,flex必会的容器与项目属性

相对定位与绝对定位的区别和联系,flex必会的容器与项目属性

Jet的博客
Jet的博客原创
2023年02月11日 19:33:45526浏览

一、相对定位与绝对定位

1.1 基础代码

  1. <body>
  2. <ul>
  3. <li class="relative">item1</li>
  4. <li class="absolute">item2</li>
  5. <li>item3</li>
  6. <!--绝对定位不占原先空间-->
  7. </ul>
  8. <style>
  9. /* 初始化 */
  10. * { margin:0; padding:0; box-sizing: border-box;}
  11. body {border: 5px solid red;}
  12. /* 基本样式 */
  13. ul { width: 400px; height: 400px; border:5px solid blue; }
  14. ul li { height: 30px; border: 1px solid black; list-style: none;}
  15. ul li:first-child { background-color: bisque;}
  16. /* *号:后面所有的元素*/
  17. ul li:first-child + * { background-color:lightgreen; }
  18. </style>
  19. </body>

1.2 相对定位

  1. /*相对定位*/
  2. ul li.relative {
  3. position: relative; top: 10px; left: 10px;
  4. /*
  5. itme1相对于自己原来的位置移动;
  6. itme2没有偏移,继续保留原来的位置
  7. 没有释放原空间
  8. */
  9. }


1.3 绝对定位

  1. /* 绝对定位 */
  2. ul li.absolute {
  3. position:absolute;
  4. top:0; left:0; bottom:0; right:0;
  5. width: 200px;
  6. height: 200px;
  7. margin: auto;
  8. /* 父级元素没有定位,即没有参考物,以浏览器html为准*/
  9. }
  10. /*
  11. 父级元素有定位,则以最近一级有定位元素为参照物
  12. 绝对定位不占原先空间
  13. */
  14. ul { position: relative;}



1.4 固定定位

  1. <div class="box">广告位/客服</div>
  2. <style>
  3. * {
  4. margin: 0;
  5. padding: 0;
  6. }
  7. .box {
  8. width: 150px;
  9. height: 150px;
  10. background-color: lightgreen;
  11. /* 固定定位 */
  12. position: fixed;
  13. /* 右下角 */
  14. right: 20px;
  15. bottom: 50px;
  16. }
  17. body {
  18. min-height: 2000px;
  19. }
  20. </style>


1.5 粘性定位

  1. <style>
  2. article figure {
  3. margin: 1em 0;
  4. }
  5. article figure figcaption {
  6. background-color: lightgreen;
  7. color: color;
  8. border: 1px solid #000;
  9. padding: 1em;
  10. font-size: 1.3em;
  11. /* 粘性定位 */
  12. position: sticky;
  13. /* 当标题滚动到顶部时自动停住 */
  14. top: 0;
  15. }
  16. </style>
  1. <article>
  2. <figure>
  3. <figcaption>11、标题11</figcaption>
  4. <p>
  5. 内容内容内容
  6. </p>
  7. <p>
  8. 内容内容内容
  9. </p>
  10. <p>
  11. 内容内容内容
  12. </p>
  13. <p>
  14. 内容内容内容
  15. </p>
  16. <p>
  17. 内容内容内容
  18. </p>
  19. <p>
  20. 内容内容内容
  21. </p>
  22. <p>
  23. 内容内容内容
  24. </p>
  25. <p>
  26. 内容内容内容
  27. </p>
  28. </figure>
  29. <figure>
  30. <figcaption>1、标题1</figcaption>
  31. <p>
  32. 内容内容内容
  33. </p>
  34. <p>
  35. 内容内容内容
  36. </p>
  37. <p>
  38. 内容内容内容
  39. </p>
  40. <p>
  41. 内容内容内容
  42. </p>
  43. <p>
  44. 内容内容内容
  45. </p>
  46. <p>
  47. 内容内容内容
  48. </p>
  49. <p>
  50. 内容内容内容
  51. </p>
  52. <p>
  53. 内容内容内容
  54. </p>
  55. </figure>
  56. </article>

定位总结:


二、flex必会的容器与项目属性

1.1 基础代码

  1. <div class="container">
  2. <div class="item">item1</div>
  3. <div class="item">item2</div>
  4. <div class="item">item3</div>
  5. </div>

1.2 flex布局

  1. <style>
  2. .container {
  3. /* width:450px;*/
  4. height: 100px;
  5. /*使用flex进行布局,先将它转为flex容器元素*/
  6. display: flex;
  7. }
  8. </style>


1.3 place-content主轴的排列方式

  1. /*主轴的排列方式 place-content*/
  2. place-content: start;
  3. place-content: end;


1.4 place-items 交叉轴的排列方式

  1. /*交叉轴的排列方式 place-items*/
  2. place-items: end;
  3. place-items: center;


1.5 独立排列

  1. /*独立排列*/
  2. place-content: space-between; /*两端对齐*/
  3. place-content: space-around; /*分散对齐*/
  4. place-content: space-evenly; /*平均对齐*/




1.6 flex宽度比例

宽度会根据游览器宽度自动进行伸缩

  1. .container .item:first-child,
  2. .container .item:last-child{
  3. background-color: yellow; flex:1;
  4. }
  5. .container .item:first-child + *{
  6. flex: 3;
  7. }


  1. /* order 在项目主轴上的排列顺序,默认每个都是0 */
  2. /* 数值越少越靠前 */
  3. .container .item:first-child{
  4. order:1;
  5. }
  6. .container .item:first-child + *{
  7. order:2;
  8. }


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