以下图片,详细清晰的讲明了盒子模型。
行内元素之间的水平距离
当两个行内元素并排紧邻时,它们之间的距离为margin-left和margin-right之和。
注意,对于行内元素,margin-top,margin-bottom无效果。
块级元素之间的竖直距离
两个块级元素之间的距离不是margin-bottom与margin-top总和,而是两者中的较大者。
盒子的浮动和定位
CSS 有三种基本的定位机制:普通流、浮动和定位。
浮动
浮动某元素,则要指定一个明确的宽度;否则,它们会尽可能地窄,没浮动前是100%。
浮动的框可以向左或向右移动,
如果它的外边缘碰到包含框或另一个浮动框的边框为止。
如果它的外边缘碰到非浮动框,则会换行到非浮动框的下面。
<style type="text/css">
#top{
border:thin solid #800000
}
#one{
border: thin solid red;
float:left;
}
#normal{
width:100px;
height:100px;
border:thin solid blue;
float:left
}
</style>
<div id="top">
<div id="normal">非浮动碰撞物</div>
<div id="one">阿大</div>
</div>
由于浮动框不在文档的普通流中,所以文档的普通流中的块框表现得就像浮动框不存在一样。
<div id="top">
<div id="normal">非浮动碰撞物</div>
<div id="one">阿大</div>
<div id="two">阿二</div>
</div>
阿二如果不浮动,就会占据阿大的位置,不过阿二的文本,会受到阿大的宽度影响。(浮动元素占据的空间,会对行内元素产生影响,从而形成文本环绕的效果)
如果浮动,则会紧挨在阿大旁边。
float 属性定义元素在哪个方向浮动。
以往这个属性总应用于图像,使文本围绕在图像周围,不过在CSS 中,任何元素都可以浮动。
对阿大、阿二都进行浮动,它们都脱离了标准流,宋词div马上占据了阿大和阿二的位置。
两个盒子有一定的空间把文字挤到一边,形成图文混排效果。(浮动元素占据的空间,会对行内元素产生影响,从而形成文本环绕的效果)
<div id="top">
<div id="normal">非浮动碰撞物</div>
<div id="one">阿大</div>
<div id="two">阿二</div>
<div id="text"><span>
谁道闲情抛弃久?每到春来,惆怅还依旧。日日花前常病酒,不辞镜里朱颜瘦。
河畔青芜堤上柳,为问新愁,何事年年有?独立小桥风满袖,平林新月人归后。
</span></div>
清除浮动
如果不想要文本div占据阿大阿二的位置而产生的文字环绕效果。可以对文本div使用.clear{ clear:both;}
注意:对clear属性的设置要放到文字所在的盒子里,而不是放到“浮动”的盒子里。
去掉文字div后,要解决高度自适应问题
去掉文字后,由于阿大和阿二都脱离了标准流,所以top DIV视阿大和阿二于无形。把高度收回。
解决方法是:在阿二后面加<div class=“clear”></div>,并对.clear{clear:both;}进行清除浮动。
定位
static (静态定位)
元素框正常生成。
relative (相对定位)
元素框偏移某个距离。它原本所占的空间仍霸占着。
absolute (绝对定位)
元素框从文档流完全删除,并相对于其包含块定位。(注意:包含块必须也是绝对定位/fixed)元素原先在正常文档流中所占的空间会关闭,就好像元素原来不存在一样。
fixed (固定定位)
元素框的表现类似于将position 设置为absolute,但其包含块是视窗本身。(不支持IE6)
CSS 相对定位
对一个元素进行相对定位,它将以起点为参照,垂直或水平移动。
div{
border:thin solid gray;
}
div>div{
margin:10px;
width:80px;
}
#relative{
position:relative;
top:20px;
left:30px;
}
#top{
float:left
}
<div id="top">
<div>div1</div><div id="relative">div2</div><div>div3</div>
</div>
注意: 在使用相对定位时,无论是否进行移动,元素仍然占据原来的空间。注意,相对定位后,top div的宽度。因此,移动元素会导致它覆盖其它框。
绝对定位,元素不再保留原来占据的空间。
相关推荐
浏览器依据可见版式模型(visual formatting model)来安排这些盒子,主要通过position、display和float这三个属性来控制元素的布局。 1. position属性:此属性决定了元素的位置关系。当position设为static(默认值...
- HTML文件(如`说明.htm`)应包含适当的标记来组织内容,为CSS3样式提供挂载点,并可能包含数据属性来与JavaScript进行通信。 10. **源码分析**: - `jiaoben6810`可能是一个JavaScript文件,包含实现动画逻辑的...
Div+CSS布局的核心在于盒模型,每个Div都是一个矩形盒子,包含内容(content)、内边距(padding)、边框(border)和外边距(margin)。通过对这些属性的精细调整,可以实现灵活多样的布局方式,如流式布局、网格布局、相对...
2. **盒模型**:理解CSS盒模型是设计导航栏的基础。每个HTML元素都可以看作一个盒子,包括内容(content)、内边距(padding)、边框(border)和外边距(margin)。 3. **定位机制**:CSS的定位机制包括静态定位、相对定位...
- **盒子模型**:每个HTML元素都是一个矩形区域,由内容、内边距、边框和外边距组成。 - **浮动**:`float`属性使元素脱离正常文档流,常用于创建列布局。 - **定位**:`position`属性控制元素的位置。 - **`...
- 盒模型:CSS中的每个元素都是一个盒子,包括内容、内边距、边框和外边距。 - 浮动:`float: left`或`right`使元素在容器内水平移动,常用于创建多列布局。 - 定位:`position`属性,包括`static`、`relative`、`...
2. **CSS盒模型**:理解盒模型是创建布局的关键。在纯CSS TAB中,每个TAB按钮和内容区域都是一个盒子,它们的宽度、高度、内边距和外边距都需要精确计算,以达到理想的布局效果。 3. **伪类选择器**:如`:hover`、`...
2. **盒模型**:CSS中的每个元素都可视为一个盒子,包括内容(content)、内边距(padding)、边框(border)和外边距(margin),理解盒模型对于布局至关重要。 3. **层叠与继承**:CSS允许样式叠加,当多个规则应用于同一...
这一主题涉及的知识点广泛,包括网页结构、CSS选择器、盒模型、浮动布局、定位技术等,下面将详细介绍这些内容。 首先,XHTML是HTML的一个扩展,它强化了HTML的语义性,使得代码更加规范和严谨。在三列布局中,...
`Delphi盒子.url`是一个快捷方式,可能指向一个与Delphi相关的网站或者论坛,开发者可以通过这个链接获取更多的Delphi编程资源和社区支持。至于`DBIOCP3.2.2`,这可能是框架的主程序或库文件,包含了实际的源代码和...
同时,HTML文件(`.html`或`.htm`)将揭示如何与CSS交互以构建页面结构。此外,还可能包含图片、JavaScript文件和其他资源,这些都是构建完整网站所必需的组成部分。通过对这些文件的深入研究,我们可以学习到实际的...
1. **选择器与声明**:CSS通过选择器(如元素选择器、类选择器、ID选择器等)定位HTML元素,并用声明(如`color: red;`)定义样式。 2. **盒模型**:CSS盒模型包括元素的内容、内边距(padding)、边框(border)和...
- CSS Flexbox:灵活的盒子模型,用于创建响应式布局。 - CSS Grid:二维网格布局系统,适用于复杂的布局设计。 九、HTML与CSS实战 "curso-esencial-html-css"课程将通过实例讲解如何结合HTML和CSS创建实际网页,...
3. CSS样式属性:包括颜色(`color`,`background-color`)、字体(`font-family`,`font-size`)、边框(`border`)、间距(`margin`,`padding`)等,以及盒模型的理解。 4. 布局技巧:使用浮动(`float`),清除...