网页制作笔记
1. favicon.co
1)网站标题图标:网址/favicon.ico
(因为兼容性问题,应该与首页index.html一起放在根目录下)
2)ico的引入为<link rel=”shortcut icon” href=””/>
3)自制ico图标可以通过bitbug.net将图片转化成icon
2. SEO
seo即为搜索引擎所做的页面优化,即为爬虫更好搜索而优化
1) 三大标签title,description,keywords要写
<title></title>
<meta name=”description” content=”网站内容描述”/>
<meta name=”keywords” content=”网站关键词,用逗号分开”/>
2) 标题长度不宜超过28个中文(百度检索上线28个中文)
描述应在120个中文内, 关键词应在6~8个左右
3. 图标
1) 图标网站
icomoon.io
2) 通过在css样式后使用!important来赋予最高权重
4. CSS3
1) nth-child(n) 选择器(CSS3)
规定属于其父元素的第n个子元素的每个 p 的背景色
2)div:[attribute*=test] 选择器(CSS3)
选择class/titile等属性值包含 "test" 的所有 div 元素其中*是指全部标签检索”test”,实则只是等式。
重点: 正括号内可以写[正则表达式]
5. flex弹性布局(CSS3)
flex即Flexible Box,意为"弹性布局",用来为盒状模型提供最大的灵活性。
设为Flex布局以后,子元素的float、clear和vertical-align属性将失效。
启动flex布局:在父元素中设置display:flex,开启flex布局
开启后所有子容器自动成为flex的项目(并开始自动排列,默认靠左排列)
一、 容器属性
flex-direction
容器内元素的排列方向(默认横向排列)
- flex-direction:row; 沿水平主轴让元素从左向右排列
- flex-direction:column; 让元素沿垂直主轴从上到下垂直排列
- flex-direction:row-reverse;沿水平主轴让元素从右向左排列
justify-content
元素在主轴(页面)上的排列
- justify-content : center;元素在主轴上居中排列
- justify-content : flex-start;元素在主轴上由左或者上开始排列
- justify-content : flex-end;元素在主轴上由右或者下开始排列
- justify-content : space-between;元素在主轴上左右两端或者上下两端开始排列,
且间距相等,左右边界无间距 - justify-content : space-around;每个元素两侧的间隔相等。左右边界有间距
align-items
元素在主轴(页面)当前行的横轴(纵轴)方向上的对齐方式
- align-items : flex-start; 弹性盒子元素的侧轴(纵轴)起始位置的边界紧靠住该行的侧轴起始边界(靠上对齐)。
- align-items : flex-end; 弹性盒子元素的侧轴(纵轴)起始位置的边界紧靠住该行的侧轴结束边界。(靠下对齐)
- align-items : center; 弹性盒子元素在该行的侧轴(纵轴)上居中放置(垂直居中)
- align-items 元素在主轴(页面)当前行的横轴(纵轴)方向上的对齐方式
flex-wrap
flex-wrap: 容器内元素的换行(默认不换行)
flex-wrap: nowrap (默认)元素不换行
- 即如果子容器横向排列所需宽度大于父容器的宽度,子容器的宽度会被自动变更以适应父容器的宽度
- flex-wrap: wrap; 元素换行,与nowrap不同的是不会改变子容器的宽度,超过就换行
二、 项目属性
项目属性即对子容器内的元素操作
order:num
如.box:nth-child(1){ order:2;/将第一个子容器更改为第二个/}
在子容器内使用更改项目当前子容器的排列顺序
PS:此外可以通过在单个项目中使用align-self:flex-end,来实现单个子元素的单独居中对齐
flex-grow
用于决定项目在有剩余空间的情况下是否放大,默认不放大
(此处放大指自适应父元素的宽度而改变当前子元素的宽度)
默认0不放大,1放大
注意:
即使设置了定宽,放大依旧有效。
且假设默认第一个第二个项目是0模式,第三个为1,依然会占满剩余空间。
flex-shrink
用于决定项目在空间不足时是否缩小
默认1等比缩小,0不缩小
注意:即使设置了定宽,缩小依旧有效。
flex-basis
设置项目宽度
默认auto,以width为自身的宽度
设置了flex-basis的值后,权重是高于width的。
(即在设置了flex-basis和width两者的情况下,flex-basis会覆盖width)
flex-grow,flex-shrink,flex-basis三者可以在flex中设定
flex(flex-grow flex-shrink flex-basis),默认(0 1 auto)
flex三项值有两个快捷值auto(1 1 auto)和none(0 0 auto)
6. background
background : color || image || repeat || attachment || position
关于url属性在../ /不起作用是,可以试试../../

-
background-color:设置颜色作为对象背景颜色
-
background-image:设置图片作为背景图片
-
background-repeat:设置背景平铺重复方向
-
background-attachment:设置或检索背景图像是随对象内容滚动还是固定的。
-
background-position:设置或检索对象的背景图像位置
-
background-size: length | percentage | cover | contain
♦ length 该属性值是设置背景图像的宽度和高度的,第一个值是宽度,第二个值是设置高度的。
如果只设置第一个值,那么第二个值会自动转换为 “auto”;
♦ percentage:该属性是以父元素的百分比来设置图片的宽度和高度的,第一个值是宽度,第二个值是高度。如果只设置一个值,那么第二个值会被设置为 “auto”;
♦ cover:把背景图像扩展至足够大,以使背景图像完全覆盖背景区域。
♦ contain:把图像扩展至最大尺寸,以使宽度和高度 完全适应内容区域。
线性渐变linear-gradlient
- linear-gradient(direction, color-stop1, color-stop2, ...)
background-image: linear-gradient(direction, color-stop1, color-stop2, ...);
♦ direction 用角度值指定渐变的方向(或角度)。
♦ color-stop1, color-stop2,... 用于指定渐变的起止颜色。
7. 键盘事件
document.body.addEventListener(‘keyup’,function(event){ })
通过在body添加全局的键盘侦听事件,从而实现键盘控制
需要注意的是KeyboardEvent.keyCode已废弃
该特性已经从 Web 标准中删除,虽然一些浏览器目前仍然支持它,但也许会在未来的某个时间停止支持,请尽量不要使用该特性。
可以通过用code,key来代替keycode的数字,code,key返回的是文字,更可观。
8. 其他
1) 设置圆形:
圆形在设置CSS时要设置宽度和高度相等,
然后设置border-radius属性为宽度或高度的一半(50%)即可。
2) mouse事件
1、mouseover和mouseout在父元素和其子元素都可以触发,当鼠标穿过一个元素时,触发次数得依子元素数量而言。
2、mouseenter和mouseleave只在父元素触发,当鼠标穿过一个元素时,只会触发一次。
3、mouseover和mouseout比mouseenter和mouseleave先触发
3) 有关于input的disabled属性引起的系统默认灰色背景
通过在css中引入input[disabled]来解决
input[disabled] {
background: #ffffff;
opacity: 1;
color: black;
}
9. 在vue下app.vue中设置height:100%无效
设置高度100%时,div的高度会等同于其父元素的高度。
而上面中id为app的div(vue挂载的div)的父节点是body标签,body标签的父节点是html标签。
在默认情况下html和body标签的高度为auto,而浏览器是不会自动给标签添加高度的
所以html和body标签就为0,自然子div的高度设置为100%就不起作用了。
此时应该在App.vue文件style中添加如下代码:
html,body,#app{
height: 100%;
width: 100%;
}
10. 移动端H5网页a标签选中蓝色高亮解决方案
a{
border: none;
-webkit-tap-highlight-color: rgba(0,0,0,0);
-webkit-tap-highlight-color: transparent;
outline: none;
}


浙公网安备 33010602011771号