欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

媒体查询,大屏适配,定位及flex布局

程序员文章站 2022-04-08 18:22:59
...

一、媒体查询,大屏适配

  • 屏幕尺寸>=980px时:
    1. @media (min-width: 980px) {
    2. html {
    3. font-size: 20px;
    4. }
    5. }
  • 屏幕>=375px,<980px时:
    1. @media only screen and (min-width: 375px) and (max-width: 979px) {
    2. html {
    3. font-size: 16px;
    4. }
    5. }
  • 屏幕小于375px时:
    1. @media (max-width: 374px) {
    2. html {
    3. font-size: 14px;
    4. }
    5. }

二、固定定位:登陆页面

  • 静态定位 position:static (默认)
  • 相对定位 position:relative
    元素仍在文档流中,所占空间不释放,只是相当自身原来的位置进行偏移,使用 top:20px 等进行偏移。
  • 绝对定位 position:absolute
    不再相对自身,而是相对它的包含块,定位包含块不能是static元素,必须是定位元素,如果一直向上找不到可以定位的元素,就当对于body。
    • 相对定位:相对自身,在文档流中;
    • 绝对定位:相对包含块,不在文档流中。
  • 固定定位:position:fixed
    固定定位是绝对定位的子集,包含块是固定的,永远是body。
  1. <!DOCTYPE html>
  2. <html lang="zh-CN">
  3. <head>
  4. <meta charset="UTF-8" />
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge" />
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  7. <title>Document</title>
  8. </head>
  9. <body>
  10. <div class="top">
  11. <div class="logo"></div>
  12. <button>登陆</button>
  13. </div>
  14. <div class="login">
  15. <div class="bg"></div>
  16. <form action="" class="login-form">
  17. <input type="text" placeholder="请输入用户名" />
  18. <input type="password" placeholder="请输入密码" />
  19. <button type="submit">登陆</button>
  20. </form>
  21. </div>
  22. <style>
  23. * {
  24. padding: 0;
  25. margin: 0;
  26. box-sizing: border-box;
  27. }
  28. .top {
  29. height: 120px;
  30. background-color: blueviolet;
  31. display: flex;
  32. }
  33. .top .logo {
  34. font-size: 24px;
  35. color: white;
  36. padding: 1em 2em;
  37. }
  38. .top button {
  39. margin-left: auto;
  40. width: 5em;
  41. border: none;
  42. height: 3em;
  43. padding: 0.5em 0.5em;
  44. border-radius: 0.5em;
  45. }
  46. .login .login-form {
  47. border: 1px solid red;
  48. position: fixed;
  49. background-color: white;
  50. top: 10em;
  51. left: 20em;
  52. right: 20em;
  53. padding: 2em;
  54. min-width: 13em;
  55. }
  56. .login .login-form :nth-of-type(n) {
  57. display: block;
  58. margin: 1em 0;
  59. }
  60. .login .login-form :last-child {
  61. width: 11em;
  62. height: 2em;
  63. background-color: royalblue;
  64. border: none;
  65. border-radius: 0.5em;
  66. color: white;
  67. }
  68. .login .bg {
  69. position: fixed;
  70. background-color: rgba(0, 0, 0, 0.3);
  71. top: 0;
  72. bottom: 0;
  73. left: 0;
  74. right: 0;
  75. }
  76. </style>
  77. </body>
  78. </html>

媒体查询,大屏适配,定位及flex布局

三、flex常用属性

  • 声明容器:display: flex;
  • 行方向排列:flex-direction: row;
  • 列方向排列:flex-direction: column;
  • 允许换行:flex-wrap: wrap;

    1. .container {
    2. display: flex;
    3. height: 20em;
    4. border: 1px solid lawngreen;
    5. flex-wrap: wrap;
    6. flex-direction: row; /* 水平排列 */
    7. /* flex-direction: column; 垂直排列 */
    8. flex-flow:row nowap; /* 组合使用:行排列,不换行 */
    9. }
    10. .container > .item {
    11. width: 20em;
    12. padding: 1em;
    13. background-color: lightskyblue;
    14. }

    媒体查询,大屏适配,定位及flex布局

  • 盒子对齐方式:place-content: start(靠左,默认值)end(靠右)center(居中) space-between(两段对齐) space-around(分散对齐) space-evenly(平均对齐)

    1. .container {
    2. place-content: start;
    3. /* 默认值 靠左*/
    4. place-content: end;
    5. /* 靠右 */
    6. place-content: center;
    7. /* 居中 */
    8. place-content: space-between;
    9. /* 两段对齐 */
    10. }

    媒体查询,大屏适配,定位及flex布局
    place-content: start; 默认值 靠左
    媒体查询,大屏适配,定位及flex布局
    place-content: end; 靠右
    媒体查询,大屏适配,定位及flex布局
    place-content: center;居中
    媒体查询,大屏适配,定位及flex布局
    place-content: space-between;两段对齐
    媒体查询,大屏适配,定位及flex布局
    place-content: space-around;分散对齐
    媒体查询,大屏适配,定位及flex布局
    place-content: space-evenly;平均对齐

flex容器上的重点3个属性:

  • 1、flex-flow:主轴方向,换行。
  • 2、place-content:项目在主轴上的排列与空间分配。
  • 3、place-items:项目在交叉轴上的对齐。

媒体查询,大屏适配,定位及flex布局
place-items: start 上对齐
媒体查询,大屏适配,定位及flex布局
place-items: end; 下对齐
媒体查询,大屏适配,定位及flex布局
place-items: center 居中对齐

flex的项目属性

  • flex:放大因子 收缩因子 计算宽度
    flex:0 1 aoto;
    优先级:max-width > 计算宽度 >width
    order:0 进行排序,默认都是0,
    1. .container .item:nth-of-type(2) {
    2. background-color: limegreen;
    3. order: 1;
    4. }
    媒体查询,大屏适配,定位及flex布局