2019-12-18 第八天

按钮练习:

做完功能以后,发现在第一次切换图片时,会发现图片有一个非常快的闪烁,这个闪烁会造成一次不佳的用户体验

产生问题的原因:

背景图片是以外部资源的形式加载进网页的,浏览器每加载一个外部资源就需要单独的发送一次请求

但是我们的外部资源并不是同时加载,浏览器会在资源被使用时才去加载资源

我们这个练习,一上来浏览器只会加载link.png

由于hover和active的状态没有马上触发,所以hover.png和active.png并不是立即加载的

当hover被触发时,浏览器才去加载hover.png

当active被触发时,浏览器才去加载active.png

由于加载图片需要一定的时间,所以在加载和显示过程会有一段时间,背景图片无法显示,导致出现闪烁的情况

为了解决该问题,可以将三个图片整合为一张图片,这样可以同时将三张图片一起加载,就不会出现闪烁的问题了

然后再通过background-position来切换要显示的图片的位置,这种技术叫做图片整合技术(CSS-Sprite)

优点:

1 将多个图片整合为一张图片里,浏览器只需要发送一次请求,可以同时加载多个图片,提高访问效率,提高了用户体验。

2 将多个图片整合为一张图片,减小了图片的总大小,提高请求的速度,增加了用户体验。

雪碧图:

/*设置偏移量*/

background-position: -58px -338px;

background

- 通过该属性可以同时设置所有背景相关的样式

- 没有顺序的要求,谁在前睡在后都行

- 也没有数量的要求,不写的样式就使用默认值

设置一个背景颜色

background-color: #bfa;

设置一个背景图片

background-image: url(img/3.png);

设置背景不重复

background-repeat: no-repeat;

设置背景图片的位置

background-position: center center;

设置背景图片不随滚动条滚动

background-attachment: fixed;

在HTML中,使用table标签来创建一个表格

在table标签中使用tr来表示表格中的一行,有几行就有几对tr

在tr中需要使用td来创建一个单元格,有几个单元格就有几个td

rowspan用来设置纵向的合并单元格

colspan横向的合并单元格

边框

            border:1px solid black;

            table和td边框之间默认有一个距离,通过border-spacing属性可以设置这个距离

            border-spacing: 10px;

border-collapse可以用来设置表格的边框合并

  如果设置了边框合并,则border-spacing自动失效

有一些情况下表格是非常的长的,这时就需要将表格分为三个部分,表头,表格的主体,表格底部

在HTML中为我们提供了三个标签:

thead 表头

tbody 表格主体

tfoot 表格底部

这三个标签的作用,就来区分表格的不同的部分,他们都是table的子标签,都需要直接写到table中,tr需要写在这些标签当中

thead中的内容,永远会显示在表格的头部

tfoot中的内容,永远都会显示表格的底部

tbody中的内容,永远都会显示表格的中间

如果表格中没有写tbody,浏览器会自动在表格中添加tbody

并且将所有的tr都放到tbody中,所以注意tr并不是table的子元素,而是tbody的子元素

通过table > tr 无法选中行 需要通过tbody > tr

以前表格更多的情况实际上是用来对页面进行布局的,但是这种方式早已被CSS所淘汰了

表格的列数由td最多的那行决定

表格是可以嵌套,可以在td中在放置一个表格

子元素和父元素相邻的垂直外边距会发生重叠,子元素的外边距会传递给父元素

使用空的table标签可以隔离父子元素的外边距,阻止外边距的重叠

经过修改后的clearfix是一个多功能的样式,既可以解决高度塌陷,又可以确保父元素和子元素的垂直外边距不会重叠

经过修改后的clearfix是一个多功能的样式,既可以解决高度塌陷,又可以确保父元素和子元素的垂直外边距不会重叠

使用form创建的仅仅是一个空白的表单,我们还需要向form中添加不同的表单项

在表单中可以使用fieldset来为表单项进行分组,可以将表单项中的同一组放到一个fieldset中

使用input来创建一个文本框,它的type属性是text

如果希望表单项中的数据会提交到服务器中,还必须给表单项指定一个name属性

name表示提交内容的名字

用户填写的信息会附在url地址的后边以查询字符串的形式发送给服务器

url地址?查询字符串

格式:

属性名=属性值&属性名=属性值&属性名=属性值&……

在文本框中也可以指定value属性值,该值将会作为文本框的默认值显示

在html中还为我们提供了一个专门用来选中表单中的提示文字的label标签

该标签可以指定一个for属性,该属性的值需要指定一个表单项的id值

value是默认值,

提示信息用:placeholder="用户名/邮箱/手机号"

autocomplete="off"不保存缓存记录

使用input创建一个密码框,它的type属性值是password

单选按钮

- 使用input来创建一个单选按钮,它的type属性使用radio

- 单选按钮通过name属性进行分组,name属性相同是一组按钮

- 像这种需要用户选择但是不需要用户直接填写内容的表单项,还必须指定一个value属性,这样被选中的表单项的value属性值将会最终提交给服务器

如果希望在单选按钮或者是多选框中指定默认选中的选项,则可以在希望选中的项中添加checked="checked"属性

使用input创建一个多选框,它的type属性使用checkbox

下拉列表

- 使用select来创建一个下拉列表

下拉列表的name属性需要指定给select,而value属性需要指定给option

可以通过在option中添加selected="selected"来将选项设置为默认选中

当为select添加一个multiple="multiple",则下拉列表变为一个多选的下拉列表

在select中可以使用optgroup对选项进行分组

同一个optgroup中的选项是一组

可以通过label属性来指定分组的名字

在下拉列表中使用option标签来创建一个一个列表项

使用textarea创建一个文本域

提交按钮可以将表单中的信息提交给服务器

使用input创建一个提交按钮,它的type属性值是submit

在提交按钮中可以通过value属性来指定按钮上的文字

<input type="reset">可以创建一个重置按钮,点击重置按钮以后表单中内容将会恢复为默认值

使用input type=button可以用来创建一个单纯的按钮,这个按钮没有任何功能,只能被点击

除了使用input,也可以使用button标签来创建按钮

这种方式和使用input类似,只不过由于它是成对出现的标签,使用起来更加的灵活

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容