地图容器自适应浏览器是什么意思_高德/百度地图(JavaScript)绘制自适应正方形地图容器...

在使用高德地图或者百度地图的JavaScript API的时候都要事先在HTML文件中创建一个div的标签,然后所有的地图绘制工作都会在这个标签中进行,我们可以把这个标签暂称为地图容器。怎样绘制一个正方形的地图容器呢?

假设代码如下:

在PC端做这个事情简单的很,只要使用类似下面的语句就好

#mapContainer {

width: 320px;

height: 320px;

}

可是移动端页面宽度有限,我们希望地图大小是正方形,并且边长为屏幕的95%,那怎么办?怎么绘制一个正方形的地图?其实这就是一个CSS的问题。

方法一: 使用vw单位

这应该是最容易理解的方法,CSS3 增加了基于可视区域百分比的长度单位 vw, vh, vmin, vmax。 vw 是相对于视口宽度百分比的单位。详细可以参考:

http://www.zhangxinxu.com/wordpress/2012/09/new-viewport-relative-units-vw-vh-vm-vmin/

所以写法就是:

#mapContainer {

width: 95%;

height: 95vw;

}

使用这种方法的好处是简单容易理解,不过会有兼容性问题,可以参考:这里

方法二: padding-bottom的秒用

这种方法先上代码

#mapContainer {

width: 95%;

padding-bottom: 95%;

}

这种方案也很简洁,且兼容性好,不过如果#mapContainer里有内容,可能会被撑开,所以最好加上一句 height:0,也就是

#mapContainer {

width: 95%;

padding-bottom: 95%;

height: 0;

}

方法三: 伪类及margin的秒用

也先上代码:

#mapContainer {

width: 95%;

overflow: hidden;

}

#mapContainer:after {

content: '';

display: block;

margin-top: 100%;

}

这种方案利用了 margin 百分比相对父元素宽度计算的特性实现。

效果图

有其他方法也欢迎补充。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值