发表于: 2018-11-15 19:31:21

1 849


今天完成的事情:今天完成了任务八和九,主要针对各尺寸进行了微调,具体情况我写在问题里。
明天计划的事情:复习以下表单标签,编写任务十。 
遇到的问题:

 <div class="container-fluid web-head">
<p class="web-title">前端开发方向</p>
<div class="row web-main">
<div class="col-xl-4 col-lg-6"><div class="web-content">
<div class="content-head">
<img src="ico-head.png" height="150px" alt="">
<div>
<p class="main-head">Web前端工程师</p>
<p>Web前端工程师,主要职责是利用(X)HTML/CSS/JavaScript/flash等各种Wed技术进行产品的开发。</p>
</div>
</div>
<div class="door">
<div class="d-flex align-items-center">
门槛
<img src="star.png" class="star" alt="">
</div>
<div class="d-flex align-items-center second-star">
难易程度
<img src="star.png" class="star" alt="">
<img src="star.png" class="star" alt="">
</div>
</div>
<div class="time">
<div class="">
<p><span class="first-word">成长周期</span><span class="second-word">1-3</span>年</p>
</div>
<div class="second-time">
<p><span class="first-word">稀缺程度</span><span class="second-word">345</span>家公司需要</p>
</div>
</div>
<div class="wages">
<div class="wages-left">薪资待遇</div>
<div class="wages-right">
<div><span>0-1年</span><span>5k-10k/月</span></div>
<div><span>1-3年</span><span>10k-20k/月</span></div>
<div><span>3-5年</span><span>15k-30k/月</span></div>
</div>
</div>
<div class="student">
有<span>286</span>人正在学习
</div>
<div class="note">
提示:在你学习之前,你应该掌握XXXXX、XXXXX、XX等语言基础
</div>
<div class="window d-flex flex-column justify-content-center align-items-center">
<p>iOS工程师</p>
<p>  iOS是由苹果公司开发的移动操作系统。苹果公司最早于2007年1月9日的Macworld大会上公布这个系统,最初是设计给iPhone使用的,后来陆续套用到iPod touch、iPad以及Apple TV等产品上。iOS与苹果的Mac OS X操作系统一样,属于类Unix的商业操作系统。原本这个系统名为iPhone OS,因为iPad,iPhone,iPod touch都使用iPhone OS,所以2010WWDC大会上宣布改名为iOS(iOS为美国Cisco公司网络设备操作系统注册商标,苹果改名已获得Cisco公司授权)。</p>
</div>
</div></div



如上图 我先说一下布局,这三个介绍栏是.col的div,外层是父级.row的div,介绍栏之间有间距,起初我是给col加mergin 但是那样会把同列col挤到下一行,给col加padding 就会变白色而不是灰色,所以我在col和介绍栏之间加了一个a div,并给它设置了margin:15px,这样间距是显示出来了,但是最上面有一条横线,它是与最外层.container-fluid div的content宽度相同的,因为设置了adiv的margin 所以介绍栏两边边框 比上边横线短:

而col默认padding 15px;原本设置的白色也交给了adiv,自己则变成了默认的灰色,所以现在介绍栏以外是两层共30px;

这里就要提到row默认的margin-left/right:-15px;他是为了最两边的col能够呈现紧贴fluid的content边界,负margin是会相对加宽row的宽度,但是父级不会变化,从而使两边的col padding进入加宽区域,呈现了紧贴fluid边界的假象:

这时候总边界变成了30px,所以我把row加到了margin:-30px;这时候问题就出现了:

我在可见屏幕缩小到370px的时候,fluid padding:0;然后就出现了这个问题,根本原因就是之前说的假象就是col 与fluid的padding重叠,现在fluid padding归零以后,左面负margin向左移动,隐藏在了边界外,而右面则会显示出来。

其实解决方法很简单,只要给fluid 设置 over-flow:hidden。主要还是要充分理解负margin。

收获:加深理解负margin

进度:task8/9

任务总结:

任务名称:CSS=TASK8/9

成果链接:https://gu1354181433.github.io/learn/css8/task8-1.html

任务耗时:2018.11.5~2018.11.10; 5天 延期一天

技能脑图:

个人脑图:

官方脑图:

任务总结:

1.任务进度缓慢,由于再补一些与bootstrap4无关的的理论知识,耽误了时间,反而bootstrap4用起来了更慢了。

2.脑图对比.

3.任务八难度明显要比之前高,不过很好的锻炼了用bootstrap4布局,还有用到的重要知识点:

媒体查询,它是响应式的基础原理,通过设定页面显示的不同尺寸,来设定页面的一些属性,从而让页面在不同尺寸都有较好的显示效果。

阴影标签:box-shadow 通过设定元素阴影的偏移方向,阴影尺寸,阴影颜色,模糊的范围,阴影的朝向,来实现阴影的各种效果。

负margin:在bootstrap4中 默认row的margin-left/right :-15px,他是为了相对加宽row来实现,或者说缩小了他的外边界,从而使他的父级.container向内收缩 让自带的内边距与.col内边距重合 形成了.col紧贴.container的假象。但是如果.container没有内边距,由于页面的文档流是从左向右从上至下,所以超出左上的部分不会显示,但是超出右面就会显示,这时候就要用到over-flow:hidden,来隐藏多余的那部分。



返回列表 返回列表
评论

    分享到