发表于: 2018-11-21 21:25:16

2 803


今天完成的事情:

1、用absolute完成了上半部分背景图的实际操作。

html代码如下:

<div class="backdrop">
<img class="portrait" src="images/touxiang2.png">
<div class="box">
<span class="name">徐士林 55岁</span>  
<img class="icon" src="images/dibiao3.png">
<span class="address">京城·四方·报纸林</span>  
</div>
</div>

这里我用了两个div之间的嵌套,用class分开写样式,第一个盒子的类名backdrop是父级元素,我设置background背景图的size和url路径的生成,再对其设置相对定位relative,然后img和span等子元素以父元素为绝对定位。

然后第二个盒子类名box,用<span>包含文字,把img和span包裹在box里,这里box也是父级元素,同样给它设置相对定位,子元素绝对定位。

css代码如下:

.backdrop{
position: relative;
background-image: url(images/beijing1.png);
background-repeat: no-repeat;
background-size: 100%;
height: 120px;
}
.portrait{
position: absolute;
width: 84.5px;
height: 84.5px;
top: 20px;
left: 20px;
}
.box{
position: absolute;
width: 125px;
bottom: 30px;
left: 130px;
}
.name{
font-size: 16px;
}
.icon{
position: absolute;
margin-top: 7px;
width: 9px;
height: 11.5px;
}
.address{
padding-left: 20px;
font-size: 14px;

运用了绝对定位,就不需要通过margin来调节间距,可以直接用上下左右的值来达到img的位置效果。

2、了解了background-image、size和repeat三个常用属性。

background标签定义:背景缩写属性可以在一个声明中设置所有的背景属性。可以设置下面的属性:

(1)background-image  为元素设置背景图像。
值:
url:指向图像的路径。背景图的路径,语法:background-image:url();
none:默认值,不显示背景图像。

inherit:从父元素继承background-image属性的设置。

(2)background-repeat  设置如何平铺对象的 background-image的方向,垂直或水平方向。

值:

no repeat: background-image不会重复。

(3)background-size:属性指定背景图片大小。

3、了解了无序列表<ul>标签和<li>标签。

无序列表是一个项目的列表,此列项目使用粗体圆点(典型的小黑圆圈)进行标记。

无序列表使用 <ul> 标签。

ul标签定义:设置列表样式类型为没有删除列表项标记,设置填充和边距0px(浏览器兼容性)。

li标签定义:<li> 标签定义列表项目。

                    <li> 标签可用在有序列表(<ol>)、无序列表(<ul>)和菜单列表(<menu>)中。

明天的计划:

继续完成任务五,囧以为今天能完成的,高估我自己了,跟absolute今天杠上了。


遇到的问题:

1、对div的嵌套有点没弄清楚,对什么时候该设相对定位,什么时候该用绝对定位,有点晕。然后在后面通过调试总算是理解清楚了。

解决方案:
第一:确定好思路,背景图就需要设置一个div容器来装,给它这个父级设置相对定位relative,然后接下来需要用的img和个人信息就放在背景这个div容器里。
第二:这里就需要用div正确的嵌套,我在背景图的这个大容器div里嵌套了另一个容器div,在这个div里装个人信息和地址用<span>设置,在大容器里其他的就都是子元素,所以只需要父级元素设置了相对定位relative,子元素只需要设置绝对定位absolute就可以通过top、left来设置方向达到你要的效果。就像是套娃,一层套一层。
2、之前还在奇怪怎么字体不在同一行,我是把文字都设在一个div里,怎么会出现这个现象。
解决方案:经过调试发现是div宽度不够,所以文字被挤出同一行。把width的px值成125px是最合适的。
3、在div容器里img里的图标和<span>元素姓名年龄的那个文字在同一行,不知道怎么把它移下来。如图:
解决方案:在img里用position:absolute,让图标以父级单位对齐,使位置移动到下面,然后通过设置margin-top来让图标往下移达到合适的位置。但是就会和下面的文字发生重叠,这个时候需要让文字像右移动,我注意到一个细节,在浏览器调试里看到盒子结果conter内容是auto,然后我就通过让podding-left填充让<span>这个元素向右移动。


收获:

1、用div嵌套div完成了背景图和图片文字的设置。

2、对position中的absolute绝对定位有了进一步的了解,知道该怎么设置父级元素,来达到绝对定位的效果。





返回列表 返回列表
评论

    分享到