当前位置:首页 > CSS

css制作谷歌地图

2026-04-02 06:44:42CSS

使用CSS制作谷歌地图效果

通过CSS可以模拟谷歌地图的基本外观,包括地图容器、标记点和信息窗口等元素。以下是实现方法:

创建地图容器

.map-container {
  width: 100%;
  height: 400px;
  background-color: #e8e8e8;
  position: relative;
  overflow: hidden;
  border-radius: 8px;
  box-shadow: 0 2px 10px rgba(0,0,0,0.1);
}

添加地图网格线

.map-grid {
  position: absolute;
  width: 200%;
  height: 200%;
  background-image: 
    linear-gradient(#ccc 1px, transparent 1px),
    linear-gradient(90deg, #ccc 1px, transparent 1px);
  background-size: 20px 20px;
  animation: pan 60s linear infinite;
}

@keyframes pan {
  0% { transform: translate(0, 0); }
  100% { transform: translate(-50%, -50%); }
}

创建地图标记点

.map-marker {
  position: absolute;
  width: 20px;
  height: 20px;
  background-color: #ea4335;
  border-radius: 50% 50% 50% 0;
  transform: rotate(-45deg);
  left: 50%;
  top: 50%;
  margin: -20px 0 0 -10px;
}

.map-marker::after {
  content: "";
  width: 10px;
  height: 10px;
  margin: 5px 0 0 5px;
  background-color: #fff;
  position: absolute;
  border-radius: 50%;
}

添加信息窗口样式

.info-window {
  position: absolute;
  background: white;
  padding: 12px;
  border-radius: 4px;
  box-shadow: 0 2px 7px rgba(0,0,0,0.3);
  font-family: Arial, sans-serif;
  transform: translate(-50%, -100%);
  max-width: 200px;
}

.info-window::after {
  content: "";
  position: absolute;
  bottom: -10px;
  left: 50%;
  margin-left: -10px;
  border-width: 10px 10px 0;
  border-style: solid;
  border-color: white transparent;
}

添加缩放控件

.map-controls {
  position: absolute;
  right: 10px;
  bottom: 20px;
  background: white;
  border-radius: 2px;
  box-shadow: 0 1px 4px rgba(0,0,0,0.3);
}

.zoom-btn {
  display: block;
  width: 30px;
  height: 30px;
  text-align: center;
  line-height: 30px;
  font-size: 18px;
  cursor: pointer;
  border-bottom: 1px solid #eee;
}

.zoom-btn:last-child {
  border-bottom: none;
}

HTML结构示例

<div class="map-container">
  <div class="map-grid"></div>
  <div class="map-marker"></div>
  <div class="info-window" style="left: 50%; top: 40%;">
    <h3>位置名称</h3>
    <p>这里是位置描述信息</p>
  </div>
  <div class="map-controls">
    <div class="zoom-btn">+</div>
    <div class="zoom-btn">-</div>
  </div>
</div>

增强交互效果

悬停动画效果

.map-marker:hover {
  animation: bounce 0.5s;
}

@keyframes bounce {
  0%, 100% { transform: rotate(-45deg) translateY(0); }
  50% { transform: rotate(-45deg) translateY(-10px); }
}

响应式设计

css制作谷歌地图

@media (max-width: 768px) {
  .map-container {
    height: 300px;
  }

  .info-window {
    max-width: 150px;
    font-size: 14px;
  }
}

注意事项

  1. 这只是一个视觉模拟,不包含实际地图功能
  2. 要实现真正的地图功能,建议使用Google Maps API
  3. 标记点位置需要通过CSS绝对定位精确控制
  4. 可以结合少量JavaScript实现基本的交互功能

通过以上CSS代码可以创建一个视觉上类似Google Maps的界面,但需要注意这只是一个静态展示效果。要实现完整的地图功能,需要集成官方地图API。

标签: 地图css
分享给朋友:

相关文章

css制作表格

css制作表格

使用HTML和CSS创建表格 HTML中的<table>元素用于创建表格,结合CSS可以调整样式。以下是一个基础示例: <table> <tr> &l…

css动画制作

css动画制作

CSS动画制作方法 使用@keyframes规则定义动画序列,通过animation属性将动画应用到元素上。以下是一个基础示例: @keyframes fadeIn { from { opaci…

css表单制作

css表单制作

基础表单结构 使用HTML创建表单的基本结构,包含<form>标签及输入字段。表单通常需要action(提交地址)和method(提交方法)属性。 <form action="/s…

用css制作导航条

用css制作导航条

水平导航条制作 使用display: inline-block或flexbox实现水平导航 为<ul>和<li>设置样式消除默认列表样式 添加padding和margin控制间…

css怎么制作三角形

css怎么制作三角形

使用边框制作三角形 通过设置元素的边框宽度和颜色,可以创建不同方向的三角形。将元素的宽度和高度设为0,利用边框的透明属性实现。 .triangle-up { width: 0; he…

div和css制作

div和css制作

使用 div 和 CSS 制作网页布局 HTML 结构 通过 div 标签划分页面区域,例如头部、主体、侧边栏和页脚: <div class="container"> <div…