博客列表 >定位三列布局与导航,flex弹性盒子布局,容器项目对齐方式,order控制项目顺序-web前端第9章6.22

定位三列布局与导航,flex弹性盒子布局,容器项目对齐方式,order控制项目顺序-web前端第9章6.22

希望
希望原创
2020年06月23日 16:05:04691浏览

1.定位三列布局与导航


  • 如下图导航与三列布局图例:
    定位三列布局与导航
  • 代码如下:

    1. <!DOCTYPE html>
    2. <html lang="en">
    3. <head>
    4. <meta charset="UTF-8" />
    5. <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    6. <title>导航和三列布局</title>
    7. <style>
    8. /* 初始化 */
    9. * {
    10. margin: 0;
    11. padding: 0;
    12. box-sizing: border-box;
    13. }
    14. a {
    15. text-decoration: none;
    16. color: #666;
    17. }
    18. nav {
    19. height: 40px;
    20. background-color: lightsteelblue;
    21. padding: 0 50px;
    22. /* 转为弹性盒布局 */
    23. display: flex;
    24. }
    25. nav a {
    26. height: inherit;
    27. line-height: 40px;
    28. padding: 0 15px;
    29. }
    30. nav a:hover {
    31. background-color: seagreen;
    32. color: white;
    33. }
    34. /* 登录注册要靠右 */
    35. nav a:last-of-type {
    36. margin-left: auto;
    37. }
    38. /* 页眉与页脚 */
    39. .header,
    40. .footer {
    41. height: 40px;
    42. background-color: lightsteelblue;
    43. }
    44. .content {
    45. width: 960px;
    46. margin: auto;
    47. /* background-color: #ccc; */
    48. }
    49. .content ul li {
    50. float: left;
    51. line-height: 40px;
    52. padding: 0 15px;
    53. }
    54. .content ul li:hover {
    55. background-color: limegreen;
    56. }
    57. /* 页脚 */
    58. .content p {
    59. text-align: center;
    60. line-height: 40px;
    61. }
    62. /* 主体用定位来做 */
    63. .container {
    64. width: 1600px;
    65. margin: 10px auto;
    66. /* background-color: seashell; */
    67. min-height: 800px;
    68. /* 防止浮动元素塌陷 */
    69. overflow: hidden;
    70. }
    71. .container > .left {
    72. width: 300px;
    73. background-color: navajowhite;
    74. min-height: 950px;
    75. float: left;
    76. }
    77. .container > .right {
    78. width: 300px;
    79. background-color: navajowhite;
    80. min-height: 950px;
    81. float: right;
    82. }
    83. .container > .main {
    84. background-color: plum;
    85. min-height: 950px;
    86. width: 980px;
    87. float: left;
    88. margin-left: 10px;
    89. }
    90. </style>
    91. </head>
    92. <body>
    93. <header>
    94. <nav>
    95. <div class="content">
    96. <a href="">首页</a>
    97. <a href="">公司产品</a>
    98. <a href="">行业新闻</a>
    99. <a href="">联系我们</a>
    100. </div>
    101. <a href="">注册/登录</a>
    102. </nav>
    103. </header>
    104. <!-- 主体 -->
    105. <div class="container">
    106. <div class="left"></div>
    107. <div class="main"></div>
    108. <div class="right"></div>
    109. </div>
    110. <!-- 页脚 -->
    111. <div class="footer">
    112. <div class="content">
    113. <p>脚部</p>
    114. </div>
    115. </div>
    116. </body>
    117. </html>

    2.内容多行或多列,分3列并在中间加分割竖线

    1. <style>
    2. div {
    3. border: 1px solid #000;
    4. padding: 1rem;
    5. width: 60rem;
    6. margin: 30px auto;
    7. }
    8. div {
    9. /* 分列显示 */
    10. column-count: 3;
    11. /* 加分割条 */
    12. column-rule: 1px solid red;
    13. }
    14. </style>

    3.flex弹性盒子布局

  • FlexBox弹性盒子多行布局
  • 单行容器的项目对齐方式
  • 多行容器的项目对齐方式
  • 主轴为垂直方向时的项目对齐方式
  • 交叉轴时的项目对齐方式
  • 主轴方向与项目排列简写
  • 如下图:
    flex弹性盒子布局
  • 例举其中一个flex弹性盒子多行布局代码如下:

    1. <!DOCTYPE html>
    2. <html lang="en">
    3. <head>
    4. <meta charset="UTF-8" />
    5. <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    6. <title>FlexBox弹性盒子多行布局</title>
    7. <style>
    8. .container {
    9. width: 300px;
    10. /* 弹性容器,用火狐 */
    11. display: flex;
    12. }
    13. .container > .item {
    14. width: 60px;
    15. width: 50px;
    16. width: 150px;
    17. }
    18. /* 宽度过多时,换行显示 */
    19. .container {
    20. flex-wrap: wrap;
    21. }
    22. </style>
    23. </head>
    24. <body>
    25. <div class="container">
    26. <div class="item">1</div>
    27. <div class="item">2</div>
    28. <div class="item">3</div>
    29. <div class="item">4</div>
    30. <div class="item">5</div>
    31. <!-- <div class="item">6</div> -->
    32. <!-- <div class="item">7</div> -->
    33. <!-- <div class="item">8</div> -->
    34. </div>
    35. </body>
    36. </html>

    4.order控制项目顺序

  • 注意代码使用:
    1. <style>
    2. .container > .item:first-of-type {
    3. order: 3;
    4. }
    5. .container > .item:last-of-type {
    6. order: 5;
    7. }
    8. </style>

    5.order调整元素顺序,例如小相册

  • 进行上下顺序调整,如图:
    order调整元素顺序
  • 代码如下:

    1. <!DOCTYPE html>
    2. <html lang="en">
    3. <head>
    4. <meta charset="UTF-8" />
    5. <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    6. <title>order调整元素顺序,小相册</title>
    7. <style>
    8. .container {
    9. width: 300px;
    10. display: flex;
    11. flex-direction: column;
    12. }
    13. .container > .item {
    14. border: 1px solid #000;
    15. padding: 10px;
    16. display: flex;
    17. /* 加以下定位才能上下移动 */
    18. position: relative;
    19. }
    20. .container > .item > div {
    21. display: flex;
    22. }
    23. </style>
    24. </head>
    25. <body>
    26. <div class="container">
    27. <div class="item">
    28. images-1.jpg
    29. <div>
    30. <button onclick="up(this)">Up</button
    31. ><button onclick="down(this)">Down</button>
    32. </div>
    33. </div>
    34. <div class="item">
    35. images-2.jpg
    36. <div>
    37. <button onclick="up(this)">Up</button
    38. ><button onclick="down(this)">Down</button>
    39. </div>
    40. </div>
    41. <div class="item">
    42. images-3.jpg
    43. <div>
    44. <button onclick="up(this)">Up</button
    45. ><button onclick="down(this)">Down</button>
    46. </div>
    47. </div>
    48. </div>
    49. <!-- 运用到以下js -->
    50. <script>
    51. let up = (ele) => (ele.offsetParent.style.order -= 1);
    52. let down = (ele) => (ele.offsetParent.style.order += 1);
    53. </script>
    54. </body>
    55. </html>
声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议