CSS盒子模型、浮动与定位
- 格式:ppt
- 大小:1.17 MB
- 文档页数:53
css(5)脱离⽂档流-定位position CSS中重要的东西就三个:盒模型、浮动、定位。
position:relative; 脱离⽂档流,但保留原来的位置!
相对定位就是相对⾃⼰原来的位置,进⾏位置移动。
移动的时候需要使⽤定位值。
top:正数向下移动
bottom:正数向上移动
left:正数向右移动
right:正数向左移动
position:absolute;
绝对定位的元素,脱离标准⽂档流。
⽤top、bottom、left、right来进⾏定位。
参考的是页⾯的左上⾓。
参照点: 离⾃⼰最近的、已经定位了的祖先盒⼦
1 <style type="text/css">
2 div{
3 width: 600px;
4 height: 200px;
5 background-color: yellowgreen;
6 position: absolute;
7 left:50%; 绝对定位的元素居中
8 top: 0;
9 margin-left: -300px; 要往回拉⼀半的⾃⼰宽度
10 }
</style>
固定定位: fixed
position: fixed;
固定定位的参考点⼀定是浏览器
z-index 叠压顺序
压盖顺序:
1)定位了的能够压住没有定位的;
2)如果都定位了,那么HTML顺序后⾯的能够压住前⾯的;。
有⼏种定位⽅式?分别是如何实现定位的?参考点是什么?使⽤
场景是什么?
CSS 有三种基本的定位⽅式:⽂档流、浮动和定位。
⽂档流(normal flow):⽂档流是所有元素布局的基础,作为从左到右、从上到下的布局⽅式,这是最常⽤的⼀种排版布局⽅式。
浮动(float):float:left/right;浮动的框可以向左或向右移动,直到它的外边缘碰到包含框或另⼀个浮动框的边框为⽌。
由于浮动框不在⽂档的普通流中,所以⽂档的普通流中的块框表现得就像浮动框不存在⼀样。
适⽤于实现⽂字环绕图⽚和多列布局。
定位(position)有以下四种⽅式:
定位⽅
实现⽅式使⽤场景式
static默认布局,按照⽂档流定位;默认布局;
relative相对于元素⾃⾝正常位置进⾏定位,元素在⽂档流中仍占据原来空间,只是表现出来的位置
适⽤于层叠效果;
会相对原来的位置偏移;
absolute绝对定位,相对于有定位属性的第⼀个⽗元素偏移,absolute定位元素会脱离⽂档流;适⽤于⼩区块的布局使⽤频繁
fixed相对浏览器窗⼝定位,设置的偏移属性,是相对于浏览器窗⼝的位置。
适⽤于⼴告等意图⼀直出现在⽤户眼
前的信息。
CSS盒子模型定位方式的研究与应用摘要:在web标准设计模式下,div+css布局方式与传统的表格排版相比有了本质的区别,实现了样式与内容的分离,而且使网页代码简洁,维护方便。
css定位是其应用的难点,下面对css盒模型常用的几种定位方式进行研究和应用分析。
关键词:盒子模型;css布局;定位中图分类号:tp393.092文献标识码:a文章编号:1007-9599 (2013) 06-0000-02级联样式表简称为css,还被称为风格样式表,由名字中我们就可以看出,它是用来进行网页风格设计的。
如果将其和传统的html 相比较看来,css可以对网页中的各个目标的位置排版进行精确的控制和管理,其精确的控制管理程度可以达到像素级别,css可以对网页目标的模型样式进行编辑和管理,除此之外,还可以进行初步的交互设计工作,功能比较的丰富多样,也比较的强大,css是当今最令人满意的表现设计语言。
1盒子模型1.1关于盒子模型的简单叙述盒子模型是说我们可以将各种html标签都看成一个个的盒子,这些html标签可以发挥盒子的功能,将网页上的不同元素装入其中,就像是汉字、符号、等等,除此之外,还能够嵌套另一个css 盒子。
一个盒子模型由内至外由content(内容),padding(填充),border(边框),margin(边界)四部分组成,如图1-1所示。
图1-1我们能够将其看成现实生活中上方开口的普通小盒子,然后从盒子的正上方向下看盒子,我们可以将边框当作盒子的厚度,我们将盒子的填充物看作具有良好防震功能的塑料泡沫,边界和内容就更好理解了,我们将边界当作盒子需要取出时所留下的空间,内容就当作这个虚拟小盒子能够装载物体的空间就可以了,这样的理解和比喻比较的直白,可以让人们产生很好的立体思维。
如此看来,盒子模型在具体的页面中占据的宽度就是左边界+左边框+左填充+内容+右填充+右边框+右边界几部分共同构成的,但是在css中width所代表的宽度则没有这么的复杂,它只是代表了盒子中内容部分的宽度。
属性作⽤padding-left 左内边距padding-right 右内边距padding-top 上内边距padding-bottom 下内边距写法意思padding:10px;上下左右内边距均为 10像素padding:5px 10px;上下内边距是5像素,左右内边距是10像素padding:5px 10px 15px;上内边距是5px ,左右内边距是10px ,下边距是15px padding:5px 10px 15px 20px;上是5px ,右是10px ,下是15px ,左是20px 从上顺时针(⼆)css 盒⼦模型记录前端学习过程,⽅便查漏补缺,如有错误,请评论告知~⼀、⽹页布局的本质⽹页布局过程: 1、先准备好相关的⽹页元素,⽹页元素基本都是盒⼦Box 2、利⽤CSS 设置好盒⼦样式,然后摆放到相应位置 3、往盒⼦⾥装内容⽹页布局的核⼼本质:就是利⽤CSS 摆盒⼦。
⼆、盒⼦模型所谓盒⼦模型:就是把HTML 页⾯中的布局元素看作是⼀个矩形的盒⼦,也就是⼀个盛装内容的容器。
CSS 盒⼦模型本质上是⼀个盒⼦,封装周围的HTML 元素,它包括:边框、外边框、内边距和实际内容其中:content :实际内容padding (内边距):盒⼦边框与内容之间的距离margin (外边距):盒⼦与盒⼦之间的距离border (边框):字⾯意思三、内边距(padding )padding 属性⽤于设置内边距,即边框与内容之间的距离padding 属性的复合写法可以有⼀到四个值也可以单独指定padding 值:padding-top :10px; (其他⽅位同理)注:padding 可能会影响盒⼦的实际⼤⼩。
属性作⽤margin-left左外边距margin-right右外边距margin-top上外边距margin-bottom下外边距如上图,⼀个100 x 100的盒⼦,在设置padding 为30px 以后,盒⼦实际⼤⼩变为160 x 160因此在使⽤时,应当注意padding 对盒⼦⼤⼩的影响,以设置盒⼦的最终⼤⼩。
我们可以通过声明宽和高来定义一个元素的内容(content)的宽度和高度。
如果没有做任何的声明,宽度和高度的默认值将是自动(auto)w3schools上对于盒子模型的图示如下在图的下方有一段很重要的话Important:When you specifythe width and height properties of an element with CSS,you are just settingthe width and height of the content area.也就是说当我们在css中设计一个块级元素的width和height属性时比如.box{width :100px; height:100px}时,其中的width 和height仅仅是对content部分设置的,即定义上图中padding下虚线方框内区域的长和宽。
而不是内容,内边距,边框的总和(但在IE的早期版本包括IE6中,盒子模型的width和height却恰恰是这样定义的,尽管符合人们思考的逻辑,但是不符合规范,这会造成严重的问题)对宽度为自动状态的静态(static)定位元素(即无定位),和相对定位(relatively positioned)元素来说,计算宽度的方法是,将他们包含块(containing block)[注释2]的宽度减去此元素的横向的所有外边距,内边距,边框,滚动条。
也就是说,从包含块的宽度中除去元素的横向外边距,内边距,边框,滚动条(如果存在的话)的宽度,所剩的值就是了。
[注释2]:包含块(containing block)。
如果你知道绝对定位和相对定位的实现原理的话,这个注释可以忽略。
包含块可以理解为一个矩形,而这个矩形的作用是为它里面包含的元素提供一个参考,内部元素的尺寸和位置的计算往往是由该元素所在的包含块决定的。
例如在绝对定位中,距离它最近的已定位(position为fixed,relative或absolute)的祖先元素即为包含块。
盒⼦属性,浮动,定位1.盒⼦常见属性1)容器盒⼦Box-size:设置盒⼦模型,CSS3标准,content-box:正常默认模式,起源于⾕歌,元素的整体⼤⼩会被内边距和边框撑开border-box:怪异模式,起源于IE,元素的整体⼤⼩不会被内边距和边框撑开Width:宽度Height:⾼度注意:width,height会根据box-size盒⼦模型的不同来决定是内容的宽度和⾼度,还是整个元素⼤⼩的宽度和⾼度。
2)Padding:内边距Padding-left,padding-right,padding-top,padding-bottomPadding:上右下左;Padding:上右下;左边距等于右边距Padding:上右;下跟上边⼀样,左跟右⼀样3)Margin:外边距外边距跟内边距⼀致。
但是两个元素的外边距会重叠。
4)Border:边框语法:border: 边框宽度边框样式颜⾊;可以分开设置,例如border-width: 30px;border-style: dashed;border-color: purple;分别设置上下左右边框,例如border-bottom:50px dotted green;5)Box-shadow:盒⼦阴影box-shadow: 阴影的⽔平偏移值阴影的垂直偏移值阴影的模糊度阴影的颜⾊;6)Display:设置盒⼦是块级元素还是⾏级元素还是弹性元素Block:块级元素,会占据⼀整⾏,有宽⾼,div,h1,p,li,ul...Line-block:⾏块元素,不会占据⼀整⾏,有宽⾼,img...Line:⾏元素,不会占据⼀整⾏,也没有宽⾼,a,span...7)Border-radius:边框的圆⾓8)Background:设置元素的背景,背景图⽚,背景颜⾊Background:是⼀个综合性的属性,可以分出背景颜⾊,背景图⽚,背景是否重复,背景图⽚的位置,背景图⽚的⼤⼩Background-position:设置背景图⽚的位置,left,right,top,bottom,center,百分⽐⼀般可以设置2值,第⼀个值是设置⽔平位置,第⼆个值设置垂直位置Background-size:设置背景图⽚的⼤⼩,注意:有时候不知道图⽚的确切⽐例的时候,只需要设置⼀个宽度或者⾼度,另外⼀个值设置为auto即可。