发表于: 2018-11-20 22:01:39

1 347


今天完成的事情:

1、用position的absolute完成了header头部的编码。

今天开始任务的代码编写,还是第一步完成header头部的内容,头部左边有一个箭头的标志,在查资料的时候有两种方法。

一种通过ps切图把箭头单独切出来。

第二种是通过用css样式来写。

我查资料重点选择的是用css来写。单独建一个div盒子用class来写,我这里用的是以边框border为主体设置的,通过设置border-buttom底部和left左边的px值,然后再设置div盒子的width和height的px值,来做出这个箭头的基本样子,效果如下:

这个是网页上调试显示的效果,通过设置盒子边框的大小和宽高来写出来,因为我只写了border的底部bottom和左边left,所以就能呈现出类似箭头的样子,但是怎么才能把这个border转换方向呢,这里就有一个新的知识点新的css属性。

transform属性定义为应用于元素之间的转换。这个属性允许元素旋转,移动,缩放和倾斜。这里运用的值是rotate(angle)旋转角度,应用这个属性你可以把如上图的箭头旋转成像右,代码的写法:transform:rotate(45deg),网页效果如下:

旋转了45度,样子写出来了,然后要做成和示例上一样,这里需要margin属性让箭头产生边距,完整代码如下:

.arrows{
position: absolute;
margin-top: 8px;
margin-left: 5px;
width: 10px;
height: 10px;
border-bottom: 2px solid ;
border-left: 2px solid ;
transform: rotate(45deg);
}

这里我运用的position中的绝对定位absolute使箭头向父级元素header为基准,只允许让div在这个父级元素附近绝对定位。所以我在header头部标签里设置了relative相对定位,能让子元素以父级元素为标准且不会影响到其他的元素,能在网页上达到我的效果。效果如:


       第二步就要让<span>中的文字达到垂直居中的效果,在拉动屏幕像素值的时候能居中不受影响。

这次我用了绝对定位,所以打算用绝对定位来实现这个效果,因为<span>是行内元素,我给<span>里设置里position:absolute属性,span元素就变成了块级元素,可以设置宽高,但是位置不会发生改变,所以要让文字居中可以设置left,right,但是一个元素只设置left和right,元素会一直在设置的父级元素内左右移动,不会脱离正常的文档流,只是左右移动。设置top和bottom,也只是在正常文档流中上下移动,还是以父级元素为基准。

       后面我在浏览器中调试给<span>设置left:0,right:0,margin:atuo,top:12px值得时候,发现是可以让文字实现垂直居中的效果。

代码如下:

span{
position: absolute;
left: 0;
right: 0;
top: 12px;
margin: auto;
width: 70px;
}

网页呈现的效果如下:


明天的计划:

争取明天完成任务五,并完成在浏览器中的调试。

问题:

虽然在调试中做出来效果,但是不能理解为什么设置left、right为0,margin为atuo这样的值就能让元素垂直居中,这些值是什么来的呢

收获:

1、今天学习运用了绝对定位的方法来解决文字居中。

2、了解到了用position的绝对定位absolute是通过把元素变成容器设置左右上下的值达到效果,而text-align:center的方法是让文字达到居中的效果。

3、学习了用position中的relative来决定父级元素,然后给子元素设置asbolute,就会以父级元素为基准,不会影响到其他属性,但是如果不给父级元素设置relative属性的话,absolute就会以html根目录为基准,例如上面的箭头这个div,如果不给header头部设置相对定位,后面你要添加其他属性,这个箭头就会和html根目录对齐。


返回列表 返回列表
评论

    分享到