发表于: 2019-01-07 22:53:14

1 678


今天完成的事情:(一定要写非常细致的内容,比如说学会了盒子模型,了解了Margin)

1、今天完成了12第一个页面的修改和第二个页面的编码完成。

     之前的页面是用绝对定位来写的,再写一遍的感觉没有刚写的时候那么难了,绝对定位在有些时候是比较好用的,但是也有些问题是使用绝对定位后文档会脱离文档流,写到后面的时候就会有些影响,所以师兄建议说常用的样式就不要用绝对定位,所以就重新又用flex写了一遍。

     (1)写任务五的头部那里我用flex来写的时候我就遇到了问题,定义:flex后,div就会在并列在一起,但是问题是头部只有两个元素,我怎么样才能让两个元素一个分别居左,一个居中呢,因为flex是给父级设置作用于子级的,所以这里我的思维就有点固化了,我首先想到的是justify-content这个属性里的值,分别用div单独嵌套他们,再用一个大的div再嵌套两个嵌套div的元素,后面想想发现盒子会套的很多,可能是思考方式不对。

            然后决定去找找资料,后面想到前面做任务8.9的时候一排三个div就可以用justify-content:space-between这个属性,让元素之间的距离相等,所以头部就可以分为三个div,分别让它居左居中居右,可以按照这个思维来后面我就尝试用了一个空的div,然后再用这个属性发现是可以的,因为是三个div,不管div里有没有内容,div就相当于一个盒子,flex的属性就会让这个盒子变成你想要的效果,所以flex可以写很多种形式,就要发挥自己的想象力熟练运用它。下面我这里有两个例子,是我在写12两个页面时遇到的问题。废话不多说,直接上代码:

<header>
<a href="./task12-2.html"></a>
<span>个人主页</span>
<div></div>
</header>

这个就是上面说的头部,html的分布如下,不需要多次嵌套盒子,只需要多加一个空的div就能解决,感觉是不是很神奇,然后给header设置flex,这里header也可以看做一个div。

header {
display: flex;
justify-content: space-between;
align-items: center;
position: fixed;
z-index: 1;
width: 100%;
height: 0.6rem;
top: 0;
background: #5fc0cd;
padding: 0.1rem;
color: #fff;
}

space-between让三个元素之间的距离相等,align-items:center让元素垂直居中,所以header头部就这样写出来了,很简单,只需要三个代码就能解决。效果如下:

如果还想移动到你想要的位置,就可以用margin或者padding值来达到你想要的位置。


(2)第二个遇到的问题其实和头部是类似的,只是头部是增加一个div,下面遇到的这个问题是减少一个div。如下图:

红框中这一列用flex怎么来写呢,如果是同一个属性space-between来写又可以怎么布局呢,如果还是像上面的方式是不行的,这样25元/小时就会在中间,但是ui图上25元/小时是靠右的,想了半天尝试了后发现还是不行,然后就试着把25元/小时的div和这个箭头的div一起放在一个div里,再用space-between这个属性发现是可以的,可以让两个元素分别居左居右,实现元素之间距离相等。然后方法还是一样用margin和padding来解决。

html:

<div class="data-two">
<p class="data">2015-7-5至2015-7-12</p>
<div>
<p class="price">25元/小时</b>
<span class="arrow"></span>
</div>
</div>

我这里用div嵌套了p元素和span元素。

     得出的结论是同样的属性,在遇到不同的样式可以有不同的布局方式,想想的同时不妨动手试试,多尝试会找到方法的。感觉flex使用的还不是很熟,还有很多可能都没有遇到。


2、学习了less中的mixin(混入)的方法。

       在less文档中有的样式代码是重复的,所以你就要重复再写上,这样就会增加代码,所以就可以设一个公共样式的mixin,然后用类选择器或者id选择器来混入。其实这种方法可以理解为嵌入,把常用的样式设置公共的后,然后再嵌套。

       用类选择器来写,就像我们前面写css样式一样,先给它设个类名定义这个是什么内容,然后在通过类名的嵌套插入其中,通过less编译后的代码就有你设的那些公共样式。写法如下:

.elastic-center {
display: flex;
justify-content: center;
align-items: center;

}

.recruit-box {
.elastic-center;
height: 0.8rem;


这里是用类选择器来写的公共样式,然后再嵌套进去,只有一个代码就行了。

       用id选择器的方法是一样的,只是要用到#来定义选择id。

 

3、完成了任务12的提交。


明天计划的事情:(一定要写非常细致的内容) 

1、开始任务13的三个页面制作。


遇到的问题:(遇到什么困难,怎么解决的)

 最近遇到的问题基本上都是宽和高造成的,不是定高的问题就是定宽的问题,导致后面写的时候就出现问题,然后又再去找问题。


收获:(通过今天的学习,学到了什么知识)

最近两个任务基本上是用的background的插入图片的方式来写的,学习了background中的position、还有size:contain和cover两个值。

contain和cover的区别:

相同点:都是同比例的缩放照片。

不同点:cover是铺满整个显示区域,如果显示的比例和显示区域的比例相差太大某些部分不会显示出来。

              contain是相反的,它是按照宽度来适应显示区域,如果按照等比例高度就会很矮。


任务总结:

任务名称:CSS-task12

成果链接:https://guilinxi.github.io/GUI/task12/task12.html

任务耗时:本次任务从19.1.4-19.1.7 共耗时3天,请假1天。

官方脑图:

个人脑图:


任务总结:

任务12和11差别不大,都是使用less或者sass重新编写以前的页面,重新写一遍写法不一样,因为这里要想着简化代码,然后是css代码的规范。


       1、css书写顺序:

        显示属性:display/list-style/position/float/clear

        自身属性(盒模型):width/height/margin/padding/border

行高:line-height

文本属性:color/font/text-decoration/text-align/text-indent/vertical-align/white-space/content…

其他:cursor/z-index/zoom/overflow

CSS3属性:transform/transition/animation/box-shadow/border-radius

如果使用CSS3的属性,如果有必要加入浏览器前缀,则按照-webkit-/-moz-/-ms-/-o-/std的顺序进行添加,标准属性写在最后

      2、class的命名:

     言简意赅的语义化命名,简单的英文单词进行组合,

     不允许通过1、2、3等序号进行命名;避免class与id重名,也尽量不要用汉译化。

     css的规范这个还是要养成习惯。

     这个任务的难点就是在手写bootstrap下拉菜单,因为不用组件就要通过其他的方法来写,这里我用的是hover效果来实现触发下拉框,所以这里选的是用ul和li标签来写。主要还是使用绝对定位的black和         none来实现。第一步还是写出三个下拉框的样式,用相对定位和宽度百分比分成三个单独框,然后再用li元素写上下拉后的文字内容,给它设置display:block,设置行高和百分比,再让文字居中就让整         个 样式写的差不多了,用display:none隐藏li元素的下拉框的选项,在通过给hover效果触发就行了。这里遇到一个问题,因为我给li设了float:left和相对定位,所以导致选项内容并列,父级ul元素设置         了width100%,但是并没有让li继承,所以给li设置好width:100%就能撑起内容。整个写下来就几行代码能解决,分成两个部分来写就行。

         做完这个任务对于less工具也有了新的了解。




返回列表 返回列表
评论

    分享到