Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html 文本不会在div中居中_Html_Css - Fatal编程技术网

Html 文本不会在div中居中

Html 文本不会在div中居中,html,css,Html,Css,我有一个div,其中包含3个浮动div。包含的div有一行文本。三个浮动的内部div也有一行文本 当我为最外层的包含div指定text align center时,三个嵌套div首先显示在一行上,从左到右相邻,然后包含div的文本显示在包含div的右侧,居中于它们右侧的空间中 相反,我不明白为什么最外面包含div的文本不会显示在浏览器窗口的中心,然后在下面显示3个包含的div及其文本。这就是我需要做的 这是代码。顺便说一下,我试图在这个问题中嵌入一个.jpg图像,这样你就可以看到问题了——有人知

我有一个div,其中包含3个浮动div。包含的div有一行文本。三个浮动的内部div也有一行文本

当我为最外层的包含div指定text align center时,三个嵌套div首先显示在一行上,从左到右相邻,然后包含div的文本显示在包含div的右侧,居中于它们右侧的空间中

相反,我不明白为什么最外面包含div的文本不会显示在浏览器窗口的中心,然后在下面显示3个包含的div及其文本。这就是我需要做的

这是代码。顺便说一下,我试图在这个问题中嵌入一个.jpg图像,这样你就可以看到问题了——有人知道如何在问题中显示屏幕截图或.jpg吗

<head>

<style>
#myRowStyles
{
  text-align:center;
  margin-bottom:100px;
  background-color:#b0e0e6;
  border: 1px solid red;
}       

#leftSide
{
  width:120px;
  float:left;
  margin-left:10px;
  margin-top:30px;
  border: 1px solid red;
}

#centerPiece
{
  width:120px;
  float:left;
  margin-left:10px;
  margin-top:30px;
  border: 1px solid red;
}

#rightSide
{
  width:120px;
  float:left;
  margin-left:10px;
  margin-top:30px;
  border: 1px solid red;
}
</style>
</head>


<div id="myRowStyles"><b>THIS IS THE TOP OF THE ROW</b>
   <div id="leftSide">  LEFT SIDE -- Leftie
   </div>
   <div id="centerPiece"> Centerpiece, Folks.
   </div>
   <div id="rightSide">  All Righty -- RIGHT SIDE
   </div>
</div>
<div style="clear:both">
</div>
<div id="myRowStyles"><b>THIS IS ROW #2</b>
   <div id="leftSide">  LEFT SIDE -- Leftie
   </div>
   <div id="centerPiece"> Centerpiece, Folks.
   </div>
   <div id="rightSide">  All Righty -- RIGHT SIDE
   </div>
</div>

#myRowStyles
{
文本对齐:居中;
边缘底部:100px;
背景色:#b0e0e6;
边框:1px纯红;
}       
#左边
{
宽度:120px;
浮动:左;
左边距:10px;
边缘顶部:30px;
边框:1px纯红;
}
#中心
{
宽度:120px;
浮动:左;
左边距:10px;
边缘顶部:30px;
边框:1px纯红;
}
#右侧
{
宽度:120px;
浮动:左;
左边距:10px;
边缘顶部:30px;
边框:1px纯红;
}
这是第一排
左边,左边
伙计们,这是最重要的。
好的,右边
这是第二排
左边,左边
伙计们,这是最重要的。
好的,右边

首先,页面上有多个相同的ID。那太糟糕了。把他们换成班级


第二,给myRowStyles一个宽度。

试试这样的方法:

我认为要使div的行为类似于表,必须在CSS中定义显示属性:

#container {
display: table;
}

#row  {
display: table-row;
}

#left, #right, #middle {
display: table-cell;
}
因此,您还需要在容器的开头添加一个额外的
。我还没有测试过这个

此外,我不认为在使用div时可以使一行跨越3列,因此必须执行以下操作:

<head>

<style>

#container {
  width:90%;
  float:center;
  margin-left:10px;
  margin-top:30px;
  border: 1px solid blue;
  text-align:centre;
  display: table;
}

#myRowStyles
{
  text-align:center;
  background-color:#b0e0e6;
  border: 1px solid red;
  display: table-row;

}       

#leftSide,#centerPiece,#rightSide
{
  width:120px;
  margin-left:10px;
  margin-top:30px;
  border: 1px solid red;
  display: table-cell;

}
</style>
</head>

<div id="container">
<div id="myRowStyles">
   <div id="leftSide"> 
   </div>
   <div id="centerPiece"> Row 1
   </div>
   <div id="rightSide"> 
   </div>
</div>
<div id="myRowStyles">
   <div id="leftSide">  LEFT SIDE -- Leftie
   </div>
   <div id="centerPiece"> Centerpiece, Folks.
   </div>
   <div id="rightSide">  All Righty -- RIGHT SIDE
   </div>
</div>


<div id="myRowStyles">
   <div id="leftSide"> 
   </div>
   <div id="centerPiece"> Row 2
   </div>
   <div id="rightSide"> 
   </div>
</div>
<div id="myRowStyles">
   <div id="leftSide">  LEFT SIDE -- Leftie
   </div>
   <div id="centerPiece"> Centerpiece, Folks.
   </div>
   <div id="rightSide">  All Righty -- RIGHT SIDE
   </div>
</div>
</div>

#容器{
宽度:90%;
浮动:中心;
左边距:10px;
边缘顶部:30px;
边框:1px纯蓝色;
文本对齐:居中;
显示:表格;
}
#myRowStyles
{
文本对齐:居中;
背景色:#b0e0e6;
边框:1px纯红;
显示:表格行;
}       
#左侧,#中心,#右侧
{
宽度:120px;
左边距:10px;
边缘顶部:30px;
边框:1px纯红;
显示:表格单元格;
}
一排
左边,左边
伙计们,这是最重要的。
好的,右边
第2排
左边,左边
伙计们,这是最重要的。
好的,右边

要将所有文本居中吗?嗨,jc,我只想将最外层包含div的文本居中于浏览器窗口中,并位于三个内部包含div的上方。嗨,我尝试了最外层div使用的myRowStyles的width=100px和width=400px,甚至width=100%,在浏览器窗口的中间和3个内部div之上,这仍然不包含最外面包含div的文本,如果你不确定它是否有效,请不要张贴答案。另外,仅供参考,IE的某些版本将无法与
display:table
配合使用。我们只是想提供帮助。对此表示歉意,我不知道它在IE的某些版本中不起作用。我已经编辑并测试了上面的代码,它似乎可以工作(Safari)。大家好,我非常感谢你们的帮助!在升起白旗寻求帮助的前一天,我已经花了1/2的时间在这件事上,像往常一样,你们真的挺过来了,多亏了大家,我还不太明白,但苏珀的想法让我找到了我认为最好的方法——我现在把我想要的文本放在其他3个div的中心,不再包含它们——它只是另一个div,位于3个浮动div之上。然后我按照Sooper的建议,为以浏览器为中心的文本添加了一个新的包含div,下面的三个div浮动在一行中——我很快会发布代码。Simon在JSFIDLE中它看起来很棒,但我复制了你的第一个myRowStyles,并在Firefox 8.0中尝试了它,然后我在Firefox中尝试了你的第二个,但在Firefox中它看起来不像我正在Windows资源管理器中运行这个StackOverflow会话(以及您到JSFIDLE的链接),这可能就是原因。您注意到我用类替换了id吗?