浮动与定位解析
- 格式:doc
- 大小:11.50 KB
- 文档页数:2
HTML08.浮动与定位
笔记大纲:
1)浮动与清除浮点
2)3种定位方式
3)图层的遮罩效果
1.浮动:块级元素每个本来单独占行,但是为了能让块漂浮挨个显
示(这里也不能使用行级元素,行级没有宽和高),这个时候,我们可以使用浮动来解决,float:left;这样相应的块就从左到右排列,放不下父容器就换行显示。
2.一般情况下,字元素的margin会和父元素的margin合并,解决
办法有两种:
1)让父元素有border和padding
2)子元素全部浮动
注意:浮点,要么子元素都浮动,要么都不浮动;
3.浮动的方式有:
1)float:left;/*逐个从左到右排序*/
2)float:right;/*逐个从右到左排序*/
3)float:none;不浮动,默认值
注:浮动的会挤到或者覆盖没有浮动的元素,容易造成布局混乱,所以还是需要进行要么全部浮动,要么都不浮动
4.如果不想块按照原有的方式布局摆放,我们可以使用定位来解决,
定位的方式主要有3种
1)相对定位
position:relative;
top:10px;
left:10px;
元素相对自己的位置进行移动,空间保留
2)绝对定位
position:absolute;元素默认相对body进行定位,但如果父元素有定位方式,就相对父元素进行定位,的那不占任何原有空间;
3)混合定位:
position:fixe;元素会漂在相对的位置上,随着滚动条滚动而滚动;注:当多个层进行定位方式会有层叠的问题,那么可以使用z-index 属性进行排序,值越大越在上面;
5.。
⽹页布局的三种⽅式-标准流、浮动和定位⽹页布局的三种⽅式⽹页布局的本质——⽤CSS 来摆放盒⼦。
把盒⼦摆放到相应位置CSS 提供了三种传统布局⽅式(简单说,就是盒⼦如何进⾏排列顺序):普通流(标准流)浮动定位标准流标准流定义所谓的标准流:,就是标签按照规定好默认⽅式排列1. 块级元素会独占⼀⾏,从上向下顺序排列。
常⽤元素:div、hr、p、h1~h6、ul、ol、dl、form、table2. ⾏内元素会按照顺序,从左到右顺序排列,碰到⽗元素边缘则⾃动换⾏常⽤元素:span、a、i、em 等以上都是标准流布局,标准流是最基本的布局⽅式。
浮动浮动定义浮动最典型的应⽤:可以让多个块级元素⼀⾏内排列显⽰。
⽹页布局第⼀准则:多个块级元素纵向排列找标准流,多个块级元素横向排列找浮动。
float 属性⽤于创建浮动框,将其移动到⼀边,直到左边缘或右边缘触及包含块或另⼀个浮动框的边缘。
语法:选择器{ float: 属性值; }属性值:值描述left元素向左浮动。
right元素向右浮动。
none默认值。
元素不浮动,并会显⽰在其在⽂本中出现的位置。
inherit规定应该从⽗元素继承 float 属性的值。
浮动特性⼀、脱离标准普通流的控制(浮)移动到指定位置(动), (俗称脱标),且浮动的盒⼦不再保留原先的位置如同其名字的意义⼀样,浮动,即浮动到元素上⽅,可以这样来理解:标准流在最底层,浮动的元素在标准流的上⽅,即脱离了标准流的控制。
同时它位于标准流的上层,所以标准流⾥不会再存在它的位置。
但也会有特殊的情况,即⽂字和浮动元素位于同⼀个⽗元素⾥时,浮动元素不会盖住⽂字,⽽是环绕⽂字,这是因为浮动设计的初衷就是类似word图⽚和⽂字的浮动效果,所以不会出现浮动元素盖住⽂字的情况出现。
⼆、如果多个盒⼦都设置了浮动,则它们会按照属性值⼀⾏内显⽰并且顶端对齐排列例如三个在同⼀个⽗盒⼦下的⼦盒⼦,都设置左浮动例如在同⼀个⽗盒⼦下的两个⼦盒⼦分别设置左浮动和右浮动注意:浮动的元素是互相贴靠在⼀起的(不会有缝隙),如果⽗级宽度装不下这些浮动的盒⼦,多出的盒⼦会另起⼀⾏对齐三、浮动元素会具有⾏内块元素特性任何元素都可以浮动。
深入理解css布局之定位与浮动在css知识体系中,除了css选择器,样式属性等基础知识外,css布局相关的知识才是css比较核心和重要的点。
今天我们来深入学习一下css布局相关的知识。
上篇文章我们讲完了css布局中盒模型和元素分类的相关知识,同时介绍了box-sizing和行框。
这篇我们继续...一、定位与浮动上篇我们讲解了不同类型元素的特点,我们可以随意的排列组合他们来达到我们想要的效果。
但是他们都是基于一个二维平面的,如果我们想在布局中有遮挡,重叠之类的更丰富效果,我们就需要使用到定位和浮动的相关知识。
1.1 文档流文档流就是按照页面元素书写的顺序,将页面元素按从左到右,从上至下的一般顺序进行排列。
那么也就可以理解成我们刚才所说的一个二维平面的概念。
那么如果我想要实现更丰富的效果,就需要脱离文档流,在一个新的平面上去显示,这样我们就可以在屏幕上有多个平面叠加显示的效果了,那么这就是浮动和定位的工作了。
1.2 定位定位允许你使用position 属性,将一个元素相对于他自己或者他的祖先元素甚至是浏览器窗口通过 top , left , right , bottom 属性进行偏移。
根据position 属性的取值,元素可以分为静态定位元素static (默认值)、相对定位元素relative、绝对定位元素absoute和固定定位元素fixed。
首先我们抛开static这个默认值,因为他基本不属于定位的范畴,因为元素默认就是static,他就相当于是依据文档流显示。
当我们使用定位时,需要position属性和top,left,right,bottom 这两类属性共同参与来决定一个元素的定位类型和偏移量。
使用方法很简单,这里说下他们之间的区别:•relative相对定位•元素根据其在当前文档流所在位置作为参考系,进行偏移。
•定位之后原来元素在文档流中的位置会被空出来,不会被其他元素所占据。
•absolute绝对定位•元素会将其带有position为非static的祖先元素作为参考系进行偏移。
1.浮动(float)在div+css中浮动分为左浮动右浮动和清除浮动。
①右浮动(float:right)指一个块元素向右移动,并且空出自己左边的位置,让给其他元素,直到碰到包含该块元素的边框为止。
②左浮动(float:left)指一个块元素向左移动,让出它右面的空间,让别的块元素显示。
如果浮动元素的高度不同,那么当它们向下移动时可能被其它浮动元素”卡住”。
并且只从它下一行的右下角往后排!③清除浮动(clear:left;clear:right;clear:both)如果不希望别的元素在某个元素的左边后者右边,可以使用清除浮动的方式。
2.浮动对块元素和行内元素都有效,并且只有在浮动的情况下,浏览器才解析行内元素的宽和高。
3.定位(position) 常见的定位有4种①static(默认的)Left 和top 属性对static 定位的元素不生效。
Static 是靠margin-left 和margin-top 进行定位的②relative 相对定位所谓相对定位是相对于该元素原先所在位置的左上角定位的,虽然它脱离了标准流,但是它原先的位置不会被占据。
代码#spe{Position:relative;Left:40px;Top:100px;}③absolute 绝对定位绝对定位是指:以包含该元素且脱离了标准流的元素为基础定位的,但是如果没有父元素(或有父元素,但父元素没有脱离标准流),则相对于body左上角定位。
④fixed 固定定位所谓fixed定位,指的是不管怎样,总是以视窗左上角为基准定位。
4.z-index 用于设置对象(div)显示的时候的层叠顺序。
.cls{z-index:#;}#=1 2 3 4 数字越小,对象越在下边。
postion:relative是子块级元素面向父级元素的相对定位,定位关键字使用left/right/top/bottom,而float:right/left是子块级元素流集合面向父级元素的定位,定位的关键词使用margin/padding。
浮动布局和定位布局一、网页元素的三种位置方式普通流:不浮动、定位,前面做的那些网页浮动:用float样式的网页定位相对定位绝对定位固定定位二、浮动布局浮动现象的特点(1)浮动元素只能水平地向左或向右浮动,不可能斜向上或斜向下浮动。
(2)浮动元素离开了普通流。
浮动元素之后的块状元素将忽略它并占据它原来的空间。
行内元素(文字)会围绕在浮动元素周围。
(3)如果不希望浮动元素对后面的元素产生影响,可以为后面的元素应用“clear”属性,如果为清理元素设置“margin-top”属性,该属性不起作用。
因此应避免为清理元素设置“margin-top”属性(4)如果让一个元素浮动,它会向左或者向右浮动直至遇到父元素的边缘。
如果向同一方向再浮动一个元素,它会浮动直至遇到前一个浮动元素的边缘(5)如果向同一方向浮动多个元素,它们将一个挨一个排列,当水平空间无法容纳更多的浮动元素时,浮动元素会换行排列(6)应该为浮动元素设定宽度。
如果不设定宽度,浮动元素有宽度最小化的趋势,在不同的浏览器中会有不同的显示效果(自适应)(7)浮动元素的边距(如margin-top、margin-bottom)不会重叠,而普通流中的元素会出现重叠父元素不能包含浮动的子元素的处理办法迫使父元素包含子元素的方法:方法一:为父元素设置overflow:hidden: 。
对于IE6浏览器需要为父元素设置zoom: 1 方法二:利用一个子元素清除浮动(clear方法)二、定位布局定义:定位是指通过选取适合的参照物,并设置left 或right、top 或bottom 属性,来确定元素在网页中的位置(1)相对定位①position: relative;②相对定位是指元素相对于它的原始位置定位③相对定位元素仍然保留它在文档流中的原始位置④如果不设置宽度,相对定位元素的宽度保持原来大小⑤绝对定位是指元素相对于最近的已定位的祖先元素定位。
如果不存在已定位的祖先元素,则相对于浏览器视口定位(2)绝对定位①绝对定位是指元素相对于最近的已定位的祖先元素定位。
浮动定位以及其区别浮动元素的浮动是指设置了浮动属性的元素会脱离标准普通流的控制,移动到其父元素中指定位置的过程。
语法: float :leftrightnone(默认)注意:1. 浮动的元素要有父元素2. 浮动后的元素类似元素行内块元素,即使行内元素浮动后也可以设置宽高.(类似不代表是,浮动后的盒子可以设置宽高,但是不能用行内块的方式让盒子居中,比如:给浮动的盒子父元素添加text-algin :center ;是不起作用的;需要给盒子margin 才能调整其位置)3. 浮动的元素会脱离文档流,但是没有脱离文本流浮动带来的影响:父元素高度塌陷 : 子元素浮动,父元素没有设置高,子元素不能把父元素的高给撑开,导致父元素没有高度,这种现象叫父元素高度塌陷 .清除浮动1.加固定的高缺点:不灵活2.额外标签法在父元素的末尾加一个空div, 给父元素设置clear:left/right/both优点:通俗易懂,书写方便缺点:添加许多无意义的标签,结构化较差。
3.父级添加overflow属性方法在父元素身上设置 : 除了visible以外的其他overflow 的值都可以 , overflow:hidden/scroll/ auto原因: 是overflow触发了BFC, 在计算BFC高度的时候,浮动的子元素的高度也计算在内优点:代码简洁缺点 :无法显示需要溢出的元素4.使用after伪元素清除浮动优点 : 结构语义化正确缺点 : 由于IE67不支持:after,使用 zoom:11 .clearfix:after {2 content: "";3 display: block;4 clear: both;5 }6 .clearfix {7 zoom: 1;8 }定位1.postion: static 默认值静态定位2.postion : relative : 相对定位特点 : 不脱离文档流 ,以自身的位置来定位的应用场景 :微调元素做绝对定位的参考,子绝父相3.position:fixed : 固定定位不管怎么滚动滚动条,始终固定在某个位置特点 : 脱离了文档流,以浏览器窗口来定位的4.position:absolute : 绝对定位特点 : 脱离了文档流, 以最近已定位的”父元素”的位置来说的,如果父元素都没有定位,以html的位置来说的备注 : 已定位的”父元素”可以是绝对定位/ 相对定位/固定定位,子绝父相用的最多方向关键字left : 正值是向右走的负值往左走top : 正值是向下走的负值往下走right : 正值是向左走的负值往右走bottom : 正值是向上走的负值往下走注意: static定位身上不能用方向关键字脱离文档流的元素1.固定定位2.绝对定位3.浮动特点 : 类似于行内块元素,如果不设置宽高,它的宽高是由内容撑开的,即使是行内元素,可以设置宽高如何让定位的盒子垂直居中:1 {2 left:50%;3 top:50%;4 margin-left:-盒子宽度的一半;5 margin-top:-盒子高度的一半;6 }78 {9 left:50%;10 top:50%;11 <!--向左移动自己宽度的一半-->12 transform: translateX(-50%);13 <!--向上移动自己高度的一半-->14 transform: translateY(-50%);15 }浮动定位区别CSS2中能够使标签脱离文档流的属性有:float:left/right;postion:absolute/fixed;float脱离文档流时,其他盒子会无视这个标签,但其他盒子内的文本、图片、表单标签依然会为这个标签让出位置,环绕在周围( 脱离文档流,不脱离文本流 )。
CSS浮动与定位灵活控制元素的位置CSS是一种用于样式化网页内容的标记语言,其中的浮动和定位是页面布局的重要组成部分。
通过使用浮动和定位,我们可以实现对元素位置的灵活控制。
本文将介绍CSS中浮动和定位的基本概念、应用场景以及使用方法。
一、浮动浮动是一种CSS属性,用于指定元素在页面中的位置。
通过将元素浮动到屏幕的左侧或右侧,我们可以实现多个元素的并排显示。
1. 浮动的基本概念在CSS中,通过设置元素的`float`属性为`left`或`right`来实现浮动。
例如,设置`float: left;`可以将元素浮动到屏幕的左侧。
2. 浮动的应用场景浮动常用于实现网页的多栏布局。
通过将导航栏、侧边栏和内容区域进行浮动,可以实现这种布局效果。
3. 浮动的使用方法要使用浮动来控制元素的位置,需要遵循以下步骤:(1)在HTML中,给需要浮动的元素添加一个class或id属性,用于在CSS中选择该元素。
(2)在CSS中,通过选择器选中需要浮动的元素,并设置`float`属性的值为`left`或`right`。
(3)根据需要,设置元素的宽度、高度以及其他样式属性。
二、定位定位是一种通过CSS属性来精确定位元素的方法。
与浮动不同,定位可以将元素放置在页面的任意位置。
1. 定位的基本概念在CSS中,常用的定位方式包括相对定位(`position: relative;`)、绝对定位(`position: absolute;`)和固定定位(`position: fixed;`)。
这些属性可以用于设置元素的位置。
2. 定位的应用场景定位常用于实现网页的特殊效果,如悬浮菜单、弹出窗口等。
通过使用不同的定位方式,我们可以将元素放置在页面的任意位置。
3. 定位的使用方法要使用定位来控制元素的位置,需要遵循以下步骤:(1)在HTML中,给需要定位的元素添加一个class或id属性,用于在CSS中选择该元素。
(2)在CSS中,通过选择器选中需要定位的元素,并设置`position`属性的值为`relative`、`absolute`或`fixed`。
CSS定位与浮动的知识点CSS(层叠样式表)是一种用于描述网页样式和布局的语言。
在CSS中,定位和浮动是两个重要的概念,它们能够帮助我们对网页元素进行位置控制和布局调整。
本文将详细介绍CSS中定位与浮动的知识点。
一、定位(Positioning)定位可以让我们精确地控制网页元素的位置。
在CSS中,常用的定位方式有相对定位(Relative)、绝对定位(Absolute)、固定定位(Fixed)和粘性定位(Sticky)。
1. 相对定位(Relative)相对定位是相对于元素原本所在的位置进行定位。
使用相对定位后,元素仍然占据原来的空间,并且可以通过top、bottom、left和right属性相对移动。
相对定位的元素不会对其他元素造成影响。
示例代码:```cssdiv {position: relative;left: 50px;top: 20px;}```2. 绝对定位(Absolute)绝对定位是相对于离它最近的已定位祖先元素进行定位。
如果没有已定位的祖先元素,那么它将相对于文档的根元素(即body)进行定位。
绝对定位的元素脱离了文档的普通流,不占据空间。
示例代码:```cssdiv {position: absolute;left: 100px;top: 50px;}```3. 固定定位(Fixed)固定定位是相对于浏览器窗口进行定位,无论页面滚动与否,元素始终停留在设置的位置。
常用于创建固定的导航栏或广告栏等元素。
示例代码:```cssdiv {position: fixed;right: 20px;bottom: 30px;}```4. 粘性定位(Sticky)粘性定位是相对定位和固定定位的结合。
当元素在容器中可见时,它的行为类似于相对定位,当元素滚动到容器外时,行为类似于固定定位。
粘性定位需要设置位置属性和至少一个偏移属性。
示例代码:```cssdiv {position: sticky;top: 50px;}```二、浮动(Floating)浮动可以使元素脱离文档的普通流,向左或向右移动,直到碰到包含它的容器边界或其他浮动元素为止。
2、CSS定位属性的取值:
☆overflow属性的取值:
vertical-align
z-index
3、CSS浮动:
(1)、float属性:
float 属性定义元素在哪个方向浮动。
以往这个属性总应用于图像,使文本围绕在图像周围,不过在CSS 中,任何元素都可以浮动。
浮动元素会生成一个块级框,而不论它本身是何种元素。
如果浮动非替换元素,则要指定一个明确的宽度;否则,它们会尽可能地窄。
假如在一行之上只有极少的空间可供浮动元素,那么这个元素会跳至下一行,这个过程会持续到某一行拥有足够的空间为止。
(3)、clear属性:
clear 属性规定元素的哪一侧不允许其他浮动元素。
CSS浮动与定位的高级知识点CSS中的浮动(float)和定位(position)是布局和定位元素的两种重要技术,掌握它们的高级知识点能够更好地运用它们实现网页设计中的各种效果和布局。
本文将介绍CSS浮动与定位的高级知识点,包括浮动和定位的基本原理、常见的使用场景以及注意事项。
通过学习本文,读者将更好地理解和运用CSS中浮动和定位的技术。
一、浮动(float)技术1. 基本原理浮动是CSS中一种布局方式,可以实现元素(通常是块级元素)的水平排列。
元素通过设置float属性为left或right来进行浮动。
浮动元素不再占据正常文档流的位置,而是根据其浮动方向向父元素的左侧或右侧靠拢。
2. 清除浮动在使用浮动布局时,经常会遇到浮动元素引起的父元素高度塌陷的问题。
为了解决这个问题,可以使用清除浮动的技术。
其中,常用的清除浮动的方法包括:使用空元素清除浮动、使用伪元素清除浮动和使用clear属性清除浮动。
3. 浮动与文本流浮动元素通过浮动脱离正常文档流,但仍然会影响周围的文本流。
为了控制文字绕排的方式,可以使用CSS中的clear属性,通过设置clear属性,使得元素在浮动元素下方开始。
4. 浮动与宽度当浮动元素宽度超过其父元素宽度时,会自动换行显示,而不会超出父元素的范围。
这是因为浮动元素会尽量占据自身所需的宽度,并自动溢出到下一行。
二、定位(position)技术1. 定位的基本原理定位是CSS中一种精确布局元素的方式。
通过设置元素的position 属性以及top、right、bottom和left属性,可以将元素定位到指定的位置。
常用的position属性值包括:static、relative、absolute和fixed。
2. 相对定位(relative)相对定位是相对于元素在文档流中的原始位置进行定位,即在正常文档流中占据原来的空间。
通过设置top、right、bottom和left属性的值来调整元素的位置。
web浮动与定位实验总结Web浮动与定位是前端开发中非常重要的概念,它们可以帮助我们实现页面布局的灵活性和多样性。
本文将对Web浮动与定位进行实验总结,并探讨它们的应用场景和使用技巧。
一、浮动(float)的使用浮动是CSS中常用的布局方式之一,它可以使元素脱离文档流并向左或向右移动,其他元素会围绕它进行排列。
在实际开发中,我们经常使用浮动来实现多栏布局、图文混排等效果。
1. 浮动的基本语法在CSS中,我们可以通过设置元素的float属性来实现浮动效果。
float属性的值可以是left、right或none。
当设置为left时,元素会向左浮动;当设置为right时,元素会向右浮动;当设置为none 时,元素不会浮动。
2. 浮动的应用场景浮动常用于实现多栏布局。
我们可以将页面分为多个栏目,每个栏目使用浮动来进行布局。
通过设置不同的浮动方向和宽度,可以实现不同栏目的排列效果。
3. 浮动的注意事项在使用浮动时,需要注意以下几点:(1)浮动元素会脱离文档流,可能会影响其他元素的布局,需要通过清除浮动来解决这个问题。
(2)浮动元素的父元素的高度会塌陷,可以通过触发BFC(块级格式化上下文)来解决这个问题。
(3)浮动元素的宽度默认为其内容的宽度,可以通过设置宽度来改变浮动元素的宽度。
二、定位(position)的使用定位是CSS中控制元素位置的一种方式,通过设置元素的position 属性和top、bottom、left、right属性,可以精确地控制元素的位置。
1. 定位的基本语法在CSS中,我们可以通过设置元素的position属性来实现定位效果。
position属性的值可以是static、relative、absolute或fixed。
其中,static为默认值,表示元素的位置由正常文档流决定;relative表示相对定位,元素相对于其正常位置进行定位;absolute表示绝对定位,元素相对于其最近的非static定位的父元素进行定位;fixed表示固定定位,元素相对于浏览器窗口进行定位。
教师学科教案[ 20 – 20 学年度第__学期]任教学科:_____________任教年级:_____________任教老师:_____________xx市实验学校传智播客《HTML5+CSS3网站设计基础教程》教学设计课程名称:HTML5+CSS3网站设计基础教程授课年级:2016年级授课学期:2016学年第一学期教师姓名:某某老师201 年月日教学过程第一课时(讲解元素的浮动属性float、清除浮动)复习上节课内容在讲解本节内容前,抛出以下问题让学生回答,以复习第五章“CSS盒子模型”的相关知识。
1、一个盒子的宽(width)和高(height)均为300px,左内边距为30px,同时盒子有3px的边框,请问这个盒子的总宽度是多少?()A、333pxB、366pxC、336pxD、363px答案:C●盒子的总宽度= width+左右内边距之和+左右边框宽度之和+左右外边距之和;●所以,盒子的总宽度= width(300px)+左内边距(30px)+左右边框宽度之和(3px*2)=336px;说明:教师可根据学生对上述问题的回答情况,对以上问题进行简单讲解或直接进入本课时新内容的学习。
本课时内容学习✧分组讨论对新课进行讲解前,先让学生分组讨论以下问题:初学者在设计一个页面时,通常会按照默认的排版方式,将页面中的元素从上到下一一罗列,这样的布局制作出来的页面看起来呆板、不美观。
其实,通过元素“浮动”可以使页面中的元素按照左、中、右的结构进行排版。
那么,什么是“元素的浮动”,以及如何设置元素的浮动呢?请小组代表对以上问题发表见解。
教师对上述问题进行解释:●所谓元素的浮动是指设置了浮动属性的元素会脱离标准文档流的控制,移动到其父元素中相应位置的过程。
在CSS中,通过float属性来定义浮动,其基本语法格式如下:选择器{float:属性值;}●在上面的语法中,常用的float属性值有三个:left、right、none。
绝对定位与相对定位和浮动的区别与运用
绝对定位和浮动的区别和运用
1. 绝对定位的本身是与文档流无关,他的定位是从浏览器的左上方或者父级开始计算的。
因此不占空间,普通文档流中的元素的布局就当绝对定位的元素不存在时一样。
所以他可以覆盖页面上的其他元素。
2.浮动元素的定位还是基于正常的文档流,然后从文档流抽出并尽可能远的移动至左侧或者右侧。
文字内容会围绕在浮动元素周围。
它只是改变了文档流的显示,而没有脱离文档流。
绝对定位与相对定位
1.absolute,绝对定位的框与文档流无关,所以他们可以覆盖页面上的其他元素并可以通过z-index来控制它的层级次序。
z-index的值越高,它显示的越在上层。
2.relative,对一个元素进行相对定位,首先它出现在它所在的位置上。
然后通过设置垂直或水平位置,让这个元素“相对于”它的原始起点进行移动。
(相对定位时,无论是否进行移动,元素仍然占据原来的空间。
因此,移动元素会导致它覆盖其他框)
3.父元素相对定位。
子元素绝对定位。
这样子子元素的位置不在相对浏览器左上角,而是相对于父级窗口的左上角。
4.相对和绝对需要配合top/ right/ bottom/left来定位具体位置,这四个属性只有在该元素使用定位后才生效,其他情况无效。
定位浮动清除浮动之间的种种因为本次实验以HTML+div+css进行测试,而div 是块级元素,即默认情况下的display=block(即块级元素);因此div 默认情况下一个div 就必须占据一行,即div旁边不得有任何其他的块级元素注意:html 文档中,一行只能有一个块级元素如果文档中,自然顺序写两个块级元素,则第二个块级元素会自动换行显示测试一:单纯的浮动1、自然状态下:一排n个div,放置在一个足够大的div范围注:因为是块级元素,所以每个div按照文档中写的顺序自然向下排成一排(也就是文档流自然流的说法)2、n个div放在一个足够大的div内,只有第一个、第二个同时向左浮动,其他正常规律:1 浮动的元素会飘起来,不占据原来文档流的位置,原来位置被其他正常元素占据;但是,飘的范围是父元素内2浮动起来的元素会依次向左浮动,在“空气流”同高度处依次排列3、n个div,前4个正方形的div全部向左浮动,最后3个正常,但是相比于上方,此处存放所有div的大容器div 水平范围较小,无法在水平位置存放全部的div规律:1 浮动的元素会飘起来,不占据原来文档流的位置,原来位置被其他正常元素占据;但是,飘的范围是父元素内2 浮动起来的元素会依次向左浮动,在“空气流”同高度处依次排列3如果设置同时向左浮动的n个元素在水平方向上无法存下,则会依次换行整体换行存放,而与父元素的距离是前面所有浮动元素中高度最大的距离,但所有浮动的元素仍然在“空气流”同高度处依次排列4因为之前的文档流都浮动起来不占据原来的位置,所以正常div 在文档中重新按照自然流顺序摆放4n个div,存放所有div的大容器div 水平范围较小,无法在水平位置存放全部的div,前4个正方形的div全部向左浮动,然后3个正常,最后一个向右浮动。
5相比于以上,只是又加了一个,设置最后两个元素分别向左向右浮动6、那,如果再加2个,最后4个,其中随意2个向左,另外2个向右浮动为此,充分体验下规律:注意这里的最底下的数字,因为7、8、9、10分别是按照向左、向右、向左、向右浮动的,先飘的一定最靠近飘动方向的边缘总结:假设里面没有设置position属性的所有元素,无论设置为浮动的div与其他很多的正常div按何种次序摆放;所有设置为浮动的div在空气流同高度处按之前在文档中的自然顺序依次摆放,并且如果有方向不一致的,越先飘的越靠近相应飘动方向侧所有正常div按照自然顺序重新组成新的自然流在该文档中依次摆放,测试二:绝对定位1n个正方形div, 第一个设置为绝对定位,即position=absolute;其他正常规律:1 设置为绝对定位的元素飘起来,到“空气流”中,因此不占正常文档流的位置2、n个正方形div, 前2个设置为绝对定位,规律:1 设置为绝对定位的元素飘到“空气流”中,不占据正常文档流位置2 在文档中处于先后位置关系设置position为绝对定位的,在“空气流”中的不同高度处,最后设置为absolute的,相对飘的较高,会覆盖下面的元素3 正常流重新组合,占据原来的位置3、n个正方形div,我们仅设置第2个和第4个的position 为absolute,注意:这里与浮动相同点:1 设置了float或者设置position为absolute的div(块级元素),都会飘到“空气流中”,不占据文档自然流位置不同点是:1 float的所有元素默认都在“空气流”同高度处,而设置position=absolute的div(块级元素),不在同一高度,并且,最后飘的,高度大2 这里的元素只在该位置的正上方“空气流”飘,不向左右移动位置4、如果将上述中的第2个设置left=240px; 第四个设置left=240px;top=600px是什么意思呢规律:可以发现,第2个和第4个在设置left=240px;后,在新的位置,距离浏览器左侧位置相同,真实的就是,这个是相对于浏览器左边的距离,(事实上,真是的情况是,这个距离是距离“自己”最近的设置了position 属性的祖先元素左侧的距离,如果是right=240px,则会距离右边界,下面可验证下),第4个的top,在此处就是距离浏览器(此处没有哪个父元素设置了position属性)上边界的距离5 在上方基础上,增加一个无关紧要的父类div,和一个与2、4同辈的div6,并且设置2和4为right:240Px; 而6位left:240px;这里可以发现,2、4距离浏览器右边界240px,6距离左边界240px;6、上方基础上,我们将父元素pink(粉色)的position分别设置为relative(注意:这里因为设置为absolute的话,粉色会自己飘到浏览器最左侧位置),并且将left=25px(该距离大于粉色边和灰色边的距离),right=25px;补一张pink的position设置为absolute的图,便于验证可以看出;2、4、6 距离粉色边(设置了position 属性的祖先元素)的距离都是25px即我们可以验证上方的几个结论;1 绝对定位的元素,会根据在原来文档自然流中的顺序,根据设置position的先后顺序不同,飘向自己原来位置的“正”上方,最后设置position属性的,在“空气流”的较高位置2 如果有偏移量设置,则左右上下设置的值为辈分距离自己最近的并且设置了position 属性的祖先元素边界的左右上下的距离测试三相对定位;相对定位是指想对自己原来位置的定位,如果设置div的position=relative,并且left=-10px, top=-20px; 则表示,该div自己向左移动10px 向上移动20px,并且,其他元素不得侵占。
CSS 定位与浮动 CSS允许任何元素浮动float,不论是图像,段落还是列表。
无论先前元素是什么状态,浮动后都成为块级元素。
浮动元素的宽度缺省为auto。
浮动有一系列控制它的规则。
1.浮动元素的外边缘不会超过其父元素的内边缘。
2.浮动元素不会互相重叠。
3.浮动元素不会上下浮动。
4.如果一个浮动元素在另一个浮动元素之后显示,而且会超出容纳块,则它下降到低于先前任何浮动元素的位置。
说简单点就是没有空间的话,就另起一行。
CSS 定位机制 CSS 有三种基本的定位机制:普通流、浮动和绝对定位。
除非专门指定,否则所有框都在普通流中定位。
也就是说,普通流中的元素的位置由元素在 (XHTML 中的位置决定。
块级框从上到下一个接一个地排列,框之间的垂直距离是由框的垂直外边距计算出来。
行内框在一行中水平布置。
可以使用水平内边距、边框和外边距调整它们的间距。
但是,垂直内边距、边框和外边距不影响行内框的高度。
由一行形成的水平框称为行框(Line Box),行框的高度总是足以容纳它包含的所有行内框。
不过,设置行高可以增加这个框的高度。
CSS position 属性通过使用 position 属性,我们可以选择 4 种不同类型的定位,这会影响元素框生成的方式。
position 属性值的含义:static 元素框正常生成。
块级元素生成一个矩形框,作为文档流的一部分,行内元素则会创建一个或多个行框,置于其父元素中。
relative 元素框偏移某个距离。
元素仍保持其未定位前的形状,它原本所占的空间仍保留。
absolute 元素框从文档流完全删除,并相对于其包含块定位。
包含块可能是文档中的另一个元素或者是初始包含块。
元素原先在正常文档流中所占的空间会关闭,就好像元素原来不存在一样。
元素定位后生成一个块级框,而不论原来它在正常流中生成何种类型的框。
fixed 元素框的表现类似于将 position 设置为 absolute,不过其包含块是视窗本身。
提示:相对定位实际上被看作普通流定位模型的一部分,因为元素的位置相对于它在普通流中的位置。
定位 position,我们通常用到的是绝对(absolute和相对(relative 定位通常,做弹出菜单的时候,会用到定位,父元素相对定位position:relative,其中的子元素绝对定位position:absolute,通过top,right,bottom,left的值来控制子元素的位置,要注意的是子元素的位置将相对于父元素,而不是整个页面。
浮动与定位的区别通过定位虽然也可以进行布局,但是它的特点决定了它不适合做页
面的布局,因为被定义的元素在普通文档中占有的任何空间都将被关闭,可以说,它是漂
浮在整个页面上面的,所以,它可以和页面上其他的内容重叠显示。
这个特点可以方便的让我们做出其他特殊的效果,但是相对与浮动就布局来说,我们更多的还是用浮动。