博客列表 >flex布局与position定位

flex布局与position定位

kong
kong原创
2023年02月23日 22:51:491236浏览

定位

1. 定位 position

1.1 术语

元素: position: relation / absolute / fixed / sticky

1.2 定位类型

静态定位:static,默认定位方式

  1. <ul>
  2. <li>第一</li>
  3. <li>第二</li>
  4. </ul>
  5. <style>
  6. ul{
  7. border: 2px solid red;
  8. height: 500px;
  9. width: 500px;
  10. /* 默认定位方式 */
  11. position: static;
  12. }
  13. </style>


\

相对定位:relation, 还会在文档流中,所占空间不会释放

  1. <ul>
  2. <li>第一</li>
  3. <li>第二</li>
  4. </ul>
  5. <style>
  6. ul li:first-child{
  7. /* 相对定位 */
  8. position: relative;
  9. background-color: aqua;
  10. left: 10px;
  11. top: 10px;
  12. }
  13. </style>

绝对定位: absolute, 宽度会收缩到内容宽度,会释放空间,但是还会在父容器

  1. <ul>
  2. <li>第一</li>
  3. <li>第二</li>
  4. </ul>
  5. <style>
  6. ul li:nth-child(2){
  7. /* 绝对定位 */
  8. position: absolute;
  9. background-color: bisque;
  10. }
  11. </style>

固定定: fixed, 对最初包含块(html)进行偏移

  1. <div class="box"></div>
  2. <style>
  3. .box{
  4. /* 固定定位 */
  5. position: fixed;
  6. height: 100px;
  7. width: 100px;
  8. background-color: black;
  9. right: 0;
  10. bottom: 0;
  11. }
  12. </style>

粘性定位: stickyfixed自动切换,元素自动悬停

  1. <div class="cnt">
  2. <h1>标题1</h1>
  3. <p>2023年2月20日,由中央广播电视总台携手外交部、文化和旅游部联合举办的中国影像节“一带一路”主题展映活动以线上方式正式启动。来自40多个国家和地区的50多位政要、前政要、媒体机构负责人等嘉宾代表发来视频致辞,共同祝愿本届中国影像节成功举办。</p>
  4. <p>2023年2月20日,由中央广播电视总台携手外交部、文化和旅游部联合举办的中国影像节“一带一路”主题展映活动以线上方式正式启动。来自40多个国家和地区的50多位政要、前政要、媒体机构负责人等嘉宾代表发来视频致辞,共同祝愿本届中国影像节成功举办。</p>
  5. <p>2023年2月20日,由中央广播电视总台携手外交部、文化和旅游部联合举办的中国影像节“一带一路”主题展映活动以线上方式正式启动。来自40多个国家和地区的50多位政要、前政要、媒体机构负责人等嘉宾代表发来视频致辞,共同祝愿本届中国影像节成功举办。</p>
  6. <p>2023年2月20日,由中央广播电视总台携手外交部、文化和旅游部联合举办的中国影像节“一带一路”主题展映活动以线上方式正式启动。来自40多个国家和地区的50多位政要、前政要、媒体机构负责人等嘉宾代表发来视频致辞,共同祝愿本届中国影像节成功举办。</p>
  7. <p>2023年2月20日,由中央广播电视总台携手外交部、文化和旅游部联合举办的中国影像节“一带一路”主题展映活动以线上方式正式启动。来自40多个国家和地区的50多位政要、前政要、媒体机构负责人等嘉宾代表发来视频致辞,共同祝愿本届中国影像节成功举办。</p>
  8. <p>2023年2月20日,由中央广播电视总台携手外交部、文化和旅游部联合举办的中国影像节“一带一路”主题展映活动以线上方式正式启动。来自40多个国家和地区的50多位政要、前政要、媒体机构负责人等嘉宾代表发来视频致辞,共同祝愿本届中国影像节成功举办。</p>
  9. <p>2023年2月20日,由中央广播电视总台携手外交部、文化和旅游部联合举办的中国影像节“一带一路”主题展映活动以线上方式正式启动。来自40多个国家和地区的50多位政要、前政要、媒体机构负责人等嘉宾代表发来视频致辞,共同祝愿本届中国影像节成功举办。</p>
  10. <p>2023年2月20日,由中央广播电视总台携手外交部、文化和旅游部联合举办的中国影像节“一带一路”主题展映活动以线上方式正式启动。来自40多个国家和地区的50多位政要、前政要、媒体机构负责人等嘉宾代表发来视频致辞,共同祝愿本届中国影像节成功举办。</p>
  11. <p>2023年2月20日,由中央广播电视总台携手外交部、文化和旅游部联合举办的中国影像节“一带一路”主题展映活动以线上方式正式启动。来自40多个国家和地区的50多位政要、前政要、媒体机构负责人等嘉宾代表发来视频致辞,共同祝愿本届中国影像节成功举办。</p>
  12. <p>2023年2月20日,由中央广播电视总台携手外交部、文化和旅游部联合举办的中国影像节“一带一路”主题展映活动以线上方式正式启动。来自40多个国家和地区的50多位政要、前政要、媒体机构负责人等嘉宾代表发来视频致辞,共同祝愿本届中国影像节成功举办。</p>
  13. <p>2023年2月20日,由中央广播电视总台携手外交部、文化和旅游部联合举办的中国影像节“一带一路”主题展映活动以线上方式正式启动。来自40多个国家和地区的50多位政要、前政要、媒体机构负责人等嘉宾代表发来视频致辞,共同祝愿本届中国影像节成功举办。</p>
  14. <p>2023年2月20日,由中央广播电视总台携手外交部、文化和旅游部联合举办的中国影像节“一带一路”主题展映活动以线上方式正式启动。来自40多个国家和地区的50多位政要、前政要、媒体机构负责人等嘉宾代表发来视频致辞,共同祝愿本届中国影像节成功举办。</p>
  15. <h2>标题2</h2>
  16. <p>2023年2月20日,由中央广播电视总台携手外交部、文化和旅游部联合举办的中国影像节“一带一路”主题展映活动以线上方式正式启动。来自40多个国家和地区的50多位政要、前政要、媒体机构负责人等嘉宾代表发来视频致辞,共同祝愿本届中国影像节成功举办。</p>
  17. <p>2023年2月20日,由中央广播电视总台携手外交部、文化和旅游部联合举办的中国影像节“一带一路”主题展映活动以线上方式正式启动。来自40多个国家和地区的50多位政要、前政要、媒体机构负责人等嘉宾代表发来视频致辞,共同祝愿本届中国影像节成功举办。</p>
  18. <p>2023年2月20日,由中央广播电视总台携手外交部、文化和旅游部联合举办的中国影像节“一带一路”主题展映活动以线上方式正式启动。来自40多个国家和地区的50多位政要、前政要、媒体机构负责人等嘉宾代表发来视频致辞,共同祝愿本届中国影像节成功举办。</p>
  19. <p>2023年2月20日,由中央广播电视总台携手外交部、文化和旅游部联合举办的中国影像节“一带一路”主题展映活动以线上方式正式启动。来自40多个国家和地区的50多位政要、前政要、媒体机构负责人等嘉宾代表发来视频致辞,共同祝愿本届中国影像节成功举办。</p>
  20. <p>2023年2月20日,由中央广播电视总台携手外交部、文化和旅游部联合举办的中国影像节“一带一路”主题展映活动以线上方式正式启动。来自40多个国家和地区的50多位政要、前政要、媒体机构负责人等嘉宾代表发来视频致辞,共同祝愿本届中国影像节成功举办。</p>
  21. <p>2023年2月20日,由中央广播电视总台携手外交部、文化和旅游部联合举办的中国影像节“一带一路”主题展映活动以线上方式正式启动。来自40多个国家和地区的50多位政要、前政要、媒体机构负责人等嘉宾代表发来视频致辞,共同祝愿本届中国影像节成功举办。</p>
  22. <p>2023年2月20日,由中央广播电视总台携手外交部、文化和旅游部联合举办的中国影像节“一带一路”主题展映活动以线上方式正式启动。来自40多个国家和地区的50多位政要、前政要、媒体机构负责人等嘉宾代表发来视频致辞,共同祝愿本届中国影像节成功举办。</p>
  23. <p>2023年2月20日,由中央广播电视总台携手外交部、文化和旅游部联合举办的中国影像节“一带一路”主题展映活动以线上方式正式启动。来自40多个国家和地区的50多位政要、前政要、媒体机构负责人等嘉宾代表发来视频致辞,共同祝愿本届中国影像节成功举办。</p>
  24. <p>2023年2月20日,由中央广播电视总台携手外交部、文化和旅游部联合举办的中国影像节“一带一路”主题展映活动以线上方式正式启动。来自40多个国家和地区的50多位政要、前政要、媒体机构负责人等嘉宾代表发来视频致辞,共同祝愿本届中国影像节成功举办。</p>
  25. <p>2023年2月20日,由中央广播电视总台携手外交部、文化和旅游部联合举办的中国影像节“一带一路”主题展映活动以线上方式正式启动。来自40多个国家和地区的50多位政要、前政要、媒体机构负责人等嘉宾代表发来视频致辞,共同祝愿本届中国影像节成功举办。</p>
  26. <p>2023年2月20日,由中央广播电视总台携手外交部、文化和旅游部联合举办的中国影像节“一带一路”主题展映活动以线上方式正式启动。来自40多个国家和地区的50多位政要、前政要、媒体机构负责人等嘉宾代表发来视频致辞,共同祝愿本届中国影像节成功举办。</p>
  27. <p>2023年2月20日,由中央广播电视总台携手外交部、文化和旅游部联合举办的中国影像节“一带一路”主题展映活动以线上方式正式启动。来自40多个国家和地区的50多位政要、前政要、媒体机构负责人等嘉宾代表发来视频致辞,共同祝愿本届中国影像节成功举办。</p>
  28. <p>2023年2月20日,由中央广播电视总台携手外交部、文化和旅游部联合举办的中国影像节“一带一路”主题展映活动以线上方式正式启动。来自40多个国家和地区的50多位政要、前政要、媒体机构负责人等嘉宾代表发来视频致辞,共同祝愿本届中国影像节成功举办。</p>
  29. <p>2023年2月20日,由中央广播电视总台携手外交部、文化和旅游部联合举办的中国影像节“一带一路”主题展映活动以线上方式正式启动。来自40多个国家和地区的50多位政要、前政要、媒体机构负责人等嘉宾代表发来视频致辞,共同祝愿本届中国影像节成功举办。</p>
  30. <p>2023年2月20日,由中央广播电视总台携手外交部、文化和旅游部联合举办的中国影像节“一带一路”主题展映活动以线上方式正式启动。来自40多个国家和地区的50多位政要、前政要、媒体机构负责人等嘉宾代表发来视频致辞,共同祝愿本届中国影像节成功举办。</p>
  31. <p>2023年2月20日,由中央广播电视总台携手外交部、文化和旅游部联合举办的中国影像节“一带一路”主题展映活动以线上方式正式启动。来自40多个国家和地区的50多位政要、前政要、媒体机构负责人等嘉宾代表发来视频致辞,共同祝愿本届中国影像节成功举办。</p>
  32. <p>2023年2月20日,由中央广播电视总台携手外交部、文化和旅游部联合举办的中国影像节“一带一路”主题展映活动以线上方式正式启动。来自40多个国家和地区的50多位政要、前政要、媒体机构负责人等嘉宾代表发来视频致辞,共同祝愿本届中国影像节成功举办。</p>
  33. <p>2023年2月20日,由中央广播电视总台携手外交部、文化和旅游部联合举办的中国影像节“一带一路”主题展映活动以线上方式正式启动。来自40多个国家和地区的50多位政要、前政要、媒体机构负责人等嘉宾代表发来视频致辞,共同祝愿本届中国影像节成功举办。</p>
  34. <p>2023年2月20日,由中央广播电视总台携手外交部、文化和旅游部联合举办的中国影像节“一带一路”主题展映活动以线上方式正式启动。来自40多个国家和地区的50多位政要、前政要、媒体机构负责人等嘉宾代表发来视频致辞,共同祝愿本届中国影像节成功举办。</p>
  35. <p>2023年2月20日,由中央广播电视总台携手外交部、文化和旅游部联合举办的中国影像节“一带一路”主题展映活动以线上方式正式启动。来自40多个国家和地区的50多位政要、前政要、媒体机构负责人等嘉宾代表发来视频致辞,共同祝愿本届中国影像节成功举办。</p>
  36. <p>2023年2月20日,由中央广播电视总台携手外交部、文化和旅游部联合举办的中国影像节“一带一路”主题展映活动以线上方式正式启动。来自40多个国家和地区的50多位政要、前政要、媒体机构负责人等嘉宾代表发来视频致辞,共同祝愿本届中国影像节成功举办。</p>
  37. <p>2023年2月20日,由中央广播电视总台携手外交部、文化和旅游部联合举办的中国影像节“一带一路”主题展映活动以线上方式正式启动。来自40多个国家和地区的50多位政要、前政要、媒体机构负责人等嘉宾代表发来视频致辞,共同祝愿本届中国影像节成功举办。</p>
  38. </div>
  39. <style>
  40. .cnt h1,
  41. .cnt h2{
  42. position: sticky;
  43. top: 0;
  44. background-color: antiquewhite;
  45. height: 100px;
  46. line-height: 100px;
  47. left: 0;
  48. }
  49. </style>

flex布局

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

主轴方向

  1. .cnt{
  2. /* 先转换flex容器元素 */
  3. display: flex;
  4. /* 主轴方向 row默认水平, column垂直*/
  5. flex-direction: row;
  6. }


  1. .cnt{
  2. /* 先转换flex容器元素 */
  3. display: flex;
  4. /*nowrap默认不换行 wrap超出换行*/
  5. flex-direction: row;
  6. flex-wrap: nowrap;
  7. /* 合并简写 row wrap */
  8. flex-flow: row wrap;
  9. }

主轴排列方式

  1. .cnt{
  2. display: flex;
  3. /* 默认对齐 */
  4. place-content: start
  5. }

  1. .cnt{
  2. display: flex;
  3. /* 向右对齐 */
  4. place-content: end;
  5. /*合并简写*/
  6. place-content: start end
  7. /*子元素高度为 auto 时,右下角靠齐*/
  8. }


  1. .cnt{
  2. display: flex;
  3. /* 两端对齐 */
  4. place-content: space-between;
  5. }

  1. .cnt{
  2. display: flex;
  3. /* 分散对齐 */
  4. place-content: space-around;
  5. }

  1. .cnt{
  2. display: flex;
  3. /* 平均对齐 */
  4. place-content: space-evenly;
  5. }

交叉轴排列方式

  1. .cnt{
  2. display: flex;
  3. /* 默认值 stretch与start效果一样 居上*/
  4. place-items: stretch;
  5. place-items: start;
  6. }

  1. .cnt{
  2. display: flex;
  3. /*居中显示*/
  4. place-items: center;
  5. }

  1. .cnt{
  2. display: flex;
  3. /*居下*/
  4. place-items: end;
  5. }

子元素 flex: 放大比例 允许收缩 主轴空间

比较常用: flex: 1

  1. .cnt > .item{
  2. width: 80px;
  3. height: 50px;
  4. /* flex: 放大比例 允许收缩 主轴空间 */
  5. flex: 1 0 auto;
  6. /*简写*/
  7. /* flex: initial; */
  8. }

  1. .cnt > .item{
  2. width: 80px;
  3. height: 50px;
  4. /* 完全响应允许放大和自动收缩 */
  5. flex: 1 1 auto;
  6. /*简写*/
  7. /* flex: auto; */
  8. }

  1. .cnt > .item{
  2. width: 80px;
  3. height: 50px;
  4. /* 完全不响应*/
  5. flex: 0 0 auto;
  6. /*简写*/
  7. /* flex: none; */
  8. }

  1. .cnt > .item:first-child{
  2. /* 所占比例为1 */
  3. flex: 1;
  4. }
  5. .cnt > .item:last-child{
  6. /* 所占比例为3 */
  7. flex: 3;
  8. }

子元素 调整顺序

  1. /* order 调整顺序,数值越大越靠后 默认都是0*/
  2. .cnt > .item:first-child{
  3. /* 所占比例为1 */
  4. flex: 1;
  5. order: 3
  6. }
  7. .cnt > .item:last-child{
  8. /* 所占比例为3 */
  9. flex: 3;
  10. order: 1
  11. }

总结:

定位

  1. 静态定位:static,默认定位方式
  2. 相对定位:relation, 还会在文档流中,所占空间不会释放
  3. 绝对定位: absolute, 宽度会收缩到内容宽度,会释放空间,但是还会在父容器
  4. 固定定: fixed, 对最初包含块(html)进行偏移
  5. 粘性定位: stickyfixed自动切换,元素自动悬停

flex响应式布局

  1. /* 先转换flex容器元素 */
  2. /* flex的块级元素 比较常用*/
  3. display: flex;
  4. /* flex的内联元素 */
  5. display: inline-flex;
  6. /* 主轴方向 row默认水平, column垂直*/
  7. flex-direction: row;
  8. /* 换行 默认nowrap不换行 wrap超出换行 */
  9. flex-wrap: wrap;
  10. /* 合并简写 row wrap */
  11. flex-flow: row wrap;
  12. /* 主轴排列方式 */
  13. place-content: start;
  14. place-content: end;
  15. /* 两端对齐 */
  16. place-content: space-between;
  17. /* 分散对齐 */
  18. place-content: space-around;
  19. /* 平均对齐 */
  20. place-content: space-evenly;
  21. /* 可简写 */
  22. place-content: start end;
  23. /* 交叉轴排列方式 默认值 stretch*/
  24. place-items: stretch;
  25. /*居上*/
  26. place-items: start;
  27. /*居中*/
  28. place-items: center;
  29. /*居下*/
  30. place-items: end;
  31. /* flex: 放大比例 允许收缩 主轴空间 */
  32. flex: 0 1 auto;
  33. /* 完全响应允许放大和自动收缩 */
  34. flex: 1 1 auto;
  35. /* 完全不响应 */
  36. flex: 0 0 auto;
  37. /* 所占比例为1 */
  38. flex: 1;
  39. /* order 调整顺序,数值越大越靠后 默认都是0*/
  40. order: 2;
声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议