CSS如何相对同辈元素定位

html-css020

CSS如何相对同辈元素定位,第1张

材料/工具:电脑、CSS3、HTML5、HBuilder、浏览器、截图工具

1、双击打开HBuilder编辑工具,新建静态页面position.html,修改title标签内的内容。

2、在<body></body>标签元素内插入一个<div></div>标签,设置其id属性值为pos。

3、利用ID选择器设置div元素宽度和高度都为300px,背景色为#666666,position为absolute。

4、保存代码并预览界面,发现页面展示的正方形边框在左上角。

5、修改top、left、margin和padding,让div元素垂直居中。

6、设置div标签元素border-radius和background渐变属性即可。

首先要更正一下,不存在first-of-child的,只有first-of-type

下面就说说first-child与first-of-type的区别:

first-child:父元素的第一个子元素且必须符合指定类型

first-of-type:父元素的符合指定类型的第一个子元素

当然,光看文字也是很难理解的,下面看看例子:

<div>

<p>第1行</p>

<p>第2行</p>

<p>第3行</p>

</div>

这种情况下,不管是p:first-of-type还是p:first-child,<p>第1行</p>都会被选中。

而如果是:

<div>

<i>第1行</i>

<p>第2行</p>

<p>第3行</p>

<p>第4行</p>

</div>

则p:first-of-type的话,<p>第2行</p>会被选中;

而p:first-child的话,将没有任何元素被选中!

首先明确几个概念:

静态定位:position:static

动态定位:position:relative

祖元素:任意包含该元素的元素

父元素:直接包含该元素的祖元素

同辈元素:拥有共同的父元素的元素

法则一:同辈元素定位方式相同时,且无z-index设置时,html靠后者居上

法则二:同辈元素同为动态定位时,且有z-index设置时,z-index值大者居上

三:同辈元素定位方式不同,动态定位居上

四:非同辈元素,任意一者及其祖元素不具备动态布局时,html靠后者居上

五:非同辈元素,任意一者或其祖元素拥有动态定位,同时各自向上寻找动态定位的祖元素,并分别从中拿出具备最高级别的祖元素或其本身进行比较

1. 子元素的z-index无论多大,父元素者居上

2. 父元素居下,子元素也可以居上

父元素居下,子元素也可以居上的情况,则是利用非同辈元素在祖元素具备动态布局时,其比较已与position:staic无关,而其祖元素却可通过html的位置来进行比较