최정임 최정임 2023-06-30
230630 최정임 반응형 작업중
@4093128a80cbb2f9bc652acab01f9169c0bc14bd
client/resources/css/layout.css
--- client/resources/css/layout.css
+++ client/resources/css/layout.css
@@ -1,7 +1,7 @@
 header{background: #13833b; padding: 0 2rem;}
 .logo {
   display: flex;
-  width: 30rem;
+  /* width: 30rem; */
   /* border: 1px solid red; */
   height: 7rem;
   justify-content: center;
@@ -58,12 +58,12 @@
   color: #3b3d3d;
   font-size: 28px;
   font-weight: bolder;
-  width: 41rem;
+  /* width: 41rem; */
   padding-left: 9rem;
 }
 
 .barinfo {
-  width: 100%;
+  /* width: 100%; */
   display: flex;
   gap: 15rem;
   align-items: baseline;
@@ -115,7 +115,6 @@
 .board_element {
   transition: 0.3s;
   display: flex;
-  flex-wrap: wrap;
   align-items: center;
   margin-bottom: 15px;
   justify-content: space-between;
client/resources/css/main.css
--- client/resources/css/main.css
+++ client/resources/css/main.css
@@ -25,9 +25,9 @@
   }
   .top ul {
     padding: 1rem 0;
+    justify-content: space-evenly;
   }
   .top li {
-    width: calc(100% / 6);
     text-align: center;
   }
   .top h3 {
client/resources/css/responsive.css
--- client/resources/css/responsive.css
+++ client/resources/css/responsive.css
@@ -1,8 +1,7 @@
 @media all and (max-width: 479px) {
   #root {
-    width: fit-content;
   }
   .main-warp > div {
-    display: block;
+    display: block !important;
   }
 }
client/resources/css/test.css
--- client/resources/css/test.css
+++ client/resources/css/test.css
@@ -1,3 +1,124 @@
 .test {
     font-size: 50px;
- }
(No newline at end of file)
+ }
+
+ @media (max-width: 375px) {
+    .box_title {
+      /* margin-top: 172px; */
+      width: 1000px;
+      /* border: 1px solid; */
+      color: #9c9b9a;
+      text-align: center;
+      /* margin-right: 30px; */
+      font-size: 15px;
+    }
+    .box {
+      width: 150px;
+      margin-top: 10px;
+      /* margin-right: -32px; */
+      text-align: end;
+      float: left;
+      margin: 0px;
+    }
+    .boxmenu img {
+      width: 35px;
+      display: none;
+    }
+    .boxmenu {
+      width: 92vw;
+      height: 206px;
+      margin: 10px;
+      border-radius: 20px;
+    }
+    .boxborder {
+      display: none;
+    }
+    .box {
+      width: 150px;
+      margin-top: 10px;
+      margin-right: 42px;
+      text-align: end;
+      float: left;
+    }
+    .box .flex {
+      /* border: 1px solid red; */
+      display: flex;
+      align-items: center;
+      width: 190px;
+      margin: 0px -8px 5px;
+    }
+    .box_title {
+      /* margin-top: 172px; */
+      width: 1000px;
+      /* border: 1px solid; */
+      color: #9c9b9a;
+      text-align: center;
+      /* margin-right: 30px; */
+      font-size: 15px;
+    }
+    .main_section h1 {
+      font-size: 20px;
+      color: #13833b;
+      margin: 3rem 0;
+      text-align: center;
+      width: 100vw;
+    }
+    .verticalbar {
+      width: 93vw;
+      border-radius: 15px;
+      background-color: #dddddd00;
+      margin-bottom: 3rem;
+      margin: 10px;
+      padding: 1rem;
+    }
+    .barinfo {
+      gap: 0;
+      width: 90vw;
+    }
+    .barinfo img {
+      width: 30px;
+      margin-top: 15px;
+    }
+    .bar_title {
+      color: #3b3d3d;
+      font-size: 8px;
+      gap: none;
+      display: inline;
+      display: none;
+    }
+    .main_section .elementtxt {
+      display: flex;
+      font-size: 8px;
+      width: 90px;
+      justify-content: center;
+      align-items: center;
+    }
+    .bar_element {
+      width: 100vw;
+      border-radius: 20px;
+      height: 90px;
+      line-height: 30px;
+      background: #dddddd;
+      text-align: center;
+      margin: 5px;
+    }
+    .boxmenu img {
+      display: none;
+    }
+    .board_title {
+      color: #ffff;
+      font-size: 16px;
+    }
+    .board {
+      background: #ffffff;
+      border-radius: 15px;
+      width: 93vw;
+      box-shadow: 0px 5px 20px #00000038;
+      padding: 2rem;
+      margin: 30px 10px;
+    }
+    .box_num {
+      color: #13833b;
+      font-size: 17px;
+    }
+  }
(No newline at end of file)
client/resources/images/close.png (Binary)
--- client/resources/images/close.png
+++ client/resources/images/close.png
Binary file is not shown
client/views/layout/Header.vue
--- client/views/layout/Header.vue
+++ client/views/layout/Header.vue
@@ -1,6 +1,51 @@
 <template>
   <header class="flex-between">
-    <div class="logo">
+    <div class="flex-between2">
+      <ul
+        class="submenu contenedor-menu2"
+        :class="{ 'show-menu ': showSubmenu }"
+      >
+        <li
+          v-for="(item, index) in menuItems"
+          :key="index"
+          style="color: #3fb52d"
+        >
+          <span @click="toggleSubMenu(index)">
+            {{ item.title }}
+            <i
+              :class="{
+                'fa fa-chevron-down': item.open,
+                'fa fa-chevron-up': !item.open,
+              }"
+            ></i>
+          </span>
+          <ul v-if="item.open">
+            <li
+              v-for="(subItem, subIndex) in item.subMenu"
+              :key="subIndex"
+              style="color: #333"
+            >
+              <router-link :to="subItem.route"> {{ subItem.title }}</router-link>
+            </li>
+           
+          </ul>
+        </li>
+        <li style="color: #3fb52d"><router-link to="/Mypage.page">
+          마이페이지
+        </router-link></li>
+            <li style="color: #3fb52d"><router-link to="/Login.page">
+          로그인
+        </router-link></li>
+      </ul>
+    </div>
+    <div class="logo flex">
+      <input type="checkbox" id="menuicon" @click="toggleSubmenu()" />
+      <label class="menu-icon" for="menuicon">
+        <img  :src="imageSrc" alt="Image"  @click="toggle()"/>
+        <!-- <span></span>
+      <span></span>
+      <span></span> -->
+      </label>
       <router-link to="/">
         <span class="logotxt"> AI 안전통합 횡단보도 플랫폼 </span>
       </router-link>
@@ -13,71 +58,62 @@
             @mouseleave="showDropdown = false"
             >플랫폼 소개
           </span>
-          <div
-            class="nav"
-            v-show="showDropdown"
-            @mouseover="showDropdown = true"
-            @mouseleave="showDropdown = false"
-          >
-            <div class="menu flex-end">
-              <ul>
-                <li
-                  v-for="option in dropdownOptions"
-                  :key="option.value"
-                  @click="navigateToPage(option)"
-                >
-                  <router-link :to="option.route">{{
-                    option.label
-                  }}</router-link>
-                </li>
-              </ul>
-              <ul>
-                <li
-                  v-for="option in dropdownOptions2"
-                  :key="option.value"
-                  @click="navigateToPage(option)"
-                >
-                  <router-link :to="option.route">{{
-                    option.label
-                  }}</router-link>
-                </li>
-              </ul>
-              <ul>
-                <li
-                  v-for="option in dropdownOptions5"
-                  :key="option.value"
-                  @click="navigateToPage(option)"
-                >
-                  <router-link :to="option.route">{{
-                    option.label
-                  }}</router-link>
-                </li>
-              </ul>
-              <ul>
-                <li
-                  v-for="option in dropdownOptions3"
-                  :key="option.value"
-                  @click="navigateToPage(option)"
-                >
-                  <router-link :to="option.route">{{
-                    option.label
-                  }}</router-link>
-                </li>
-              </ul>
-              <ul>
-                <li
-                  v-for="option in dropdownOptions4"
-                  :key="option.value"
-                  @click="navigateToPage(option)"
-                >
-                  <router-link :to="option.route">{{
-                    option.label
-                  }}</router-link>
-                </li>
-              </ul>
-            </div>
-          </div>
         </router-link>
+        <div
+          class="nav"
+          v-show="showDropdown"
+          @mouseover="showDropdown = true"
+          @mouseleave="showDropdown = false"
+        >
+          <div class="menu flex-end">
+            <ul>
+              <li
+                v-for="option in dropdownOptions"
+                :key="option.value"
+                @click="navigateToPage(option)"
+              >
+                <router-link :to="option.route">{{ option.label }}</router-link>
+              </li>
+            </ul>
+            <ul>
+              <li
+                v-for="option in dropdownOptions2"
+                :key="option.value"
+                @click="navigateToPage(option)"
+              >
+                <router-link :to="option.route">{{ option.label }}</router-link>
+              </li>
+            </ul>
+            <ul>
+              <li
+                v-for="option in dropdownOptions5"
+                :key="option.value"
+                @click="navigateToPage(option)"
+              >
+                <router-link :to="option.route">{{ option.label }}</router-link>
+              </li>
+            </ul>
+            <ul>
+              <li
+                v-for="option in dropdownOptions3"
+                :key="option.value"
+                @click="navigateToPage(option)"
+              >
+                <router-link :to="option.route">{{ option.label }}</router-link>
+              </li>
+            </ul>
+            <ul>
+              <li
+                v-for="option in dropdownOptions4"
+                :key="option.value"
+                @click="navigateToPage(option)"
+              >
+                <router-link :to="option.route">{{ option.label }}</router-link>
+              </li>
+            </ul>
+          </div>
+        </div>
+
         <router-link to="/RealtimeStatus.page">
           <span
             @mouseover="showDropdown = true"
@@ -179,34 +215,6 @@
           </router-link>
         </li>
       </ul> -->
-  <header class="flex-between2">
-    <input type="checkbox" id="menuicon" @click="toggleSubmenu()" />
-    <label class="menu-icon" for="menuicon">
-      <span></span>
-      <span></span>
-      <span></span>
-    </label>
-    <div class="contenedor-menu2" :class="{ 'show-menu': showSubmenu }">
-      <ul class="submenu">
-        <li v-for="(item, index) in menuItems" :key="index">
-          <span @click="toggleSubMenu(index)">
-            {{ item.title }}
-            <i
-              :class="{
-                'fa fa-chevron-down': item.open,
-                'fa fa-chevron-up': !item.open,
-              }"
-            ></i>
-          </span>
-          <ul v-if="item.open">
-            <li v-for="(subItem, subIndex) in item.subMenu" :key="subIndex">
-              {{ subItem }}
-            </li>
-          </ul>
-        </li>
-      </ul>
-    </div>
-  </header>
 </template>
 
 <script>
@@ -215,6 +223,7 @@
 export default {
   data() {
     return {
+      imageSrc: 'https://firebasestorage.googleapis.com/v0/b/senior-care-system-dcf90.appspot.com/o/menu2.png?alt=media&token=6f3b2966-0820-419d-ba82-97290e71a7b5',
       menuOpen: false,
       showDropdown: false,
       showSubmenu: false,
@@ -299,53 +308,54 @@
         {
           title: "플랫폼 소개",
           open: false,
-          subMenu: ["스마트 횡단보도란?"],
-          value: "Introduction",
-          route: "/Introduction.page",
+          subMenu: [
+            { title: "스마트 횡단보도란?", route: "/Introduction.page" },
+          ]
         },
         {
           title: "현황관제",
           open: false,
           subMenu: [
-            "실시간 현황관제",
-            "상황발생 정보조회",
-            "장애 발생 정보조회",
-            "횡단보도 목록조회",
+          { title: "실시간 현황관제", route: "/RealtimeStatus.page" },
+          { title: "상황발생 정보조회", route: "/SituationSearch.page" },
+          { title: "장애 발생 정보조회", route: "/ErrorSearch.page" },
+          { title: "횡단보도 목록조회", route: "/CrosswalkListSearch.page" },
           ],
-          value: "RealtimeStatus",
-          route: "/RealtimeStatus.page",
         },
         {
           title: "통계분석",
           open: false,
-          subMenu: ["통계분석"],
+          subMenu: [{ title: "통계분석", route: "/Analysis.page" },],
         },
         {
           title: "횡단보도 관리",
           open: false,
-          subMenu: ["횡단보도 등록", "횡단보도 조회"],
+          subMenu: [
+            { title: "횡단보도 등록", route: "/CrosswalkInsert.page" },
+            { title: "횡단보도 조회", route: "/CrosswalkSearch.page" },
+            ],
         },
         {
           title: "시스템 관리",
           open: false,
           subMenu: [
-            "사용자 관리",
-            "유지보수 담당자 관리",
-            "표준노드 관리",
-            "행정동 관리",
-            "데이터 수집기록",
+            { title: "사용자 관리", route: "/UserManagement.page" },
+            { title: "유지보수 담당자 관리", route: "/ChargeManagement.page" },
+            { title: "표준노드 관리", route: "/NodeManagement.page" },
+            { title: "행정동 관리", route: "/DongManagement.page" },
+            { title: "데이터 수집기록", route: "/DataRecord.page" },
           ],
         },
-        {
-          title: "마이페이지",
-          open: false,
-          subMenu: [],
-        },
-        {
-          title: "로그인",
-          open: false,
-          subMenu: [],
-        },
+        // {
+        //   title: "마이페이지",
+        //   open: false,
+        //   route: "/Mypage.page" 
+        // },
+        // {
+        //   title: "로그인",
+        //   open: false,
+        //   subMenu: [{ title: "로그인", route: "/Login.page" },],
+        // },
       ],
     };
   },
@@ -354,6 +364,14 @@
       this.menuItems[index].open = !this.menuItems[index].open;
       this.showSubmenu = true;
       console.log("toggleSubMenu 호출됨");
+    },
+    toggle(){
+
+      if (this.imageSrc === 'https://firebasestorage.googleapis.com/v0/b/senior-care-system-dcf90.appspot.com/o/menu2.png?alt=media&token=6f3b2966-0820-419d-ba82-97290e71a7b5') {
+        this.imageSrc = 'https://firebasestorage.googleapis.com/v0/b/senior-care-system-dcf90.appspot.com/o/close.png?alt=media&token=3bb79767-6d6e-4742-aede-5a2e065daee2';
+      } else {
+        this.imageSrc = 'https://firebasestorage.googleapis.com/v0/b/senior-care-system-dcf90.appspot.com/o/menu2.png?alt=media&token=6f3b2966-0820-419d-ba82-97290e71a7b5';
+      }
     },
     toggleSubmenu: function () {
       this.showSubmenu = !this.showSubmenu;
@@ -393,6 +411,9 @@
 </script>
 
 <style scoped>
+.menu-icon {
+  display: none;
+}
 header {
   position: relative;
 }
@@ -472,22 +493,32 @@
 .flex-between2 {
   display: none;
 }
+
 @media (max-width: 749px) {
+  .logo {
+    align-items: unset;
+    padding-top: 2rem;
+    gap: 1rem;
+  }
+  .menu-icon img {
+    width: 3rem;
+  }
   .logotxt {
     text-align: center;
-    width: 100vw;
-    position: absolute;
+    /* width: 100vw;
+    position: absolute; */
     left: 0%;
     top: 22%;
+    font-size: 2rem;
   }
   input#menuicon {
     display: none;
   }
   input#menuicon + label {
     display: block;
-    width: 30px;
+    /* width: 30px; */
     height: 40px;
-    position: absolute;
+    /* position: absolute; */
     left: 2%;
     top: 25px;
     cursor: pointer;
@@ -525,7 +556,7 @@
   }
 
   .flex-between2 {
-    width: 100vw;
+    /* width: 100vw; */
     position: absolute;
     top: 0;
     display: flex;
@@ -559,11 +590,11 @@
     display: none;
     position: absolute;
     top: 100%;
-    left: 0;
-    width: 100%;
+    left: -21px;
+    /* padding-left: 3rem; */
     background-color: #fff;
     z-index: 999;
-    min-width: 300px;
+    min-width: 260px;
     margin-top: 70px;
     /* display: inline-block; */
     /* /background: #fff; */
@@ -578,15 +609,23 @@
 
   .show-menu {
     display: block;
+    padding: 1rem 0;
+
   }
 
   .contenedor-menu2 li {
-    width: 100vw;
-    text-align: center;
-    margin-top: 20px;
-    margin-bottom: 20px;
+    width: -webkit-fill-available;
+    text-align: left;
+    /* margin-top: 20px; */
+    padding: 1rem 2rem;
+    /* margin-bottom: 20px;
+
     /* border: 1px solid green; */
   }
+  .contenedor-menu2 li ul {
+    margin-top: 1rem;
+  }
+  /* .contenedor-menu2 li ul li{padding: 2rem 1rem 1rem 1rem;} */
   .contenedor-menu2 a {
     width: 100vw;
     text-align: center;
@@ -607,6 +646,7 @@
 
   .contenedor-menu2 ul {
     list-style: none;
+    width: -webkit-fill-available;
   }
 
   .contenedor-menu2 .menu2 li a {
client/views/pages/CrosswalkManagement/CrosswalkInsert.vue
--- client/views/pages/CrosswalkManagement/CrosswalkInsert.vue
+++ client/views/pages/CrosswalkManagement/CrosswalkInsert.vue
@@ -1,6 +1,7 @@
 <template>
   <div class="flex">
-    <div class="left">
+    <button @click="toggleSlide" class="toggle">검색하기</button>
+    <div :class="['slide-content left', { active: showSlide }]">
       <div class="wrap flex-between">
         <div class="search">
           <h2>횡단보도 등록</h2>
@@ -179,6 +180,55 @@
   </div>
 </template>
 <style scoped>
+@media all and (max-width: 479px) {
+  .top {
+    overflow: scroll;
+  }
+  .top ul {
+    width: 137rem;
+    overflow: hidden;
+    justify-content: space-between !important;
+    padding: 2rem 1rem !important;
+  }
+  .top li {
+    display: flex;
+  }
+  .search {
+    width: inherit;
+  }
+  .toggle {
+    color: #fff;
+    font-weight: bold;
+    background: #13833b;
+    display: block !important;
+    position: absolute;
+    z-index: 150;
+    top: 7.5rem;
+    right: 1rem;
+  }
+  .wrap {
+    height: auto !important;
+    width: inherit;
+  }
+  .slide-content {
+    position: absolute;
+    z-index: 97;
+    top: 6.5rem;
+    left: -36rem;
+    width: 34rem;
+    height: 100vh;
+    background-color: #f0f0f0;
+    transition: transform 0.3s ease;
+    transform: translateX(100%);
+  }
+
+  .slide-content.active {
+    transform: translateX(0);
+  }
+}
+.toggle {
+  display: none;
+}
 label {
   width: max-content;
   text-align: left;
@@ -376,6 +426,7 @@
 export default {
   data() {
     return {
+      showSlide: false,
       modal_1: false,
       modal_2: false,
       tabs: [
@@ -404,6 +455,9 @@
     OpenLayers: OpenLayers,
   },
   methods: {
+    toggleSlide() {
+      this.showSlide = !this.showSlide;
+    },
     changeTab(tabId) {
       this.activeTab = tabId;
     },
client/views/pages/RealtimeStatus/RealtimeStatus.vue
--- client/views/pages/RealtimeStatus/RealtimeStatus.vue
+++ client/views/pages/RealtimeStatus/RealtimeStatus.vue
@@ -1,8 +1,8 @@
 <template>
   <div class="flex">
-    <div class="left">
+    <button @click="toggleSlide" class="toggle">검색하기</button>
+    <div :class="['slide-content left', { active: showSlide }]">
       <div class="wrap flex-between">
-        <button @click="toggleSlide" class="toggle">Toggle Slide</button>
         <!-- <div class="iconlist">
           <ul>
             <li v-for="item in items" :key="item.id" :class="{ active: item.isActive }" @click="toggleActive(item)">
@@ -11,7 +11,7 @@
             </li>
           </ul>
         </div> -->
-        <div class="search slide-content" v-if="showSlide">
+        <div class="search">
           <h2>지역설정</h2>
           <div class="box">
             <DongSelectList @setDongCd="setDongCd"></DongSelectList>
@@ -213,7 +213,7 @@
 export default {
   data() {
     return {
-      showSlide: true,
+      showSlide: false,
       address: {},
       //조건설정
       condition: {
@@ -350,37 +350,56 @@
 
 <style scoped>
 @media all and (max-width: 479px) {
-  .toggle{
+  .chart{width: -webkit-fill-available !important;}
+  
+  .top {
+    overflow: scroll;
+  }
+  .top ul {
+    width: 137rem;
+    overflow: hidden;
+    justify-content: space-between !important;
+    padding: 2rem 1rem !important;
+  }
+  .top li {
+    display: flex;
+  }
+  .search {
+    width: inherit;
+  }
+  .toggle {
+    color: #fff;
+    font-weight: bold;
+    background: #13833b;
     display: block !important;
     position: absolute;
     z-index: 150;
-    top: 12rem;
-    left: 3rem;}
+    top: 7.5rem;
+    right: 1rem;
+  }
   .wrap {
     height: auto !important;
+    width: inherit;
   }
   .slide-content {
-    position: fixed;
-    top: 0;
-    left: 0px;
-    width: -webkit-fill-available;
-    z-index: 50;
+    position: absolute;
+    z-index: 97;
+    top: 6.5rem;
+    left: -46rem;
+    width: 46rem;
     height: 100vh;
     background-color: #f0f0f0;
-    transition: right 0.3s ease; /* Adjust the duration and easing as needed */
+    transition: transform 0.3s ease;
+    transform: translateX(100%);
   }
 
-  .slide-enter-active,
-  .slide-leave-active {
-    transition: right 0.3s ease; /* Adjust the duration and easing as needed */
-  }
-
-  .slide-enter,
-  .slide-leave-to {
-    right: -300px; /* Initial and final position outside the viewport */
+  .slide-content.active {
+    transform: translateX(0);
   }
 }
-.toggle{display: none;}
+.toggle {
+  display: none;
+}
 .chart div {
   min-height: 13rem;
 }
@@ -432,10 +451,10 @@
 
 .top ul {
   padding: 1rem 0;
+  justify-content: space-evenly;
 }
 
 .top li {
-  width: calc(100% / 6);
   text-align: center;
 }
 
client/views/pages/main/Main.vue
--- client/views/pages/main/Main.vue
+++ client/views/pages/main/Main.vue
@@ -286,20 +286,25 @@
   align-items: center;
   margin-bottom: 5rem;
 }
-.flex-between {
+/* .flex-between {
   height: 7rem;
   width: 100%;
   z-index: 2000;
   padding: 0 4rem 0 1rem;
   background: #13833b;
   box-shadow: 0px 5px 20px #00000038;
-}
+} */
 @media (max-width: 479px) {
+  .box{display: flex; gap: 1rem; align-items: center;     padding: 0.5rem;  width: 250px;}
+  .bar_element {
+  width: -webkit-fill-available;
+}
   .maintop{overflow: scroll;}
   .boxmenu {
-        /* width: 92vw; */
+    width: max-content;
         height: fit-content;
         display: flex !important;
+        padding: 1.5rem;
     /* margin: 10px; */
     /* border-radius: 20px;*/
   }
@@ -308,16 +313,9 @@
     display: none;
   }
   
-  .box .flex {
-    /* border: 1px solid red; */
-    display: flex;
-    align-items: center;
-    width: 190px;
-    margin: 0px -8px 5px;
-  }
   .box_title {
     /* margin-top: 172px; */
-    width: 1000px;
+    /* width: 1000px; */
     /* border: 1px solid; */
     color: #9c9b9a;
     text-align: center;
@@ -329,19 +327,21 @@
     color: #13833b;
     margin: 3rem 0;
     text-align: center;
-    width: 100vw;
+    /* width: 100vw; */
   }
   .verticalbar {
-    width: 93vw;
+    display: block;
+    width: -webkit-fill-available;
     border-radius: 15px;
     background-color: #dddddd00;
-    margin-bottom: 3rem;
-    margin: 10px;
-    padding: 1rem;
+    margin-bottom:  0;
+    margin: 0;
+    padding: 0;
   }
   .barinfo {
-    gap: 0;
-    /* width: 90vw; */
+    display: grid;
+    grid-template-columns: 1fr 1fr;
+    gap: 0rem;
   }
   .barinfo img {
     width: 30px;
@@ -356,13 +356,12 @@
   }
   .main_section .elementtxt {
     display: flex;
-    font-size: 8px;
-    width: 90px;
+    font-size: 15px;
     justify-content: center;
     align-items: center;
   }
   .bar_element {
-    width: 100vw;
+    /* width: 100vw; */
     border-radius: 20px;
     height: 90px;
     line-height: 30px;
@@ -374,13 +373,12 @@
     display: none;
   }
   .board_title {
-    color: #ffff;
     font-size: 16px;
   }
   .board {
     background: #ffffff;
     border-radius: 15px;
-    width: 93vw;
+    width: -webkit-fill-available;
     box-shadow: 0px 5px 20px #00000038;
     padding: 2rem;
     margin: 30px 10px;
@@ -389,6 +387,10 @@
     color: #13833b;
     font-size: 17px;
   }
+  .boardinfo {
+    font-size: 17px;
+    padding: 2rem 0;
+}
 }
 
 </style>
Add a comment
List