CSS篇
一、语法规范
1. 语法规范:
-
<head></head>标签中的<style></style>标签中间添加 -
<link rel="stylesheet" href="地址">引入外部css文件 -
<link rel="shortcut icon" href="../img/baidu.ico" type="image/x-icon">- 网页导航栏小图标标志
2. Css代码风格:
-
紧凑格式:
h3{color:deeppink;font-size:20px;} -
展开格式:
h3{Color:deeppink;Font-size:20px;}一般使用第二种 更直观
-
空格的使用:
- 属性值前 冒号后面 保留一个空格
- 选择器和大括号之间保留一个空格
二、Css 选择器
1. 基础选择器:
-
标签选择器:指用HTML标签名称作为选择器,按标签名称分类,为页面这某一类标签指定统一的
css样式 -
类选择器:开发中最常用的
-
语法格式:
-
.name { 属性1 : 属性值; } - 需要利用class调用
- 可以多类名使用,在一个class中放多个类名,类名之间用 空格 隔开
-
-
-
id选择器:一个id只能使用一次
-
语法格式:
-
#name { 属性1 : 属性值; } - 调用方法:
<div id = "id名"></div>
-
-
-
通配符选择器:不需要调用,自动给所有元素使用
-
语法格式:
-
* { 属性1 : 属性值; }
-
-
-
!important 权重最高 尽量少用
-
相邻选择器:只能相邻一个,选择器之间用+相连
-
选择器权重:通配符 0 < 标签 1 < 类 10 < id 100 < 行内1000<!important 10000
2. 复合选择器:
1. 后代选择器:
-
语法格式:
-
ul li { color:pink; } //默认继承关系 - 两个元素之间用空格隔开, 元素2需要是元素1的后代,元素1和元素2可以是任意基础选择器
-
2. 亲代选择器(子):
-
语法格式:
-
ul>li { color:pink; } //强制继承关系 - 只能选择作为某元素的最近一级子元素
-
3.并集选择器:
-
语法格式:
-
div, ul, p { color:pink; } - 并集选择器是各个选择器通过英文逗号链接在一起,任何形式的选择器都可以(并集选择器喜欢竖着写)
- 可以选择多组标签,同时为定义相同的样式
-
3. 伪类选择器:
-
是用于向某些选择器添加特殊的效果,比如给链接添加特殊的效果,或选择第n个元素
-
伪类选择器有很多,比如 链接伪类,结构伪类等
-
语法格式:
-
div:hover { color : pink; }
-
-
链接伪类选择器:
div:link {}选择所有未被访问的链接div:visited{}选择所有已被访问的链接div:hover{}选择鼠标指针位于其上的链接div:active{}选择活动链接(鼠标按下未弹起的链接)
-
Focus伪类选择器:用于选取获取焦点的表单元素
-
焦点就是光标,一般情况下
<input>类表单元素才能获取,因此这个选择器也主要针对于表单元素 -
语法格式:
-
input:focus { Background-color:pink; }
-
-
#属性选择器
-
属性选择器可以根据 元素的特定属性来选择元素,这样就可以不用借助类或id选择器
-
语法格式:
E[alt]:选择具有alt属性的E元素E[alt="val"]:选择具有alt属性且属性值等于val的E元素E[alt^="val"]:匹配具有alt属性且属性值以val开头的E元素E[alt$="val"]:匹配具有alt属性且属性值以val结尾的E元素E[alt*="val"]:匹配具有alt属性且属性值含有val的E元素
#结构伪类选择器
-
主要根据文档结构来选择元素,常用于根据父级,选择器里面的子元素
-
语法格式:
-
E:first-child匹配父元素中的第一个子元素E -
E:last-child匹配父元素中最后一个子元素E -
E:nth-child(n)匹配父元素中的第n个子元素E -
E:first-of-type指定类型E的第一个 -
E:last-of-type(1) 指定类型E最后一个 -
E:nth-of-type(n)指定类型E的第n个 -
nth-child(n)选择某个父元素的一个或多个特定的子元素- n可以是数字,关键字或公式
- n如果是数字,就是选择第n个子元素
- n可以是关键字:even偶数,odd奇数
- n可以是公式
-
-
注意事项:
- 结构伪类选择器:一般是用于选择父级里面的第几个孩子
- nth-child 对父元素里面所有孩子排序选择(序号是固定的) 先找到第n个孩子,然后再看看是否匹配
- nth-of-type对父元素里面指定子元素进行排序选择。先去匹配E再根据E找到第n个孩子
- 关于nth-child n是从0开始计算的,要记住常用的公式
- 无序列表,我们一般用nth-child更多
- 类选择器、属性选择器、伪类选择器 ,权重都是10
#伪元素选择器
-
伪元素选择器可以帮助我们利用
CSS创建新标签元素,而不需要HTML标签,从而简化HTML结构 -
语法格式:
- ::before 在元素内部的前面插入内容
- ::after 在元素内部的后面插入内容
-
Before和after 创建一个元素,但是属于行内元素
-
新创建的这个元素在文档中是找不到的,所以我们称为伪元素
-
语法:
div::before{content = "" } -
Before和after必须有content属性
-
伪元素选择器和标签选择器一样,权重为1
-
可以应用于清除盒子浮动(清除的是影响)
三. Css字体属性
1.字体风格
font-style:normal(默认的,标准字体)/ italic(显示斜体)/oblique (浏览器会显示一个倾斜的字体样式)
2.字体粗细
font-weight:400 700等等....normal(默认的标准字体)/bold(粗体)/bolder(更粗)/lighter(更细)
3. 字体大小
font-size:16px;(常用单位是px 谷歌默认16px)- 给body设置可以指定整个页面的字体大小
4. 字体系列
font-family:STHeiti;(华文黑体)
5. 字体显示
normal(默认的标准字体)/small-caps(显示小型大写字母)
6.字体属性复合写法
Font:font-style font-variant font-weight font-size/line-height(必须写) font-family- 位置不可以变是恒定的,之间用空格隔开
- 不需要的可以省略,但是最后两个不可以省略
四. Css文本属性
1. 文本颜色
Color:pink;- inherit 规定应该从父元素继承颜色。 默认
- color_name 规定颜色值为颜色名称的颜色(比如 red)英文本义
- hex_number 规定颜色值为十六进制值的颜色(比如 #ff0000)。
- rgb_number 规定颜色值为 rgb 代码的颜色(比如 rgb(255,0,0))每个值的范围0-255。
- rgba(0-255,0-255,0-255,0-1) 前三个值的范围0-255 第四个值代表的透明度,0-1
2. 文本水平对齐方式
-
text-align:left(左对齐)/ right(右对齐)/ center(居中对齐) -
justify 实现两端对齐效果(无效的) inherit 规定应该从父元素继承 text-align 属性的值。
-
text-align-last对齐元素中的文本 水平对齐方式justify 实现两端对齐效果(有效的)
3.文本修饰方式
text-decoration:none(默认,无)/ underline(下划线)/ overline(上划线)/ line-through(删除线)
4. 文本缩进
- 定义文本第一行缩进:通常是将段落的首行缩进
text-indent:2em;
5. 文本行高
-
line-height:15px; -
单行文字垂直居中的小技巧:
- 让文字的行高等于盒子的高度,即可让文字在当前盒子内垂直居中
6. 文本排列方式
direction:inherit规定应该从父元素继承 direction 属性的值。direction:ltr默认。文本方向从左到右。direction:rtl文本方向从右到左
7. 字间距
letter-spacing:length定义字符间的固定空间(允许使用负值)。 单位 px 像素letter-spacing:normal默认。规定字符间没有额外的空间。letter-spacing:inherit规定应该从父元素继承 letter-spacing 属性的值。- 设置文字符间距如果设置在单词里 会把每个字母当成一个汉字#
8. 单词间距
word-spacing:length定义单词间的固定空间。 单位 pxword-spacing:normal默认。定义单词间的标准空间。word-spacing:inherit规定应该从父元素继承 word-spacing 属性的值。- 两个空格之间的文字为一个词#
9. 字母大小写
text-transform控制元素中的字母 大小写#none默认。定义带有小写字母和大写字母的标准的文本。capitalize文本中的每个单词以大写字母开头。 针对英文uppercase定义全部显示大写字母lowercase定义全部显示小写字母。
10. 空白处理方式
white-space设置元素中空白的处理方式#normal默认。空白会被浏览器忽略。pre空白会被浏览器保留。其行为方式类似 HTML 中的标签。
nowrap文本不会换行,文本会在在同一行上继续,直到遇到 标签为止 类似pre-wrap保留空白符序列,但是正常地进行换行pre-line合并空白符序列,但是保留换行符。- inherit 规定应该从父元素继承 white-space 属性的值。
五. Css背景
1. 背景颜色
Background-color: transparent(背景颜色透明);
2. 背景图片
background-image:url(图片地址);- 实际开发中常见于logo或者一些装饰性的小图片或者是超大的背景图片,优点是便于控制位置-精灵图也是一种运用场景
- 页面元素既可以添加背景颜色也可以添加背景图片,不过图片会压住背景颜色
3. 背景平铺
background-repeat:repeat(横向、纵向都平铺)/ no-repeat(不平铺)/ repeat-x(横向平铺)/ repeat-y(纵向平铺)/ 默认的是都平铺
4. 背景大小
background-size:指定图片大小contain:背景成比例,按照最大边进行适配,图片完全显示在盒子里,少的部分出现白边cover:背景图成比例,按照最小边进行适配,多余的裁切
5. 背景图片位置
Background-position:x y;- x,y可以使用方位名词或则精准单位(一般是px)
- Length:百分数、由浮点数字和单位标识组成的长度值
Position:top center bottom left right 方位名词- 如果指定的两个都是方位名词则前后顺序无关
- 如果只指定一个,则第二个默认是居中
6. 背景图像固定
-
Background-attachment:(后期可以制作视差滚动的效果)Scroll:背景图像是随着对象内容滚动的Fixed:背景图像固定
7. 背景复合写法
Background:背景颜色 背景图片地址 背景平铺 背景图像滚动 背景图片位置
8. 背景图片半透明
Background:rgba (0,0,0,0.3);- 前三个参数分别的红绿蓝,最后一个参数是
aipha透明度,取值范围在0~1之间
六. Css元素显示模式
1. 元素分类
-
HTML元素一般分为块元素或行内元素
-
注意:
- 文字类的元素内不能使用块级元素
- 行内元素只能容纳文本或其他行内元素
- 链接里面不能在放链接
- 特殊情况下链接中可以反复块级元素,但是给a转一下块级元素最安全
2. 行内块元素
-
他们同时具备块级元素和行内元素的特点
- 一行可以显示多个
- 可以控制高度、行高等之类的因素
3. 元素显示模式转换
display:block(块级元素); inline(行内元素);inline-block(行内块元素)
七. Css盒子模型
#盒子模型
box-sizing:改变盒子模型box-sizing:content-box:标准盒子模型box-sizing:border-box:怪异盒子模型- 标准盒模型:border+padding可以改变元素宽高的叫标准盒模型
- 怪异盒模型(ie盒模型):border+padding改变不了元素宽高的叫怪异盒模型
1.边框
-
语法格式:
-
border-width:定义边框粗细,单位px -
border-style:定义边框样式,none(无边框)- solid:实线
- dashed:虚线
- dotted:点线
-
border-color:定义边框颜色
-
-
复合写法(简写):
Border:1px soild pink;border-top:只设置上边框(bottom/下)(left/左)(right/右)
-
表格边框合并:
border-collapse:collapse- Collapse是合并的意思
border-collapse:collapse;表示相邻边框合在一起
*圆角边框
-
语法格式:
border-radius:length;- Radius半径原理:(椭)圆与边框的交集形成的圆角效果
- 参数单位:可以是px也可以是百分比
-
圆角矩形:把数值设置为高度的一半
-
设置不同的圆角:
border-radius:10px 10px 10px 10px;(从左上角顺时针)
2. 内边距
-
语法格式:
Padding:12px;Padding-top:只设置上边框(bottom/下)(left/左)(right/右)
-
复合写法:
Padding:(1个数据上下左右)(2个数据上下和左右)(3个数据上,左右,下)(4个数据上,右,下,左);
3. 外边距
-
语法格式:
Margin:12px;盒子和盒子之间的距离;Margin-top:只设置上边框(bottom/下)(left/左)(right/右)
-
复合写法:
Margin:(1个数据上下左右)(2个数据上下和左右)(3个数据上,左右,下)(4个数据上,右,下,左);
4. 嵌套块元素垂直外边距的塌陷问题
-
对于两个嵌套关系(父子关系)的块元素,父元素有上边距的同时子元素也有上边距,此时父元素会有塌陷较大的外边距值
-
解决方案:
- 可以为父元素定义上边框
- 可以为父元素定义上内边距
- 可以为父元素添加
overflow:hidden
5. 清除内外边距
-
网页元素很多都带有默认的内外边距,而且不同的浏览器默认的也不一致,布局时首先要清除网页元素的内外边距
-
行内元素为了照顾兼容性,尽量只设置左右内外边距,但是转换为块级元素和行内块元素就没有问题
-
语法格式: 一般是
CSS的第一行代码)-
* { Padding:0; Margin:0; }
-
6. 轮廓
- 轮廓:outline 轮廓(outline)是绘制于元素周围的一条线,位于边框边缘的外围,可起到突出元素的作用。
#可以设置的属性分别是(按顺序):outline-color, outline-style, outline-width 缺一
outline 在一个声明中设置所有的轮廓属性
•outline:5px solid rgb(255, 0, 128);
•outline-color
•outline-style
•outline-width
•inherit
outline-color 设置轮廓的颜色
•color-name
•hex-number
•rgb-number
•invert
•inherit
outline-style 设置轮廓的样式
•none 默认。定义无轮廓。
•dotted 定义点状的轮廓。
•dashed 定义虚线轮廓。
•solid 定义实线轮廓。
•double 定义双线轮廓。双线的宽度等同于 outline-width 的值。
•groove 定义 3D 凹槽轮廓。此效果取决于 outline-color 值。
•ridge 定义 3D 凸槽轮廓。此效果取决于 outline-color 值。
•inset 定义 3D 凹边轮廓。此效果取决于 outline-color 值。
•outset 定义 3D 凸边轮廓。此效果取决于 outline-color 值。
•inherit 规定应该从父元素继承轮廓样式的设置。
outline-width 设置轮廓的宽度 thin
•medium
•thick
•length
•inherit
•outline通常用在input框上面(清楚默认点击样式)
八. Css阴影
1. 盒子阴影
-
box-shadow:h-shadow v-shadow blur spread color inset;h-shadow:必须,水平阴影位置,允许负值v-shadow:必须,垂直阴影位置,允许负值Blur:可选,模糊距离Spread:可选,阴影的尺寸Color:可选,阴影的颜色Inset:可选,将外部阴影改为内部阴影
2. 文字阴影
-
text-shadow:h-shadow v-shadow blur spread color inset;h-shadow:必须,水平阴影位置,允许负值v-shadow:必须,垂直阴影位置,允许负值Blur:可选,模糊距离Spread:可选,阴影的尺寸Color:可选,阴影的颜色Inset:可选,将外部阴影改为内部阴影
九. Css浮动
1. 网页布局方式
-
普通流(标准流):就是标签按照规定好的默认方式排列
-
浮动: Float属性用于创建浮动框,将其移动到一边
-
定位:将盒子定位在浏览器某一个位置,
css离不开定位 -
代码格式:
div { float:none(不浮动)/ left(左浮动)/ right(右浮动) }
2. 清除浮动影响
-
Clear:both;(清除左右两边的浮动影响,新增的盒子必须是块级元素,不能是行内元素)("不确定"子元素添加) -
父级添加
overflow属性,将其属性值设置为hidden、auto、scroll- 优点:代码简洁
- 缺点:无法显示溢出的部分
十. Css定位
1. 静态定位
Position:static;- 不脱标,很少使用
2. 相对定位
Position:relative;- 不脱标,相对自己定位
3. 绝对定位
Position:absolute;- 脱标,相对带有定位的父级进行定位(子绝父相)
4. 固定定位
Position:fixed;- 脱标,相对于浏览器可视区域定位
5. 粘性定位
Position:sticky;- 不脱标,相对浏览器可视区域定位
6. 隐藏和显示
Display:none;隐藏Display:block;显示Visibility:visible默认是显示(不脱标显示)/ hidden(不显示)
7. 溢出处理
-
Overflow:(文本超出边框时,文本的状态)
-
语法格式:
Overflow:visible;(默认值,框外显示)Overflow:auto;(需要时添加滚动条)Overflow:hidden;(不显示)Overflow:scroll;(添加滚动条)
十一. 精灵图的使用
.box { background:url(images/sprint.png) no-repeat -10px -25px; }- 精灵技术主要是针对背景图的使用,就是把多个小背景图整合到一个大的背景图中
- 通过移动背景图片的位置来完成使用。此时可以用
background-position - 移动距离就是这个目标图片的x和y坐标,注意网页中的坐标有所不同
- 向右向下移动是正,向左向上移动是负,一般来说都是负
十二. 字体图标
-
字体图标的优点:
-
(1) 轻量级:可以较快的加载,减少服务器压力
(2) 灵活性:本质是文字,可以随意改变
(3) 兼容性:几乎所有浏览器都支持
(4) 需要注意的是,字体图标不能取代精灵图,只是对工作的一种提升和优化
(5) 总结:结构和样式简单的用字体图标,复杂的用精灵图(小图片)
-
-
字体图标的下载:
-
Ico引入流程:-
第一步:下载好的压缩包解压后生成的文件夹,将其中的fonts放在要使用的文件根目录下,程序保存的地址同地址
-
第二步:
css样式中全局声明字体-
Span{ font-family:’icomoon’ }
-
-
(1) fonts相同的文件夹中有style.css文件,打开,从@font复制到block;}粘贴到
<style>@font复制到block;}
</style> -
fonts相同文件夹中有一个demo.html文件,打开
-
(1) 复制想要用的图标下的右边的小框框,然后
css中声明-
Span{ font-family:’icomoon’; font-size: 100px; color:pink; }
-
-