在容器中定位 div
Positioning divs inside a container
我有一个关于 HTML 的一般问题,可能是新手问题。
#container {
height: 200px;
max-width: 600px;
border: 1px solid black;
margin: auto;
margin-top: 10px;
}
#item1 {
height: 100px;
max-width: 200px;
border: 1px solid red;
}
#item2 {
height: 100px;
max-width: 200px;
border: 1px solid blue;
}
<div id="container">
<div id="item1"></div>
<div id="item2"></div>
</div>
我的问题是,为什么 #item1
和 #item2
div 位于彼此下方而不是彼此相邻?不是因为我给它们指定了设定的宽度,它们就不再是块级元素了吗?为什么它们在 #container
内没有并排排列? #container
的宽度足以容纳这两项。
注意:这仅适用于 learning/curiosity。我知道我可以使用边距和定位将它们放在我想要的位置。但是,我只是好奇为什么它会这样。
谢谢。
如果您不使用 bootstrap 或其他框架,<div>
标记始终以新行开头。如果你想在一行中看到多个项目,那么添加 css 比如 display: inline-block
请像下面这样替换您的 class。
#item1{
height:100px;
max-width:200px;
border:1px solid red;
display:inline-block;
}
#item2{
height:100px;
max-width:200px;
border:1px solid blue;
display:inline-block;
}
#container 即您 div 有块显示 属性。如果您未将其设置为任何其他值,则这是默认值 属性。在您的情况下,div 采用此默认显示 属性。
要并排查看#item1 和#item2,只需在#container 中使用display: inline-block。
Div 元素是块元素,除非您将显示 属性 指定为内联或内联块,否则它不会像其他内联元素那样向右对齐。
将 display : inline-block 添加到 div 的 css 会给你想要的东西。
just add float:left; property in child divs or display:inline-block;
https://jsfiddle.net/8tvn0kw6/5/
div
是标准的块级元素。块级元素从新的一行开始,并尽可能地向左和向右延伸。其他常见的块级元素是 p 和 form,HTML5 中的新元素是页眉、页脚、节等。
即使您指定了宽度,它也不允许其他元素紧挨着它。这是块级元素的属性。
使用css inline-block
它将占用指定的宽度或内容宽度。
容器的height
应该是子div的高度和子div的边框高度之和
即height of parent container = 100+ 100+ 1+ 1+ 1+ 1 = 204px
#container {
height: 204px;
}
您有两种水平放置方块的方法:显示 属性 或 浮动 属性。
为元素设置宽度并不重要。它们仍然是块状并垂直显示。
要更改此行为,请使用样式表(请注意,在这两种情况下都应设置 width,而不是 max-width):
#container {
height: 200px;
max-width: 600px;
border: 1px solid black;
margin: auto;
margin-top: 10px;
}
#item1 {
height: 100px;
width: 200px;
border: 1px solid red;
display: inline-block;
}
#item2 {
height: 100px;
width: 200px;
border: 1px solid blue;
display: inline-block;
}
或者这个:
#container {
height: 200px;
max-width: 600px;
border: 1px solid black;
margin: auto;
margin-top: 10px;
}
#item1 {
height: 100px;
width: 200px;
border: 1px solid red;
float: left;
}
#item2 {
height: 100px;
width: 200px;
border: 1px solid blue;
float: left;
}
我有一个关于 HTML 的一般问题,可能是新手问题。
#container {
height: 200px;
max-width: 600px;
border: 1px solid black;
margin: auto;
margin-top: 10px;
}
#item1 {
height: 100px;
max-width: 200px;
border: 1px solid red;
}
#item2 {
height: 100px;
max-width: 200px;
border: 1px solid blue;
}
<div id="container">
<div id="item1"></div>
<div id="item2"></div>
</div>
我的问题是,为什么 #item1
和 #item2
div 位于彼此下方而不是彼此相邻?不是因为我给它们指定了设定的宽度,它们就不再是块级元素了吗?为什么它们在 #container
内没有并排排列? #container
的宽度足以容纳这两项。
注意:这仅适用于 learning/curiosity。我知道我可以使用边距和定位将它们放在我想要的位置。但是,我只是好奇为什么它会这样。
谢谢。
<div>
标记始终以新行开头。如果你想在一行中看到多个项目,那么添加 css 比如 display: inline-block
请像下面这样替换您的 class。
#item1{
height:100px;
max-width:200px;
border:1px solid red;
display:inline-block;
}
#item2{
height:100px;
max-width:200px;
border:1px solid blue;
display:inline-block;
}
#container 即您 div 有块显示 属性。如果您未将其设置为任何其他值,则这是默认值 属性。在您的情况下,div 采用此默认显示 属性。
要并排查看#item1 和#item2,只需在#container 中使用display: inline-block。
Div 元素是块元素,除非您将显示 属性 指定为内联或内联块,否则它不会像其他内联元素那样向右对齐。
将 display : inline-block 添加到 div 的 css 会给你想要的东西。
just add float:left; property in child divs or display:inline-block;
https://jsfiddle.net/8tvn0kw6/5/
div
是标准的块级元素。块级元素从新的一行开始,并尽可能地向左和向右延伸。其他常见的块级元素是 p 和 form,HTML5 中的新元素是页眉、页脚、节等。
即使您指定了宽度,它也不允许其他元素紧挨着它。这是块级元素的属性。
使用css inline-block
它将占用指定的宽度或内容宽度。
容器的height
应该是子div的高度和子div的边框高度之和
即height of parent container = 100+ 100+ 1+ 1+ 1+ 1 = 204px
#container {
height: 204px;
}
您有两种水平放置方块的方法:显示 属性 或 浮动 属性。
为元素设置宽度并不重要。它们仍然是块状并垂直显示。 要更改此行为,请使用样式表(请注意,在这两种情况下都应设置 width,而不是 max-width):
#container {
height: 200px;
max-width: 600px;
border: 1px solid black;
margin: auto;
margin-top: 10px;
}
#item1 {
height: 100px;
width: 200px;
border: 1px solid red;
display: inline-block;
}
#item2 {
height: 100px;
width: 200px;
border: 1px solid blue;
display: inline-block;
}
或者这个:
#container {
height: 200px;
max-width: 600px;
border: 1px solid black;
margin: auto;
margin-top: 10px;
}
#item1 {
height: 100px;
width: 200px;
border: 1px solid red;
float: left;
}
#item2 {
height: 100px;
width: 200px;
border: 1px solid blue;
float: left;
}