装修公司做网站热门关键词,天台城乡规划建设局网站,网站建设2种账号体系,东莞黄页大全CSS的很多其他属性大多容易理解#xff0c;比如字体#xff0c;文本#xff0c;背景等。有些CSS书籍也会对这些简单的属性进行大张旗鼓的介绍#xff0c;而偏偏忽略了对一些难缠的属性讲解#xff0c;有避重就轻的嫌疑。CSS中主要难以理解的属性包括盒型结构#xff0c;以…CSS的很多其他属性大多容易理解比如字体文本背景等。有些CSS书籍也会对这些简单的属性进行大张旗鼓的介绍而偏偏忽略了对一些难缠的属性讲解有避重就轻的嫌疑。CSS中主要难以理解的属性包括盒型结构以及定位。正如positioniseverything本文将主要讲述关于position的理解力求让您看完本文后对position有着最全面的认识。 position的四个属性值 relativeabsolutefixedstatic下面分别讲述这四个属性。 div id”parent”div id”sub1″sub1/iddiv id”sub2″sub2/id/div1. relative relative属性相对比较简单我们要搞清它是相对哪个对象来进行偏移的。答案是它本身的位置。在上面的代码中sub1和sub2是同级关系如果设定sub1一个relative属性比如设置如下CSS代码 #sub1{position: relative;padding: 5px;top: 5px;left: 5px;}我们可以这样理解如果不设置relative属性sub1的位置按照正常的文档流它应该处于某个位置。但当设置sub1为的position为relative后将根据toprightbottomleft的值按照它理应所在的位置进行偏移relative的“相对的”意思也正体现于此。 对于此您只需要记住sub1如果不设置relative时它应该在哪里一旦设置后就按照它理应在的位置进行偏移。 随后的问题是sub2的位置又在哪里呢答案是它原来在哪里现在就在哪里它的位置不会因为sub1增加了position的属性而发生改变。 如果此时把sub2的position也设置为relative会发生什么现象此时依然和sub1一样按照它原来应有的位置进行偏移。 注意relative的偏移是基于对象的margin的左上侧的。 2. absolute 这个属性总是有人给出误导。说当position属性设为absolute后总是按照浏览器窗口来进行定位的这其实是错误的。实际上这是fixed属性的特点。 当sub1的position设置为absolute后其到底以谁为对象进行偏移呢这里分为两种情况 1当sub1的父对象(或曾祖父只要是父级对象)parent也设置了position属性且position的属性值为absolute或者relative时也就是说不是默认值的情况此时sub1按照这个parent来进行定位。 注意对象虽然确定好了但有些细节需要您的注意那就是我们到底以parent的哪个定位点来进行定位呢如果parent设定了marginborderpadding等属性那么这个定位点将忽略padding将会从padding开始的地方(即只从padding的左上角开始)进行定位这与我们会想当然的以为会以margin的左上端开始定位的想法是不同的。 接下来的问题是sub2的位置到哪里去了呢由于当position设置为absolute后会导致sub1溢出正常的文档流就像它不属于parent一样它漂浮了起来在DreamWeaver中把它称为“层”其实意思是一样的。此时sub2将获得sub1的位置它的文档流不再基于sub1而是直接从parent开始。 2如果sub1不存在一个有着position属性的父对象那么那就会以body为定位对象按照浏览器的窗口进行定位这个比较容易理解。 3. fixed fixed是特殊的absolute即fixed总是以body为定位对象的按照浏览器的窗口进行定位。 4. static position的默认值一般不设置position属性时会按照正常的文档流进行排列。转载于:https://www.cnblogs.com/JavaTechLover/archive/2012/06/25/2561014.html