为了账号安全,请及时绑定邮箱和手机立即绑定

为什么我这样写不能让div居中?

我想先让它转为行内元素

div{
    display:inline;

然后再用行内元素的特点去设置

<style>

  .wrap{
    text-align:center;
  }
</style>

但是这样得不到居中的效果 

<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>不定宽块状元素水平居中</title>
<style>
table{
    margin:0 auto;
}
div{
    display:inline;
}
/*下面是任务区代码*/
.wrap{
    background:#ccc;
}
</style>
</head>

<body>
<div>
<table>
  <tbody>
    <tr><td>
 <ul>
     <li>我是第一行文本</li>
        <li>我是第二行文本</li>
        <li>我是第三行文本</li>
    </ul>
    </td></tr>
  </tbody>
</table>
</div>
<style>
  .wrap{
    text-align:center;
  }
</style>
<div class="wrap">
  设置我所在的div容器水平居中 
</div>
</body>
</html>


正在回答

4 回答

如果你想使用display:inline方法实现class="wrap"的div居中的话,先在class="wrap"的divd的父元素标签写上text-align:center;使用行内元素居中,然后再把class="wrap"的div设置成display:inline,变成行内元素;原本div是块状元素

如:

<markdown>

<style>

body{text-align:center;}    

.wrap{display:inline;}

</style>

<div class="wrap">    设置我所在的div容器水平居中

</div>

</markdown

0 回复 有任何疑惑可以回复我~
#1

全名达闻西

漏写了body,哈哈
2019-12-23 回复 有任何疑惑可以回复我~

先居中,再变行内元素。例题可以看看,居中在外围,变行内元素在里面。

0 回复 有任何疑惑可以回复我~

也可以用table把这个div包住,然后设置这个table

<table>

  <tbody>

    <tr><td>

<ul>

    <div class="wrap">

        设置我所在的div容器水平居中

        设置我所在的div容器水平居中  

</div> 

    </ul>

    </td></tr>

  </tbody>

</table>


1 回复 有任何疑惑可以回复我~
#1

慕婉清4208122

你的我认为是正确的.因为本章节要学的不是第二种方法与第三种方法. 而就是要我们用table来实现这个居中的问题.所以他们用dispay:inline什么的.都不是正确的.
2020-01-04 回复 有任何疑惑可以回复我~

把你的代码简略下,你想问的是下面的代码为什么不能居中吧。

<style>
    div{display:inline;}
    .wrap{text-align:center;}
</style>
<div class="wrap">
    设置我所在的div容器水平居中
</div>

如果是的话问题很简单,因为你吧div变为行内元素了,想要实现居中有2种办法:

1:将div{display:inline;}去掉,这样就能居中。

2:在div的父元素中写入居中代码,在你的代码里面是在body中写入,这样也能实现居中。

行内元素的宽度就是它包含的文字或图片的宽度,不可改变。所以文本的宽度等于它的父元素div的宽度。


2 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

为什么我这样写不能让div居中?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信