9 个回答

margin:0 auto是用于block的,你的是inline-block。inline-block要居中就更简单了,只需要父级元素设置text-align:center;

.login {
 display: block;
 margin: 0 auto;
 position: relative; // 用了 position,margin 也不会居中了
}

1.div 本身 block,不需要改成 inline-block,
用 position 任何元素 都不能设置 display属性
因此 去掉多余的设置 display,position

2.父元素添加 text-algin: center;
因为子元素为 inline-block

用flex

.login{
display:flex;
justify-content:center;
align-items:center;
}
.login{
    displty:inline-block;
    position:relative;
    left:50%;
    margin-left:-155px; //这里利用margin的负值居中,当然也可以使用translateX(-155px);
    padding:20px 20px 20px;
    width:310px;
    background-color:white;
    border-radius:3px;
}

方法1、去掉display:inline-block
方法2、父元素增加text-align: center,不过这样的话,子元素的文字全部居中了,推荐第一种办法

去掉display:inline-block

父元素,text-align:center就行

新手上路,请多包涵

display:inline-block 就把div变成行内元素啦,所以父元素加text-align:center 就可以啦。

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