发表于: 2018-08-22 23:00:37

1 692


今天完成的任务

a.任务14 2个页面的重新手写

b.拓展知识


明天的计划

a.任务14 第三个页面的编写

b.深度思考

遇到的问题

说一说重写卡到的地方:

第一个卡到的是这里,主要原因是因为手写栅格式的问题,col-md-3, col-sm-6等,因为你总不能每一个媒体查询就加上一些属性,就很不优雅!,悄咪咪的从师兄日报里进行学习(偷师?)然后发现了这个东西

[class^='col-'] {
float: left;
position: relative;
padding-left: .15rem;
padding-right: .15rem;
}

简单来说就是这东西有3个属性

[class^="col-"]

选择所有类名中含有"col-"的元素

与此类似的还有:

[class^="col-"]

选择所有类名中以"col-"开头的元素

[class$="-col"]

选择所有类名中以"-col"结尾的元素

然后提到我准备的公用组件库里(本来轮播也放进去的,但是已经写好了,而且后面不用就没有放,明白是个什么意思就好)

然后一些细节的问题---这4个图标高度是不同的,所以需要自己调节,把设置在同一水平上,就舒服了(第二个的文本因为字

数少,跟着其他用左对齐也很吃藕,所以我推荐额外给个居中就好了)


第二个在这里

鬼知道我前面怎么想的,开始做的时候想做边框效果又不想影响背景色,就套成了5个div然后排列在一起,然后发现有额外间距(间距之间露出了背景色很丑)如果是无缝的width:20%又会被挤到下一行(因为有边框),为了解决这个问题,甚至用了flex;后来恍然大悟,再外面套了给width:100%的长方形Div,然后给背景色,就完美解决了(所以说,有的嵌套不能省~捂脸)


第三个

经过前面坑的温习,这里思路就清晰很多,<a>标签外面有个<li>然后 li又分成2个<ul>(这样好布局点),前置准备做好了,下面就是直接用flex;来搞定,

display: flex;
flex-wrap: wrap;

换行的重点主要是:flex-wrap: wrap属性,不然你换的时候布局会错乱的。


第二个页面没有什么卡住的,不过有一些需要注意的地方

第一个就是这个hover的属性, 我是先设置一个父元素的hover,点击之后字体换色,然后在 &:hove .button(子元素类名) 来再次设置父元素hover的

时候子元素跟着有一个Hover效果,即背景色变色。

说的不是太清楚,直接上代码

html:

<div class="word-left-2">
<span class="left-button"></span>
<span class="left-word">土豆网&emsp;&emsp;</span>

sacc:

.word-left-2 {
padding: .18rem 0;
&:hover .left-word {
color: nth($c2, 4);
}
&:hover .left-button {
background-color: nth($c2, 4);
}
>.left-button {
display: inline-block;
margin-right: .1rem;
width: 0.1rem;
height: 0.1rem;
border: solid 0.02rem nth($c2, 3);
border-radius: 50%;
}
>.left-word {
font-size: nth($fs, 2);
color: nth($c2, 2);
}

这样就很清楚了。


然后还有注意个

这个,我是直接父元素嵌套一个子元素做Logo,然后直接写文本,不然的话分成2个盒子,他们就算是浮动环绕也不会有下面这种效果


也是老规矩,把代码贴出来,好理解一些:

<div class="mid-word-right">
<div class="word-right-1"></div>
土豆网公司成立于1998年11月,是目前中国最大的互联网综合服务提供商之一,也是中国服务用户最多的互联网企业之一。成立10多年以来,腾讯一直秉承一切以用户价值为依归的经营理念,始终处于稳健、高速发展的状态。2004年6月16日,腾讯公司在香港联交所主板
公开上市(股票代号700)。
</div>


这就是全部的2个页面的东西了。


收获

拓展知识:

设计原则


我们说模块是一个功能相对独立且完整的结构体,其实这应该是 组件 的概念,我们这里只从css的范围内来探讨模块化,那么模块的定义就可以缩窄到:一个(组)样式相对独立且完整的类。

原则上来讲,一个css模块应该遵循以下几点要求:

1.只对外暴露一个类名;

2.不影响周围布局:一般情况下,尽量不要使用一个脱离文档流的布局(既使用了float:left/right,position:absolute/fixed的布局),尽量不要使用外边距(margin)。这是为了使得模块更加稳定、具备更高的可塑性;

3.模块尽量设计为方便复用的量级,避免大而全,求精巧;


[class*="col-"]的3三种属性

[class*="col-"]

选择所有类名中含有"col-"的元素

与此类似的还有:

[class^="col-"]

选择所有类名中以"col-"开头的元素

[class$="-col"]

选择所有类名中以"-col"结尾的元素


ext-shadow是给文本添加阴影效果,box-shadow是给元素块添加周边阴影效果。随着html5和CSS3的普及,这一特殊效果使用越来越普遍。


基本语法

{box-shadow:[inset] x-offset y-offset blur-radius spread-radiuscolor}


对象选择器 {

box-shadow:[投影方式] X轴偏移量 Y轴偏移量阴影模糊半径 阴影扩展半径 阴影颜色}


box-shadow属性的参数设置取值:

阴影类型:此参数可选。如不设值,默认投影方式是外阴影;如取其唯一值“inset”,其投影为内阴影;


X-offset:阴影水平偏移量,其值可以是正负值。如果值为正值,则阴影在对象的右边,其值为负值时,阴影在对象的左边;


Y-offset:阴影垂直偏移量,其值也可以是正负值。如果为正值,阴影在对象的底部,其值为负值时,阴影在对象的顶部;


阴影模糊半径:此参数可选,,但其值只能是为正值,如果其值为0时,表示阴影不具有模糊效果,其值越大阴影的边缘就越模糊;


阴影扩展半径:此参数可选,其值可以是正负值,如果值为正,则整个阴影都延展扩大,反之值为负值时,则缩小;


阴影颜色:此参数可选。如不设定颜色,浏览器会取默认色,但各浏览器默认取色不一致,特别是在webkit内核下的safari和chrome浏览器下表现为透明色,在Firefox/Opera下表现为黑色(已验证),建议不要省略此参数。


PS:js看的有点朦胧,不是很理解,就把资料总结在我的记事本里,然后精简了一下放到了这里。先记着有给印象,到学Js的时候希望不要卡太久

JS是解释性程序设计语言,Web浏览器是解释器,负责有关代码解释执行

JS基础

statement之间“;”间隔,养成良好习惯

"//" 注释提高代码可读性

var variable = data 变量严格var声明

data类型,字符串,数值,布尔值,转义字符

数组variable = Array(data,data)或 variable = [data,data,...]

对象variable = Object(propertyName:value,propertyName:value) 或 variable = {propertyName:value,propertyName:value}

操作符 +,-,*,/,++,+=,%

JS语法

条件语句

if (condition){statement;} else if (condition) {statement} else{statement}

条件condition:比较:>,<,>=,<=,!==,===,逻辑操作符:&&与,||或

循环语句

while循环:initial condition;while(condition){statement; increment}

do while循环: initial condition;do {statement increment} while(condition)

for循环 for (initial condition; test condition; increment/alter condition

函数

function nameName(parameter){condition}

全局变量:函数外定义变量,局部变量,函数内定义变量

对象

对象Object,对象的属性:object.property 对象的方法object.method()

var 实例 = new 对象

DOM

D:document,从网页文件转化而来的文档对象

O:object,对象

M:Model,HTML树状模型

节点node,DOM中HTML树状模型的节点

  • 元素节点:element node,HTML中的标签元素
  • 文本节点:text node,HTML元素的文本内容
  • 属性节点:attribute node,HTML元素的属性与属性值

元素的属性和内容是元素节点的子节点;元素的文本节点是该元素的第一个子节点

CSS:HTML元素的的层叠样式表,树状结构继承特性

标识元素属性

  • Class,类标识符,标识某一类多个元素
  • ID,独立标识符,标识某一个特定元素

获取元素

DOM方法

  • Tagname: document.getElementsByTagName("tagname")得到一个数组包含对象 即使只有一个对象,也会返回数组
  • class: document.getElementsByClass("class");得到一个数组包含对象 即使只有一个对象,也会返回数组
  • ID: document.getElementById("Id");得到一个对象

元素节点的属性和方法

elementObject.getAttribute("attributeName") elementObject.setAttribute("attributeName",value) elementObject.childNodes:获取当前节点的所有子节点,返回数组 elementObject.firstChild/lastChild:获取当前节点的第一个或最后一个节点 elementObject.nodeType:获取当前节点的类型 元素节点1属性节点2文本节点3 elementObject.nodeValue:获取当前节点的内容

Event

事件处理函数,特定事件发生时调用JS代码;例如onmouseover/click...

语法Event = "js statements;js statements"

onclick="return false" 不触发a标签跳转事件

Event = functionName(this-当前标签元素)


返回列表 返回列表
评论

    分享到