css 如何解决transform:translate超出屏幕范围

我有一个高700的div,要居中,我采用transform:translate(-50%,-50%),但发现如果屏幕高度小于700的时候,会只展示中间部分,上部分看不到,也移动不了。
如何解决这个问题或者还有没有其他居中方法可以解决这个问题

补充:我是绝对定位,对屏幕居中的,是一个dialog框

阅读 11.8k
3 个回答

给你div设置

max-height: xx%;
overflow: auto;

我感觉啊
一、可以用媒体查询的方式,屏幕小于700的时候,div也缩小
二、还是用transform的scale缩放

使用css的calc计算函数以及vw/vh视窗单位

.dialog{
    position:absolute;
    left:calc(50vw - 350px);
    top:calc(50vh - 250px);
    width:700px;
    height:500px;

}

当然你也可以通过JS获取当前视窗可是区域的大小,动态设置left/top值

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题