爬行的蜗牛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: golang Linux PHP
查看: 103|回复: 0

自适应布局(附源码)

[复制链接]

152

主题

48

回帖

1137

积分

管理员

积分
1137
发表于 2024-12-22 20:25:55 | 显示全部楼层 |阅读模式
640.gif

  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>Document</title>
  7.     <style>
  8.         /* 重置一下 */
  9.         * {
  10.             padding: 0;
  11.             border: 0;
  12.             margin: 0;
  13.             outline: 0;
  14.             box-sizing: border-box;
  15.         }

  16.         /* 搬砖 */
  17.         .MLGB {
  18.             /* height: 500px; */
  19.             background-color: antiquewhite;
  20.         }

  21.         .header {
  22.             display: flex;
  23.             align-items: center;
  24.             height: 50px;
  25.             font-size: 18px;
  26.             padding: 0 10px;
  27.             color: #fff;
  28.             text-align: center;
  29.             background-color: #f97c7c;
  30.         }

  31.         .main {
  32.             display: flex;
  33.         }

  34.         /* 切换菜单的按钮 */
  35.         .toggle-menu {
  36.             height: 30px;
  37.             line-height: 30px;
  38.             text-align: center;
  39.             width: 30px;
  40.             font-size: 14px;
  41.             background-color: #607d8b;
  42.             margin-right: 10px;
  43.         }

  44.         /* 菜单 */
  45.         .menu {
  46.             flex: 0 0 140px;
  47.             background-color: #5ed5e4;
  48.         }

  49.         .menu .li {
  50.             height: 30px;
  51.             line-height: 30px;
  52.             padding: 0 10px;
  53.             border-bottom: 1px solid #91dfe8;
  54.         }

  55.         .nav {
  56.             /* height: 100px; */
  57.             display: flex;
  58.             flex-wrap: wrap;
  59.             flex: 1 1 100%;
  60.         }

  61.         .nav::after {
  62.             content: "";
  63.             display: block;
  64.             height: 0;
  65.             clear: both;
  66.             overflow: hidden;
  67.         }

  68.         .box {
  69.             display: flex;
  70.             justify-content: center;
  71.             flex: 1 1 auto;
  72.             min-width: 160px;
  73.             height: 100px;
  74.             line-height: 100px;
  75.             text-decoration: none;
  76.             font-size: 18px;
  77.             border: 1px solid #ddd;
  78.         }


  79.         /* 媒体查询 */
  80.         @media screen and (min-width: 500px) {
  81.             .header .toggle-menu {
  82.                 display: none;
  83.             }
  84.         }

  85.         @media screen and (max-width: 500px) {
  86.             .header .toggle-menu {
  87.                 display: block;
  88.             }

  89.             .menu {
  90.                 display: none;
  91.             }
  92.         }
  93.     </style>
  94. </head>

  95. <body>
  96.     <div class="MLGB">
  97.         <!-- 头部 -->
  98.         <div class="header">
  99.             <div id="toggle" class="toggle-menu">菜</div>
  100.             <div id="facility">设备</div>
  101.             <div class="title">欢迎大家来到,双十一天猫主会场!</div>
  102.         </div>
  103.         <!-- 主要内容区域 -->
  104.         <div class="main">
  105.             <!-- 左侧菜单 -->
  106.             <div id="menu" class="menu">
  107.                 <div class="li">购物车</div>
  108.                 <div class="li">我的收藏</div>
  109.                 <div class="li">浏览记录</div>
  110.                 <div class="li">已经购买</div>
  111.                 <div class="li">设置</div>
  112.                 <div class="li">退出</div>
  113.             </div>
  114.             <!-- 分会场入口 -->
  115.             <div class="nav">
  116.                 <a class="box" href="##">鞋子</a>
  117.                 <a class="box" href="##">箱包</a>
  118.                 <a class="box" href="##">数码</a>
  119.                 <a class="box" href="##">服装</a>
  120.                 <a class="box" href="##">乐器</a>
  121.                 <a class="box" href="##">户外</a>
  122.                 <a class="box" href="##">家具</a>
  123.                 <a class="box" href="##">家具</a>
  124.                 <a class="box" href="##">影视</a>
  125.                 <a class="box" href="##">美食</a>
  126.             </div>
  127.         </div>
  128.     </div>

  129. </body>
  130. <script>
  131.     let toggle = document.querySelector('#toggle');
  132.     let menu = document.querySelector('#menu');
  133.     let facility =document.querySelector('#facility');
  134.     toggle.onclick = function () {
  135.         if (menu.style.display == 'block') {
  136.             menu.style.display = 'none';
  137.         }else{
  138.             menu.style.display = 'block';
  139.         }
  140.     }
  141.     facility.addEventListener('click',()=>{
  142.         console.log(1);
  143.         console.log(navigator.userAgent);
  144.     })
  145. </script>

  146. </html>
复制代码
  1. 头部(Header)
  2. 包含一个切换菜单的按钮(toggle-menu),用于在小屏幕设备上显示或隐藏菜单。
  3. 一个标题(title),显示“欢迎大家来到,双十一天猫主会场!”。
  4. 主要内容区域(Main)
  5. 左侧菜单(menu),包含购物车、我的收藏、浏览记录、已经购买、设置和退出等选项。
  6. 分会场入口(nav),包含多个链接(box),指向不同的商品分类,如鞋子、箱包、数码等。
  7. 重置样式
  8. 所有元素的padding、border、margin、outline和box-sizing属性被重置。
  9. 头部样式(Header)
  10. 显示为一行,高度为50px,字体大小18px,背景颜色为#f97c7c。
  11. 文本居中显示,颜色为白色。
  12. 切换菜单按钮样式(Toggle Menu)
  13. 高度和行高均为30px,背景颜色为#607d8b,用于在小屏幕设备上切换菜单显示。
  14. 菜单样式(Menu)
  15. 宽度固定为140px,背景颜色为#5ed5e4。
  16. 每个菜单项(li)高度为30px,有1px的底部边框。
  17. 分会场入口样式(Nav)
  18. 显示为一行,可以包裹多行。
  19. 每个入口(box)居中显示,高度和行高均为100px,字体大小18px,边框1px。
  20. 媒体查询(Media Queries)
  21. 当屏幕宽度大于500px时,隐藏切换菜单按钮,显示菜单。
  22. 当屏幕宽度小于或等于500px时,显示切换菜单按钮,隐藏菜单。
  23. 切换菜单功能
  24. toggle.onclick:当点击切换按钮时,检查菜单的显示状态,如果显示则隐藏,如果隐藏则显示。
复制代码


您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表