head标签
-
head里面主要是 源信息标签
-
作用是,设置网站的源信息
-
charset 属性,用来定义文本的编码格式
- UTF-8 万国码,目前开发中最常用
- GB2312:中文码
- 通常都把 charset 的值设置成UTF-8 ,如果不设置 charset 属性,可 能会导致页面乱码,解决方案是设置成utf-8即可
-
author 属性,用来定义网站的作者,一般是公司的名字
-
keywords 属性,用来定义网站的关键字,如果有多个关键字用英文逗号隔开,关键字最好不要超过10个
- 精准的keywords 值,更加有利于SEO(搜索引擎优化)
-
description 属性,用来简单的描述网站的内容,不要超过100字,有利于SEO
-
meta的另一种写法
> -
title 标签,他是一个双标签,他的SEO权重很大,因此需要谨慎书写里面的内容
-
head标签里的内容,不会渲染在页面中
-
body 标签里面的内容,会渲染在页面的可视区域
标签分为 行属性标签 和 块属性标签
块属性标签
- div 标签
- 没有任何意义的标签,通常用来进行页面的布局
- h 系列标签
- h1-h6标题
- 在一个页面中,h1 最多只能出现1次,h2 最多出现20次,h3-h6 次数不限
- h1的用法:
- logo处
- 资讯详情页的大标题
- 由于h1的权限较大 只能出现在以上两个地方
- p 标签,段落标签,它里面一般包含一段文字
- 分割线
<hr />
- 无序列表
ul>li
- 可以设置他的 list-style-type 属性
- square :实心方块
- circle :空心圆
- dotted 实心圆
- none :取消列表样式
- disc:高版本系统下的默认样式
- 可以设置他的 list-style-type 属性
- 有序列表
ol>li
- 可以设置他的 list-style-type 属性
- lower-alpha :小写字母
- upper-alpha :大写字母
- lower-roman :小写罗马文
- upper-roman :大写罗马文
- ol,ul,li 都是块属性标签
- li 是列表项,并且 ol,ul 的子元素,必须是 li标签
- 可以设置他的 list-style-type 属性
- 定义列表
dl>dt
dl>dd
- dl:块标签,定义列表的父元素
- dt:块标签,定义列表的 标题项
- dd:块标签,定义列表的 列表项
- address 地址标签,一般的,他的内容是一个地址
- blockquote 引用标签,一般引用的是一段文字,他的 cite 属性表示改文字引用的文献名目
不要使用html 官方没有的标签,虽然也会被浏览器渲染,但是不符合w3c 规范
行标签
-
sapn 标记标签,没有实际意义,通常用来渲染文字
<!-- iframe 框架src="需要显示的页面地址"height="设置高度"width="设置宽度" -->
-
a 标签
- href 属性: 用来设置超链接的地址
- target 属性: 设置标签页的打开方式
- _blank 在新标签页打开,指向,打开新页面,分页
- _self 默认值,在当前页面打开
作用:
- 设置一个超链接
- 设置锚点
最常用的效果是 回到顶部
如果在开发中需要设置 a 标签点击没有效果,则可以设置 href 属性为 ## 即是: href=“##”
如果需要设置回到顶部 则 herf=“#”
不要设置 href 为空,这样会导致页面刷新
-
下载文件
-
a. 如果设置的下载文件是,音频、视频、图片、文档等,都需要经过压缩之后,再在href上设置文件的路径
-
b. 如果是 文本类型的文件,可以直接那文件路径设置在href属性上,直接由浏览器打开
-
-
strong 强调标签
-
em 强调并且斜体
-
b 文本加粗(不常用,H5中即将废弃)
-
i文本斜体
-
var 文本斜体(不常用,H5中即将废弃)
-
q 标签 ,引用标签,他引用的内容都比较简短
-
pre 标签,格式化输出
-
code 标签,一般是嵌套代码使用
- <在html中渲染为<
- >在html中渲染为>
- 在html中渲染为 空格
-
img 标签,是一个单标签
-
src 属性: 用来设置图片资源路径
- 图片资源路径 分为三种
- a.网络路径
图片的网络地址 - b.绝对路径
从服务器的根目录开始直到找到需要的文件的整个路径,一般不使用 - c.相对路径
相对于当前文件所在的资源路径
- ./ 代表的是当前目录*
- .//代表的是上一级目录*
- 相对路径在开发中最常用*
- a.网络路径
- 图片资源路径 分为三种
-
alt 属性,用来解释图片的内容
作用:
1. 当图片没有被加载出来的时候,会显示alt的内容
2. 通过alt属性,告诉浏览器当前图片的内容 -
width/height
设置图片的宽和高,在实际的开发当中,一般只设置单个的宽或者高,另一侧根据比例显示大小
-
行快属性的区别
1. 块属性标签
- a.独自占据一行的空间,支持宽和高的设置,设置完宽和高以后,仍然独占一行
- b.支持上下 padding 和 上下 margin
2. 行属性标签
- a.不会独占一行空间,从左至右横向排列
- b.无法设置宽和高,他的宽和高由内容撑开
- c.不支持上下 padding 和 上下 margin
emmet语法
E代表标签名
- E*n 创建n个E标签
- E{自挂东南枝}*n 创建n个内容为"自挂东南枝"的 E 标签
- E{自挂东南枝&}*n 创建n个内容为"自挂东南枝"+序号的 E 标签,&表示序号,从1开始
- 箭头 > 表示的是下一个层级元素(子元素)
E>a 在 E 标签中添加子元素 a 标签 - 加号 + 表示同级
E+p 同时创建兄弟元素E和p,不相互嵌套 - ^表示上一级 ?
E>p^div 创建 div 标签和 E 标签同级,也就是创建 p 标签的上一级 - 使用[]设置属性
标签嵌套规则
- 块标签可以作为一个布局标签,嵌套所有的标签
- 行标签不能嵌套块标签
- 以下标签不能相互嵌套
- p 标签,h1-h6都不能相互嵌套,并且他们也不能嵌套块元素
- a 标签不能相互嵌套
css样式表
css 层叠式样式表,他是用来给html结构添加样式的
- 设置类名
-
.类名{
样式内容
} -
text-align: 文本排布,一般放在块标签上,用来控制块标签中 行标签 和 文本的对齐位置
值:- left:左对齐(默认)
- center:居中对齐
- right:右对齐
-
css引入方式
css引入方式
- 行间引入,在标签上,设置style属性,在style中设置样式
<li style="list-style-type: none;"></li>
- 内部样式表,在head中设置style标签,在标签中设置样式
<style type="text/css"></style>
- 外部样式表 开发时常用
例1:<link rel="stylesheet" href="./css/style.css">
例2:<style type="text/css">/* 使用@import 导入css */@import url('./css/goods.css'); </style>
link 和 @import 引入 css的区别
- @import 是css2.1之后才推出的,因此可能存在兼容问题,link不存在兼容问题
- link 不仅可以引入 css,也可以引入其他类型的文件,功能更加强大,推荐使用link
- 例:引入网站小图标
<link rel="shortcut icon" href="favicon.ico" type="image/x-icon">
css文本操作
border 属性
-
border-width 设置border的宽度
-
border-color 设置border的颜色
-
border-style 设置border的样式
-
他们三个也可以合写:
- border: width style color;
-
border 可以单独给某一个边设置border
- border-top 设置 上边
- border-left 设置 左边
- border-bottom 设置 下边
- border-right 设置 右边
-
常用的 border-style 值
- solid 实线
- dotted 圆点虚线
- dashed 短线虚线
- none 隐藏border
- double 双实线(不常用)
- 3D边框
- groove 3d凹槽
- ridge 3d凸槽
- inset 内嵌
- outset 外嵌
color 属性,设置文本颜色
值:
- 英文单词
- 16进制颜色 0-f ,# 后面跟6位表示颜色的数字,前两位表示红色,中间两位表示绿色,后两位表示蓝色,#aabbcc,如果 两两相等,则可以简写为 #abc
- rgb(),rgba()设置颜色,括号当中设置对应的数字,0-255 , 0 表示黑色,255 表示白色,rgb(255,0,0)红色,rgba 中的a 表示透明度,取值范围是0-1,0表示完全透明,1表示完全不透明
文本修饰(text-decoration)
值:
- underline 下划线
- overline 上划线
- line-through 中划线(删除线)
- none 去掉线(没有文本修饰线)
文本转化 (text-transform)
值:
- lowercase 全部小写
- uppercase 全部大写
- capitalize 单词的首字母大写
行高 (line-height)
对于单行文本,line-height 设的高度如果和标签高度相同,则可以做 垂直居中效果,如果是多行文本,可以理解为行间距
direction 设置文字方向
- ltr 默认,从左到右
- rtl 从右向左
- text-indent 首行缩进,他的值是具体的数值
- word-spacing:设置 两个单词之间的距离
- letter-spacing:设置 两个字符之间的距离(中文属于字符)
overflow 属性
-
处理子级内容超出当前容器 的部分,主要是对父级元素添加该属性
值:- hiden 超出部分隐藏
- scrool 滚动查看超出的部分
- auto 自动渲染超出的部分
- overflow-x 控制x轴方向的超出部分
- overfloe-y 控制y轴方向的超出部分
-
white-space 属性,设置文本的格式
- nowrap 强制不换行
- normal 强制换行
-
text-overflow: 对超出的文本的内容剪裁
- ellipsis 超出的内容变为 省略号
- clip 直接裁掉超出的文本内容
-
单行文本超出添加省略号
- overflow:hidden;
- white-space: nowrap;
- text-overflow: ellipsis;
字体设置
-
font-style 设置字体的样式
值:- italic 设置字体为斜体
- normal 字体正常
-
font-weight 设置字体是否加粗
值:- normal 默认
- bold 加粗
- bolder 相对bold加粗
- 他的值也可以是具体的整百数字,范围是100-900
- 400->normal
- 700->bold
- 900->bolder
-
font-size 设置所修饰的字体的大小
- 目前浏览器默认大小是 16px
- PC浏览器的最小字体大小可以设置为 12px
-
font-family 设置文字的字体
- 可以同时设置多个字体,形如:font-family:‘A’,‘B’,‘C’…;
含义是 在客户端的设备上匹配 A字体,如果没有A字体,则继续匹配B字体,依次进行匹配,知道匹配成功即可显示匹配到的字体 - 通用字体
- serif 有衬线(类似锐化)
- sans-serif 无衬线
- 可以同时设置多个字体,形如:font-family:‘A’,‘B’,‘C’…;
-
font 也是一个 复合型 css属性,可以按照下面的顺序书写
font:style weight size family;
**注意:**style 和weight 不是必须写入的内容,如果简写必须要有 font-size 和 font-family
font:size family;
背景
-
background 设置标签元素的背景
-
background-color 设置背景色
- 他的值可以是:
- 英文单词
- 16进制表示颜色
- rgb()表示颜色
- 他的值可以是:
-
background-image 设置背景图
background-image:url(背景图地址)
-
background-repeat 背景图的平铺方式
值:- repeat 默认,x轴y轴都平铺
- repeat-x 沿x轴平铺
- repeat-y 沿x轴平铺
- no-repeat 不平铺
-
background-position 设置背景图方位
background-position:x轴方向的值 y轴方向的值;值可以是:
- 具体的数值
- 方位名词组合:left top right bottom center
-
background-attachment 设置背景图固定定位
background-attachment:
值:- scroll 默认值,背景图片在跟着页面一起滚动
- fixed 根据浏览器可视区域,固定在具体的位置,他的定位参考点是 浏览器可视区域
-
background 是一个复合型属性,可以写在一起,他的顺序是
background:color image repeat position attachment; -
可以单独写
background:color;
background:image;
diaplay属性
-
隐藏一个标签元素
display: none; -
display 属性,可以用来控制标签元素的显示属性
值:- block 把元素转化为块属性标签
- inline 把元素转化为行属性标签
- none 隐藏标签元素
-
设置内联块元素(行内块元素)
display: inline-block; 他的本质是 对内显示 块标签属性,对外显示 行标签属性。
-
两个内联块元素之间的缝隙的处理方式
原因: 两个内联块元素之间键入了回车,回车也是一个字符,它的大小跟父标签的font-size有关
解决办法:
-
去掉回车键
-
设置他们父元素的大小为0
注意,字体大小是可以被传递到子元素上的
基础选择器
- 通配选择器
- *表示通配符,他可以匹配任何标签。
*{css内容}
- 标签名选择器
E{css内容}给所有标签名为E的元素设置css样式
- 类名选择器
.类名{css内容}
使用的时候需要在 标签上绑定 class=“类名” 如果有多个类名,使用 空格 隔开,类名最好不要超过5个
- id选择器
#id名{css内容}
在一个页面当中,id是唯一的,只能绑定在一个标签上,也就是一个页面中没有同名的id
- 群组选择器
如果多种选择器所表达的内容是相同的,则可以把他们写成群组选择器
.wp,#abc,div{css内容}
层次选择器
- 后代选择器
E M{css内容} 通过 E选择器 设置 E 中的 M选择器 的css内容,M可以是E的子集,也可以是E的后代中的某一个选择器
ul li{}
- 父子选择器
E>M{css内容} 通过E选择器找到 E选择器下面的子级M选择器,设置css内容
ul>li{}
- 兄弟选择器
E~M{css内容} 通过E选择器找到 该元素之后的所有选择器名为 M 的兄弟元素,并设置css样式
.f~li{ }
4.相邻兄弟选择器
E+M{ css内容 } 通过E选择器找到 该元素之后第一个兄弟元素M,并且对M设置css样式。
.f+li{}
伪类选择器
- a的伪类
伪类,是css系统创建好的内部的类,用来对标签的某一个时机设置样式
link:初始时候的状态
visited:点击之后的状态
hover:鼠标悬浮时候的状态
active: 鼠标按下不松手时候的状态
顺序是 l-> v -> h -> a(先爱后恨)
ie8以后,任何标签都可以添加 :hover 伪类
可以根据hover 触发 元素本身,以及通过元素能找到的元素 的变化
什么时候需要考虑选择器的优先级?
不同的选择器,同时作用于同一个标签元素,并且它们具有相同的css属性设置,对该css属性设置了不同的值
- 选择器优先级的强弱顺序:
- !important 100000
- 行间样式,在标签上添加 style属性 10000
- id选择器 1000
- 类名选择器,伪类选择器,属性选择器 100
- 元素(标签名)选择器,伪元素 选择器 10
- 通配符选择器 1
- 系统默认提供的css属性 0
假设后面的数字是权重的值,那么在比较的时候,只需要把选择器的值相加,然后比较大小即是权重的大小,如果他们的值相同,后来者居上
盒模型:
在html中,每一个标签都具有一个盒模型
盒模型组成部分:
Content(内容) ,padding(内边距),border(边框),margin(外边 距)
- content:标签元素内容,一般自定义宽和高,或者由子元素的内容撑开宽和高
- padding:设置元素内容到元素边框之间的距离
- border:指的是元素的边框
- margin:设置 当前元素到相邻元素之间的距离
设置内边距
- padding-top:num;设置上边距
- padding-right:num;设置上边距
- padding-bottom:num;设置上边距
- padding-left:num;设置上边距
- 合写:
- padding: 上 右 下 左;
- 左=右 上!=下
padding:上 右 下; - 左=右 上=下
padding:上 右; - 左=右 上=下
padding:上;
设置外边距
- margin-top 设置元素上边的外边距
- margin- right设置元素右边的外边距
- margin-bottom 设置元素下边的外边距
- margin-left 设置元素左边的外边距
- 合写
- margin:上 右 下 左;
- 上=下 右!=左
margin:上 右 下 左; - 上!=下 右=左
margin:上 右 下 ; - 上=下 右=左
margin:上 右 ; - 上=下=右=左
margin:上 ;
margin 的经典bug
- 上下两个兄弟元素的margin重叠问题
- 上下两个兄弟标签,设置margin的时候,他们之间的距离不是相加,而是谁设置的margin值大,就显示谁的距离,即为值大的覆盖小的
可以理解为上面元素的margin-bottom和下面元素的margin-top他们的值取最大的一个
解决办法:给下面的元素添加display: inline-block;
- 上下两个兄弟标签,设置margin的时候,他们之间的距离不是相加,而是谁设置的margin值大,就显示谁的距离,即为值大的覆盖小的
- 父子级子元素的margin-top传递问题
- 在子元素中设置margin-top,表现的结果是该margin-top传递到了父级元素上,是的父元素距离他上面的元素为该margin-top值
解决方法:- a.给父元素添加 overflow:hidden;
- b.给父元素添加 border
- 在子元素中设置margin-top,表现的结果是该margin-top传递到了父级元素上,是的父元素距离他上面的元素为该margin-top值