Html 如何在另一个div内对齐3个div(左/中/右)?
我想在一个容器div中对齐3个div,如下所示:Html 如何在另一个div内对齐3个div(左/中/右)?,html,css,flexbox,alignment,css-float,Html,Css,Flexbox,Alignment,Css Float,我想在一个容器div中对齐3个div,如下所示: [[LEFT] [CENTER] [RIGHT]] <div id="container"> <div id="left"></div> <div id="right"></div> <div id="center"></div> </div> #container{width:100%;} #left{flo
[[LEFT] [CENTER] [RIGHT]]
<div id="container">
<div id="left"></div>
<div id="right"></div>
<div id="center"></div>
</div>
#container{width:100%;}
#left{float:left;width:100px;}
#right{float:right;width:100px;}
#center{margin:0 auto;width:100px;}
[[LEFT] [CENTER] [RIGHT]]
容器div为100%宽(无设置宽度),调整容器大小后,中心div应保持在中心
所以我设定:
#容器{宽度:100%;}
#左{浮点:左;宽度:100px;}
#右{浮点:右;宽度:100px;}
#中心{边距:0自动;宽度:100px;}
但它变成了:
[[LEFT] [CENTER] ]
[RIGHT]
有什么建议吗?使用CSS,将div按如下方式放置(先浮动):
另外,你也可以先向右浮动,然后向左浮动,然后居中浮动。重要的是,浮动位于“主”中心部分之前
p.p.S.您通常希望最后一个在
#容器中此片段:
将垂直扩展#容器以包含两侧浮动,而不是仅从#中心获取其高度,并可能允许侧面从底部伸出。浮动属性实际上不用于对齐容器文本
#warpcontainer {width:800px; height:auto; border: 1px solid #000; float:left; }
#warpcontainer2 {width:260px; height:auto; border: 1px solid #000; float:left; clear:both; margin-top:10px }
此属性用于将元素添加到右侧、左侧或中心
div>div{边框:1px纯黑色;}
弗斯特
第二
第三
弗斯特
第二
第三
如果您不想更改HTML结构,也可以通过添加文本对齐:居中代码>到包装器元素和显示:内联块代码>到居中元素
#container {
width:100%;
text-align:center;
}
#left {
float:left;
width:100px;
}
#center {
display: inline-block;
margin:0 auto;
width:100px;
}
#right {
float:right;
width:100px;
}
现场演示:以下是我在使用图像作为中心元素时对公认答案所做的更改:
确保图像包含在div中(#在本例中为中心)。如果不是,则必须将display
设置为block
,并且它似乎相对于浮动元素之间的空间居中
确保设置图像及其容器的大小:
#center {
margin: 0 auto;
}
#center, #center > img {
width: 100px;
height: auto;
}
我喜欢我的铁条紧而有活力。这是针对css3和html5的
首先,将宽度设置为100px是一种限制。不要这样做
第二,将容器的宽度设置为100%可以正常工作,直到我们谈论它是整个应用程序的页眉/页脚栏,如导航栏或信用/版权栏。使用右键:0代码>而不是针对该场景
您使用的是id(散列#容器
,#左
,等等),而不是类(.container
,.left
,等等),这很好,除非您想在代码的其他地方重复您的样式模式。我会考虑使用类。
对于HTML,无需交换顺序:左、中、右<代码>显示:内联块代码>修复了这一问题,将代码返回到更干净、逻辑有序的地方
最后,您需要清除所有浮动,以便它不会影响未来的
。您可以使用clear:both代码>
总结如下:
HTML:
如果使用HAML和SASS,可获得加分;)
哈默:
SASS:
你做对了,你只需要清除你的浮动。
简单地加上
overflow: auto;
到您的容器类。最简单的解决方案是将一个包含3列的表装入板条箱,并将该表居中
html:
<div id="cont">
<table class="aa">
<tr>
<td>
<div id="left">
<h3 class="hh">Content1</h3>
</div>
</td>
<td>
<div id="center">
<h3 class="hh">Content2</h3>
</div>
</td>
<td>
<div id="right"><h3 class="hh">Content3</h3>
</div>
</td>
</tr>
</table>
</div>
#cont
{
margin: 0px auto;
padding: 10px 10px;
}
#left
{
width: 200px;
height: 160px;
border: 5px solid #fff;
}
#center
{
width: 200px;
height: 160px;
border: 5px solid #fff;
}
#right
{
width: 200px;
height: 160px;
border: 5px solid #fff;
}
<div id="container" class="blog-pager">
<div id="left">Left</div>
<div id="right">Right</div>
<div id="center">Center</div>
</div>
#container{width:98%; }
#left{float:left;}
#center{text-align:center;}
#right{float:right;}
使用twitter引导:
<p class="pull-left">Left aligned text.</p>
<p class="pull-right">Right aligned text.</p>
<p class="text-center">Center aligned text.</p>
左对齐文本
右对齐文本
居中对齐的文本
这可以使用CSS3 Flexbox轻松完成,这是一项将在将来使用的功能(当div{
背景:#5F85DB;
填充物:5px;
颜色:#fff;
字体大小:粗体;
字体系列:Tahoma;
}
左边
居中
赖特
HTML:
<div id="cont">
<table class="aa">
<tr>
<td>
<div id="left">
<h3 class="hh">Content1</h3>
</div>
</td>
<td>
<div id="center">
<h3 class="hh">Content2</h3>
</div>
</td>
<td>
<div id="right"><h3 class="hh">Content3</h3>
</div>
</td>
</tr>
</table>
</div>
#cont
{
margin: 0px auto;
padding: 10px 10px;
}
#left
{
width: 200px;
height: 160px;
border: 5px solid #fff;
}
#center
{
width: 200px;
height: 160px;
border: 5px solid #fff;
}
#right
{
width: 200px;
height: 160px;
border: 5px solid #fff;
}
<div id="container" class="blog-pager">
<div id="left">Left</div>
<div id="right">Right</div>
<div id="center">Center</div>
</div>
#container{width:98%; }
#left{float:left;}
#center{text-align:center;}
#right{float:right;}
文本对齐:居中;
提供完美的居中对齐
使用Flexbox水平对齐三个div
下面是一个CSS3方法,用于在另一个div内水平对齐div
#容器{
显示:flex;/*建立flex容器*/
弹性方向:行;/*默认值;可省略*/
柔性包裹:nowrap;/*默认值;可以省略*/
对齐内容:之间的空格;/*从默认值切换(flex start,见下文)*/
背景颜色:浅黄色;
}
#容器>分区{
宽度:100px;
高度:100px;
边框:2个红色虚线;
}
您可以尝试以下方法:
您的html代码如下所示:
[[LEFT] [CENTER] [RIGHT]]
<div id="container">
<div id="left"></div>
<div id="right"></div>
<div id="center"></div>
</div>
#container{width:100%;}
#left{float:left;width:100px;}
#right{float:right;width:100px;}
#center{margin:0 auto;width:100px;}
[[LEFT] [CENTER] [RIGHT]]
所以,它的输出应该是这样的:
[[LEFT] [CENTER] [RIGHT]]
<div id="container">
<div id="left"></div>
<div id="right"></div>
<div id="center"></div>
</div>
#container{width:100%;}
#left{float:left;width:100px;}
#right{float:right;width:100px;}
#center{margin:0 auto;width:100px;}
[[LEFT] [CENTER] [RIGHT]]
我做了另一次尝试来简化这个过程,并在不需要容器的情况下实现它
HTML
如果希望保持html的顺序而不使用flex,您可以在的可能答案处看到它
HTML
有几种技巧可用于对齐元素
01.使用桌面技巧
.container{
显示:表格;
}
.左{
背景:绿色;
显示:表格单元格;
宽度:33.33vw;
}
.中心{
背景:金;
显示:表格单元格;
宽度:33.33vw;
}
.对{
背景:灰色;
显示:表格单元格;
宽度:33.33vw;
}
左边
居中
赖特
使用我创建了3个等宽的div(在12列布局中,每个div有4列)。
这样,即使左/右部分的宽度不同(如果它们不会溢出列空间),也可以使中心区域居中
HTML:
为了创建没有库的结构,我从引导CSS复制了一些规则
HTML:
CSS网格可以轻松完成这项工作:
#容器{
显示:网格;/*(1)网格容器*/
网格自动流动:列;/*(2)列布局*/
对齐内容:间距;/*(3)对齐列*/
背景颜色:浅黄色;
}
#容器>分区{
宽度:100px;
高度:100px;
边框:2个虚线r
<div id="container">
<div id="left" class="col col-xs-4 text-left">Left</div>
<div id="center" class="col col-xs-4 text-center">Center</div>
<div id="right" class="col col-xs-4 text-right">Right</div>
</div>
#container {
border: 1px solid #aaa;
margin: 10px;
padding: 10px;
height: 100px;
}
.col {
border: 1px solid #07f;
padding: 0;
}
<div id="container">
<div id="left" class="col">Left</div>
<div id="center" class="col">Center</div>
<div id="right" class="col">Right</div>
</div>
* {
box-sizing: border-box;
}
#container {
border: 1px solid #aaa;
margin: 10px;
padding: 10px;
height: 100px;
}
.col {
float: left;
width: 33.33333333%;
border: 1px solid #07f;
padding: 0;
}
#left {
text-align: left;
}
#center {
text-align: center;
}
#right {
text-align: right;
}