body { display: flex; margin: 0; padding: 0; height: 100vh; flex-direction: column; } #map { flex: 1; height: 60vh; position: relative; } #controls { padding: 20px; box-sizing: border-box; } #info, #modalInfo { overflow-y: auto; max-height: 40vh; /* 通用最大高度 */ padding: 10px; font-size: 16px; border: 1px solid #ccc; background-color: #f9f9f9; } /* 桌面版表格高度 */ @media (min-width: 769px) { #info { max-height: 20vh; /* 桌面版最大高度 */ } } .legend { background: white; padding: 10px; border-radius: 5px; box-shadow: 0 0 15px rgba(0, 0, 0, 0.2); line-height: 1.5em; color: #555; position: absolute; bottom: 20px; right: 20px; z-index: 1000; pointer-events: none; } @media (max-width: 768px) { #map { height: 50vh; } #searchButton { display: none; } #showTableButton { display: none; /* 隱藏顯示表格按鈕 */ } #info { display: block; /* 顯示表格 */ max-height: 30vh; /* 限制表格高度 */ } #latInput, #lngInput, label[for="latInput"], label[for="lngInput"] { display: none; } #legend { display: none; /* 隱藏右下角圖例 */ } } @keyframes highlight { 0% { transform: scale(1); } 50% { transform: scale(1.5); } 100% { transform: scale(1); } } #info table, #modalInfo table { width: 100%; margin-top: 10px; } #info th, #info td, #modalInfo th, #modalInfo td { text-align: left; padding: 8px; } #info th, #modalInfo th { background-color: #f2f2f2; } .poi-row { cursor: pointer; } .poi-row:hover { background-color: #e0e0e0; } .poi-row:active { background-color: #b0b0b0; } .custom-icon div { display: inline-block; border: 1px solid #555; box-shadow: 0 0 2px rgba(0,0,0,0.5); } .custom-icon .highlight { animation: highlight 0.6s ease-out; border: 2px solid yellow; }