发表于: 2019-03-05 22:20:45

1 827


今天完成的事情:

任务七的第一个图

明天计划的事情:

明天计划把第二个图做完,并了解一下超链接
遇到的问题:hover的运用

定义和用法

:hover 伪类在鼠标移到元素上时向此元素添加特殊的样式。

说明

这个伪类应用处于“悬停状态”的元素。悬停定义为用户指示了一个元素但没有将其激活。对此最常见的例子是将鼠标指针移到 HTML 文档中一个超链接的边界范围内。理论上,其他元素也可以处于悬停状态,不过 CSS 没有定义究竟是哪些元素。

激活的、已访问的、未访问的或者当有鼠标悬停在其上的链接,它们会在支持 CSS 的浏览器中以不同的方式显示出来:

a:link {color: #FF0000}     /* 未访问的链接 */
a:visited {color: #00FF00}  /* 已访问的链接 */
a:hover {color: #FF00FF}    /* 当有鼠标悬停在链接上 */
a:active {color: #0000FF}   /* 被选择的链接 */

注释:为了产生预期的效果,在 CSS 定义中,a:hover 必须位于 a:link 和 a:visited 之后!!

注释:为了产生预期的效果,在 CSS 定义中,a:active 必须位于 a:hover 之后!!

注释:Pseudo-class(伪类)的名称对大小写不敏感。

收获:了解了hover选择器

任务三总结

任务耗时1天

任务总结:

任务三主要就是运用垂直居中text-align:center和自适应还有float属性。这三个个知识运用得当。其余的没有困难。只需要简单调整其他图片和文字的位置即可

深度思考

1.如何利用PS切图以及从UI图中获取所需信息?

传统切图,即是手动切图,用切片工具框选所需要的图标,保存成web格式的图片。但是这种方式的弊端就是切图比较慢,而且如果图标不是矩形,还会导致切出的图片中带有背景,这并不是我们想要的。另外,如果图标比较多,我们还可以利用参考线来使切图更精准,点击基于参考线切图,还能加快切图的速度。不过这也导致切出很多我们并不需要的图标。所以这种方式并不好。


简单切图。Photoshop CC版本比CS6版本多了一些功能,比如选中所需图标的图层后,右键可以直接快速导出png格式。如果想把多个图层导出到一张图片上,可以选中多个图层,右键转换为智能对象,再次右键,编辑内容,即可在新打开的窗口中保存为png格式。CS6版本上没有右键快捷导出功能,但是可以用智能对象导出,也很方便。这种方法的优点是不带背景,简单。


脚本切图。选择文件>导出>将图层导出到文件。接下来就等着PS自动运行完成,图片也就切完了。这种方式虽然完全不需要手动去切,但是也会产生很多你不需要的图片。

2.px、em、rem、%、vw、wh、vm等单位有什么区别?

px:是pixel的缩写,意为像素。px就是一张图片最小的一个点,一张位图就是千千万万的这样的点构成的,比如常常听到的电脑像素是1024x768的,表示的是水平方向是1024个像素点,垂直方向是768个像素点。


em

参考物是父元素的font-size,具有继承的特点。如果自身定义了font-size按自身来计算(浏览器默认字体是16px),整个页面内1em不是一个固定的值。

rem

css3新单位,相对于根元素html(网页)的font-size,不会像em那样,依赖于父元素的字体大小,而造成混乱。

%

一般宽泛的讲是相对于父元素,但是并不是十分准确。

vw

css3新单位,viewpoint width的缩写,视窗宽度,1vw等于视窗宽度的1%。

举个例子:浏览器宽度1200px, 1 vw = 1200px/100 = 12 px。

vh

css3新单位,viewpoint height的缩写,视窗高度,1vh等于视窗高度的1%。

举个例子:浏览器高度900px, 1 vh = 900px/100 = 9 px。

vm

css3新单位,相对于视口的宽度或高度中较小的那个。其中最小的那个被均分为100单位的vm

举个例子:浏览器高度900px,宽度1200px,取最小的浏览器高度,1 vm = 900px/100 = 9 px。

由于现在vm的兼容性较差,这里就不做展示了。

3.如何进行自适应网页设计?

在head标签中加入<meta name="viewport" content="width=device-width,initial-scale=1.0">

4.css有哪些选择器,优先级如何计算?

1、类别选择器

2、标签选择器

3、ID选择器

4、通用选择器

5、后代选择器

6、子选择器

7、伪类选择器

8、群组选择器

对多个选择器使用的优先级进行计算:

!important>行内样式>ID选择器>类选择器>标签>通配符>继承>浏览器默认属性

当不同类别的多个选择器混合使用时进行计算:

我们可以把选择器中规则对应多加法,比较权值,如果权值相同那就后面的覆盖前面的。如图,div.test1.test3的权值是1+10+10=21,而.test1.test2.test3的权值是10+10+10=30,所以div会应用.test1.test2.test3变成绿色。

5.什么时候用margin好,什么时候用padding好? 

使用margin值的情况:

需要在border外侧添加空白时。

空白处不需要背景(色)时。

上下相连的两个盒子之间的空白,需要相互抵消时。如15px + 20px的margin,将得到20px的空白。(margin折叠)。

需要使用负值对页面布局时(margin值可以取负,padding不行)。

使用padding时的情况:

需要在border内测添加空白时。

空白处需要背景(色)时。

上下相连的两个盒子之间的空白,希望等于两者之和时

6.手机分辨率和网页中的px是一回事吗?

不是

任务四总结

任务耗时2天

任务总结:任务四主就是把任务三的垂直居中运用上去。然后把其他的位置运用内外边距或者绝对定位调整好。主要是了解输入法的插入和输入法的限制字数和限制英文。还要限制密码输入隐藏。如果这几个都了解了,任务四其实也就算做完了

深度思考

1.position定位有哪几种?各有什么特点

absolute

生成绝对定位的元素,相对于 static 定位以外的第一个父元素进行定位。

元素的位置通过 "left", "top", "right" 以及 "bottom" 属性进行规定。

fixed

生成固定定位的元素,相对于浏览器窗口进行定位。

元素的位置通过 "left", "top", "right" 以及 "bottom" 属性进行规定。

relative

生成相对定位的元素,相对于其正常位置进行定位。

因此,"left:20" 会向元素的 LEFT 位置添加 20 像素。

static默认值。没有定位,元素出现在正常的流中(忽略 top, bottom, left, right 或者 z-index 声明)。
sticky

粘性定位,该定位基于用户滚动的位置。

它的行为就像 position:relative; 而当页面滚动超出目标区域时,它的表现就像 position:fixed;,它会固定在目标位置。

注意: Internet Explorer, Edge 15 及更早 IE 版本不支持 sticky 定位。 Safari 需要使用 -webkit- prefix (查看以下实例)。

inherit规定应该从父元素继承 position 属性的值。
initial设置该属性为默认值,详情查看 CSS initial 关键字

2.哪些css属性可以设置百分比,其计算原则是什么?

定位:top,right,bottom,left; 

盒模型:height,width,margin,padding, 

背景:background-position,background-size(css3), 

文本:text-indent,

字体:font-size;


top,right,bottom,left:全兼容,

height:基于包含它的块级对象的百分比高度。

width:基于包含它的块级对象的百分比宽度。

margin:百分数是相对于父元素的 width 计算的。

padding:百分数是相对于父元素的 width 计算的。

3.常见的表单元素有哪些?各有什么属性? 

常用的表单元素,包括:

1. form: 定义供用户输入的表单。

2. fieldset: 定义域。即输入区加有文字的边框。

3. legend:定义域的标题,即边框上的文字。

4. label:定义一个控制的标签。如输入框前的文字,用以关联用户的选择。

5. input: 定义输入域,常用。可设置type属性,从而具有不同功能。

6. textarea: 定义文本域(一个多行的输入控件),默认可通过鼠标拖动调整大小。

7. button: 定义一个按钮。

8. select: 定义一个选择列表,即下拉列表。

9. option: 定义下拉列表中的选项。

接下来是对这些表单元素的具体分析。

<form name="" action="" method="get">……</form>

name : 表单名称;action : 用来指定表单处理程序的位置(url);method : 定义表单结果从浏览器传送到服务器的方式,默认为"get"(也可以是post)

<input type="" name="" value="" size="">

name:控件名称;value:input控件默认文本值;size:input控件在页面中的显示宽度(必须是正整数)

input常用type属性如下:

1. text:单行文本输入框,可以通过正整数的size控制框长度。

2. password:密码输入框。

3. radio:单选按钮,同一组的单选按钮必须要有相同的name。

4. checkbox:复选框,同一组的单选按钮必须要有相同的name。

5. button:普通按钮。

6. submit:提交按钮,每出现一次,一个 Submit 对象就会被创建。

7. reset:重置按钮,会重置当前表单中全部的内容。

8. image:图像形式的提交按钮,写法是“”。

9. hidden:隐藏域,隐藏字段对于用户是不可见的。

10. file:文件域,用于文件上传。

<select size="" multiple="multiple">

<option hidden>选项1</option>

……

</select>

size:下拉菜单的可见选项数;multiple:多选。

在最新的html5中,有一些表单的新增属性,多用于js,如

datalist : 定义填写一个input时,提示几个option用于提示。可通过input的list特性与此元素作关联。

output : 表示计算的结果。可通过for特性与其它能够影响运算的元素(如input)作关联。

还有一些新增的type属性:

1. search:input会呈现为搜索框(与text类型的唯一区别在于当鼠标覆盖时尾部出现叉号可快速清除输入的内容)。

2. tel:编辑电话号码的控件,提交时换行符会自动从输入框中去掉。

3. url:编辑url的控件,提交时换行符与首位的空格都将自动去除。

4. email:可输入一个邮件地址。

5. color : 选择颜色的控件。

6. date : 选择年月日的控件。

此外,还有time、datetime、datetime-local、month、week、number、range类型。

html5中input新增的一些较常用的特性:

1. list:关联datalist所用的该datalist的id(即datalistform外建立,通过list关联即可)。

2. pattern:一个正则表达式,用于检查控件的值,可作用于text、search、tel、url、email类型的input。

3. form:一个字符串(为关联的form表单的id),用于表明该input属于哪个form表单(作用类似list)。

4. formmethod:表明使用GET还是POST,能覆盖form表单的method。仅在type为image或submit,且上面的form特性被设置的情况下才能使用。相似的有formtarget特性。

5. readonly:一个boolean值,表明该input值是否能被用户修改,可用于信息展示等页面。作用于type为hidden、range、color、checkbox、radio、file、button的input将被忽略。

6. maxlength:type为text、emal、search、password、tel或url(都为文本)时允许输入的最大字符个数。

7. autocomplete:浏览器是否根据之前提交的输入情况对此input自动填值(即以option形式匹配之前的输入值),取值on或off,默认on。如在登陆页面不想显示上一个登陆的用户名等时,可设置为off。


4.如何理解HTML结构的语义化?

1.首先,语义化,顾名思义,就是你写的HTML结构,是用相对应的有一定语义的英文字母(标签)表示的,标记的,因为HTML本身就是标记语言。不仅对自己来说,容易阅读,书写。别人看你的代码和结构也容易理解,甚至对一些不是做网页开发的人来说,也容易阅读。那么,我们以后再开发的过程中,一定要注意了,尽量使用官方的有语义的标签,不要再使用一堆无意义的标签去堆你的结构。

怎么知道,自己的页面结构是否语义化,那就要看你的HTML结构,在去掉CSS样式表之后,是否,依然能很好的呈现内容的结构,代码结构。也就是说,脱掉css的外衣,依然头是头,脚是脚。赤裸裸的完整的一篇文档。这也就是,语义化之后文档的效果。

2.其实语义化,也无非就是自己在使用标签的时候多使用有英文语义的标签,比如h标签,在HTML中就是就是用来定义标题,还有p标签,英文是paragraph段落,table表格标签,等等。

5.使用fixed的时候,在手机上查看是否会有问题,怎么解决? 

我们可以看到,fixed的footer和header跑到屏幕中间去

既然在 iOS 下由于软键盘唤出后,页面 fixed 元素会失效,导致跟随页面一起滚动,

那么假如——页面不会过长出现滚动,那么即便 fixed 元素失效,也无法跟随页面滚动,也就不会出现上面的问题了。

那么按照这个思路,如果使 fixed 元素的父级不出现滚动,而将原 body 滚动的区域域移到 main 内部,而 header 和 footer 的样式不变

6.常见的移动端登录页header有哪些实现方式?

1固定布局

固定布局是第一次做移动端时最好的选择方式,思路沿用PC端,上手比较快。在标签里把 viewport 加好,然后设想整个网页的宽度为 320px 即可。 其他地方根据 PC 端来布局。 缺点:大屏手机显示网页比较宽,固定布局宽度参照永远是 320px,导致左右两 边会有空白。

2流体布局

流布局与固定宽度布局基本不同点就在于对网站尺寸的测量单位不同。固定宽度布局使用的是像素,但是流布局使用的是百分比,看到百分比,你应该想到,这将提供了很强的可塑性和流动性。换句话说,通过设置了百分比,你将不需要考虑设备尺寸或者屏幕宽度大小了,结论就是,你可以为每种情形找到一种可行的方案,因为你的设计尺寸将适应所有的设备尺寸。

3FLEX布局

flex也称为弹性布局,他会根据页面的剩余宽度自动分配空间。



返回列表 返回列表
评论

    分享到