css复合器
css事项
一个标签可以有多个类选择器
例如
<div class="ss sd" >我的</div
CSS通配符选择器使用*定义,它表示选取页面中所有元素(标签)。不需要调用,会自动给所有元素样式。
基础选择器 | 作用 | 特点 | 使用情况 | 用法 |
---|---|---|---|---|
标签选择器 | 可以选出多个标签 | 不能差异化选择 | 较多 | p |
类选择器 | 可以选出1个或者多个标签 | 可以根据需求选择 | 非常多 | .nav |
id选择器 | 一次只能选择一个标签 | id属性只能在每个html文档中出现1次 | 一般和js搭配 | #nav |
通配符选择器 | 选择所有的标签 | 选择的太多,有部分不需要 | 特殊情况使用 | * |
font复合属性
font : font-style || font-variant || font-weight || font-size || line-height || font-family
xiaomi字体 font: 14px/1.5 Helvetica Neue,Helvetica,Arial,Microsoft Yahei,Hiragino Sans GB,Heiti SC,WenQuanYi Micro Hei,sans-serif;
text-indent:20px 文本首行缩进20ox
内部样式表 就是在html界面内部写样式,卸载style标签内部
行内样式表
<p style="color: yellowgreen;font-style: italic;">我们是css高阶</p>
外部样式表
<link rel="stylesheet" href="style.css">
css引入方式总结
样式表 | 优点 | 缺点 | 使用情况 | 控制范围 |
---|---|---|---|---|
行内样式表 | 书写方便,权重高 | 结构样式婚鞋 | 较少 | 控制一个标签 |
内部样式表 | 部分结构和样式相分离 | 没有彻底分离 | 较多 | 控制一个页面 |
外部样式表 | 完全实现结构和样式相分离 | 需要引入 | 最多 | 控制多个页面 |
有序列表
<ol>
<li>一等奖</li>
<li>二等奖</li>
<li>三等奖</li>
</ol>
无序列表
<ul>
<li>其他奖项等奖</li>
<li>其他奖项等奖</li>
<li>其他奖项等奖</li>
</ul>
快速格式化代码 vscode中 搜索emmet.include; 找到setting.json中
{
"editor.fontSize": 16,
"[html]": {
"editor.defaultFormatter": "HookyQR.beautify",
"editor.formatOnType":true,
"editor.formatOnSave":true
},
"emmet.syntaxProfiles": {
},
"emmet.excludeLanguages": [
"markdown"
]
}
css复合器 分为两种 基础选择器和复合选择器
常用复合选择器包括:后代选择器、子选择器、并集选择器、伪类选择器
后代选择器
ol li {
color: pink;
}
<ol>
变态写法
<li>我是ol 的孩子</li>
<li>我是ol 的孩子</li>
<li>我是ol 的孩子</li>
<li><a href="#">我是孙子</a></li>
</ol>
子选择器
只能选择作为某元素的最近一级子元素,也叫做亲儿子 下面的 div离a最近,故选择a nav>a{}
<style>
.nav>a {
color: red;
}
</style>
<div class="nav">
<a href="#">我是儿子</a>
<p>
<a href="#">我是孙子</a>
</p>
</div>
并集选择器
/* 要求2: 请把熊大和熊二改为粉色 还有 小猪一家改为粉色 */
div,
p,
.pig li {
color: pink;
}
/* 约定的语法规范,我们并集选择器喜欢竖着写 */
/* 一定要注意,最后一个选择器 不需要加逗号 */
<div>熊大</div>
<p>熊二</p>
<span>光头强</span>
<ul class="pig">
<li>小猪佩奇</li>
<li>猪爸爸</li>
<li>猪妈妈</li>
</ul>
伪类选择器
伪类选择器用于向某些选择器添加特殊的效果,比如给链接添加特殊效果,或者选择第一个第n个元素,伪类选择器书写最大的特点是用冒号(:)表示,比如 :hover、:first-child
链接伪类 /* 1.未访问的链接 a:link 把没有点击过的(访问过的)链接选出来 */
a:link {
color: #333;
text-decoration: none;
}
/*2. a:visited 选择点击过的(访问过的)链接 */
a:visited {
color: orange;
}
/*3. a:hover 选择鼠标经过的那个链接 */
a:hover {
color: skyblue;
}
/* 4. a:active 选择的是我们鼠标正在按下还没有弹起鼠标的那个链接 */
a:active {
color: green;
}
/* 1.未访问的链接 a:link 把没有点击过的(访问过的)链接选出来 */
a:link {
color: #333;
text-decoration: none;
}
/*2. a:visited 选择点击过的(访问过的)链接 */
a:visited {
color: orange;
}
/*3. a:hover 选择鼠标经过的那个链接 */
a:hover {
color: skyblue;
}
/* 4. a:active 选择的是我们鼠标正在按下还没有弹起鼠标的那个链接 */
a:active {
color: green;
}
/* 开发中的写法*/
a {
color: #333;
text-decoration: none;
}
a:hover {
color: #369;
text-decoration: underline;
}
focus伪类选择器
/* // 把获得光标的input表单元素选取出来 */
input:focus {
background-color: pink;
color: red;
}
<input type="text">
复合选择器
选择器 | 作用 | 特征 | 使用情况 | 隔开符合及用法 |
---|---|---|---|---|
后代选择器 | 用来选择后代元素 | 子孙代 | 较多 | 符合是空格 .nav a |
子代选择器 | 选择最近的一级元素 | 只选亲儿子 | 较少 | 符合是大于 .nav>a |
并集选择器 | 选择某些相同样式的元素 | 可以用于集体声明 | 较多 | 符合是逗号 .nav,header |
链接伪类选择器 | 选择不同状态的链接 | 跟链接相关 | 较多 | 重点记住a()和a:hover() |
focus选择器 | 选择获得光标的表单 | 跟表单相关 | 较少 | input:focus |
HTML元素一般分为块元素、行内元素两种类型
块元素
常见的块元素:
~、、
、、、-
块元素特点:
-
独占一行
-
高度、宽度、外边距以及内边距都可控制
-
是一个容器及盒子,里面可以防行内、块级元素
注意:
标签用于存放文字,故
内也不能放块级元素
同理,
~
也是文字类块级标签,里面也不能放其他块级元素
行内元素
常见的行内元素有 、、 、、 、 、 、 、
行内元素特点:
-
相邻行内元素在一行上,一行可以显示多个
-
高、宽直接设置是无效的
-
默认宽度就是它本身内容的宽度
-
行内元素只能容纳文本或者其他行内元素
注意:
链接里面不能再放链接
特殊情况链接里面可以放块级元素,但是给转换一下块级模式最安全
行内块元素
有几个特殊的标签----
--它们同时具有块级元素和行内元素的特点
行内块元素特点:
- 和相邻行内元素(行内块)在一行上,但是他们之间会有空白缝隙、一行可以显示多个(行内元素特点)
- 默认宽度就是它本身内容的宽度(行内元素特点)
- 高度、宽度、外边距以及内边距都可控制(块级元素特点)
元素模式
元素排列
设置样式
默认宽度
包含
块级元素
一行只能放一个块级
可以设置宽度高度
容器的100%
容器级可以包含任何标签
行内元素
一行可以放多个行内元素
不可以直接设置宽度、高度
它本身内容的宽度
容纳文本或者其他行内元素
行内块级元素
一行放多个行内块级元素
可以设置宽度、高度
它本身内容的宽度
显示模式的转换
a {
width: 150px;
height: 50px;
background-color: pink;
/* 把行内元素 a 转换为 块级元素 */
display: block;
}
div {
width: 300px;
height: 100px;
background-color: purple;
/* 把 div 块级元素转换为行内元素 */
display: inline;
}
span {
width: 300px;
height: 30px;
background-color: skyblue;
display: inline-block;
}
小工具snipaste使用说明书
F1可以截图、测量大小、设置箭头、书写文字、
F3在桌面置顶显示
点击图片alt可以取色,按下shift可以切换取色模式
按下esc取消图片显示
单行文字垂直居中的代码
解决方案: 让文字的行高等于盒子的高度 就可以让文字在当前盒子内垂直居中
例如当前盒子高度 height: 40px; line-height: 40px;
背景属性复合写法
bgackground:背景颜色、背景图片地址、背景平铺、背景图像滚动、背景图片位置
background: black url(../CSS/image/bg.jpg) no-repeat fixed center top;
background: transparent url(../CSS/image/bg.jpg) no-repeat fixed top;
背景色半透明
background: bgra(0,0,0,0); 最后一个参数是alpha透明度,取值范围0~1之间
背景
属性
作用
值
background-color
背景颜色
预定义的颜色值/十六进制/RGB代码
background-image
背景图片
url(图片路径)
background-repeat
是否平铺
repeat /no-repeat/repeat-x/repeat-y
background-position
背景位置
length / position
background-attachment
背景附着
scroll(背景滚动)/fixed(固定)
背景简写
书写简单
背景颜色、背景图片地址、背景平铺、背景图像滚动、背景图片位置
背景色半透明
背景色半透明
background: bgra(0,0,0,0.3);
优先级
选择器
选择器权重
基础或者*
0,0,0,0
元素选择器
0,0,0,1
类选择器、伪类选择器
0,0,1,0
id选择器
0,1,0,0
行内样式
1,0,0,0
! important
无穷大
css三大特性: 继承性、层叠性、优先级
权重叠加
/* 复合选择器会有权重叠加的问题 */
/* 权重虽然会叠加,但是永远不会有进位 */
/* ul li 权重 0,0,0,1 + 0,0,0,1 = 0,0,0,2 2 */
ul li {
color: green;
}
/* li 的权重是 0,0,0,1 1 */
li {
color: red;
}
/* .nav li 权重 0,0,1,0 + 0,0,0,1 = 0,0,1,1 11 */
.nav li {
color: pink;
}
显示颜色 pink ,权重11>2 优先显示
盒子
边框 border:border-width ||border-style||border-color
内边距: padding 边框与内容之间的距离
属性
作用
padding-left
左内边距
padding-right
右内边距
padding-top
上内边距
padding-bottom
下内边距
padding 5px 10px 20px 30px (上 右 下 左)四个内边距 顺时针填写
外边距(margin)
属性
作用
margin-left
左外边距
margin-right
右外边距
margin-top
上外边距
margin-bottom
下外边距
盒子模型
外边距可以让块级盒子水平居中
满足条件: 1、盒子有指定的宽度 2、盒子左右的边距设置为auto
margin:0 auto; margin:auto; margin-left:auto; margin-right:auto;
注意:
以上方法是让块级元素水平居中,行内元素或者行内块元素水平居中给其父元素添加text-align:center即可。
外边距合并-嵌套块元素塌陷
解决方案:
(1)、可以为父元素定义上边框 margin-top: 50px;
(2)、可以为父元素定义上内边框 margin-top: 50px;
(3)、可以为父元素添加overflow:hidden
如果想使得相同类型的div排列在一排呈现在界面,需要将其div 转换为行内块元素
圆角边框
参数可以为数值、百分比形式
左上角、右上角、右下角、左下角
盒子阴影
box-shadow 语法: box-shadow: h-shadow v-shadow blur spread color inset;
值
描述
h-shadow
水平阴影的位置
v-shadow
垂直阴影的位置
blur
模糊距离
spread
阴影的尺寸
color
阴影的颜色
inset
可选 将外部阴影(outset)改为内部阴影
1、浮动
标准流
1.块级元素独占一行 div hr p h1~h6 ul ol dl form table
2.行内元素会按照顺序从左到右排列,遇到父元素边缘则自动换行 span a i em
清楚浮动方法
额外标签法也称为隔墙法,
父级添加overflow属性 父级添加after伪元素 父级添加双伪元素
1、额外标签法 要求这个新的空标签必须是块级元素
父级添加overflow优缺点
优点 :代码简洁 缺点 无法显示溢出部分
2、父级添加after伪元素
因为伪元素是行内元素,所以需要转化为块内元素
.clearfix:after {
content: "";
display: block;
height: 0;
clear: both;
visibility: hidden;
}
.clearfix {
/* IE6、7 专有 */
*zoom: 1;
}
优点 :没有增添标签,结构更加简单 缺点: 照顾低版本浏览器
3、父级添加双伪元素
.clearfix:before,
.clearfix:after {
content: "";
display: table;
}
.clearfix:after {
clear: both;
}
.clearfix {
*zoom: 1;
}
优点 代码更简洁 缺点:照顾低版本浏览器
清除浮动总结
为什么需要清除 1、父级没高度、子盒子浮动、影响下面布局,所以需要清除浮动。
清除浮动的方式
优点
缺点
额外标签法
通俗易懂,书写方便
添加许多无意义的标签,结构化差
父级添加overflow
书写方便
无法显示溢出部分(溢出隐藏)
父级添加after伪元素
代码更简洁
照顾低版本浏览器 兼容性问题
父级添加双伪元素
代码更简洁
照顾低版本浏览器 兼容性问题
头部制作
导航栏 采用li+a语义更加的清晰
导航栏里面的文字不一样多,最好给链接a左右padding撑开盒子,而不是指定宽度
右边的则 float:right
网站favicon图标
先将图标切为png图片,
把png图片转换为ico图标,这需要借助第三方转换网站,比特虫 https://www.bitbug.net/
将生成后的图标放到根目录,然后HTML页面引入favicon图标
、
- 、
-
块元素特点:
-
独占一行
-
高度、宽度、外边距以及内边距都可控制
-
是一个容器及盒子,里面可以防行内、块级元素
注意:
标签用于存放文字,故
内也不能放块级元素 同理,
~
也是文字类块级标签,里面也不能放其他块级元素
行内元素
常见的行内元素有 、、 、、 、
、、 、行内元素特点:
-
相邻行内元素在一行上,一行可以显示多个
-
高、宽直接设置是无效的
-
默认宽度就是它本身内容的宽度
-
行内元素只能容纳文本或者其他行内元素
注意:
链接里面不能再放链接
特殊情况链接里面可以放块级元素,但是给转换一下块级模式最安全
行内块元素
有几个特殊的标签----
--它们同时具有块级元素和行内元素的特点
行内块元素特点:
- 和相邻行内元素(行内块)在一行上,但是他们之间会有空白缝隙、一行可以显示多个(行内元素特点)
- 默认宽度就是它本身内容的宽度(行内元素特点)
- 高度、宽度、外边距以及内边距都可控制(块级元素特点)
元素模式 元素排列 设置样式 默认宽度 包含 块级元素 一行只能放一个块级 可以设置宽度高度 容器的100% 容器级可以包含任何标签 行内元素 一行可以放多个行内元素 不可以直接设置宽度、高度 它本身内容的宽度 容纳文本或者其他行内元素 行内块级元素 一行放多个行内块级元素 可以设置宽度、高度 它本身内容的宽度 显示模式的转换
a { width: 150px; height: 50px; background-color: pink; /* 把行内元素 a 转换为 块级元素 */ display: block; } div { width: 300px; height: 100px; background-color: purple; /* 把 div 块级元素转换为行内元素 */ display: inline; } span { width: 300px; height: 30px; background-color: skyblue; display: inline-block; }
小工具snipaste使用说明书
F1可以截图、测量大小、设置箭头、书写文字、
F3在桌面置顶显示
点击图片alt可以取色,按下shift可以切换取色模式
按下esc取消图片显示
单行文字垂直居中的代码
解决方案: 让文字的行高等于盒子的高度 就可以让文字在当前盒子内垂直居中
例如当前盒子高度 height: 40px; line-height: 40px;
背景属性复合写法
bgackground:背景颜色、背景图片地址、背景平铺、背景图像滚动、背景图片位置 background: black url(../CSS/image/bg.jpg) no-repeat fixed center top; background: transparent url(../CSS/image/bg.jpg) no-repeat fixed top;
背景色半透明
background: bgra(0,0,0,0); 最后一个参数是alpha透明度,取值范围0~1之间
背景
属性 作用 值 background-color 背景颜色 预定义的颜色值/十六进制/RGB代码 background-image 背景图片 url(图片路径) background-repeat 是否平铺 repeat /no-repeat/repeat-x/repeat-y background-position 背景位置 length / position background-attachment 背景附着 scroll(背景滚动)/fixed(固定) 背景简写 书写简单 背景颜色、背景图片地址、背景平铺、背景图像滚动、背景图片位置 背景色半透明 背景色半透明 background: bgra(0,0,0,0.3); 优先级
选择器 选择器权重 基础或者* 0,0,0,0 元素选择器 0,0,0,1 类选择器、伪类选择器 0,0,1,0 id选择器 0,1,0,0 行内样式 1,0,0,0 ! important 无穷大 css三大特性: 继承性、层叠性、优先级
权重叠加
/* 复合选择器会有权重叠加的问题 */ /* 权重虽然会叠加,但是永远不会有进位 */ /* ul li 权重 0,0,0,1 + 0,0,0,1 = 0,0,0,2 2 */ ul li { color: green; } /* li 的权重是 0,0,0,1 1 */ li { color: red; } /* .nav li 权重 0,0,1,0 + 0,0,0,1 = 0,0,1,1 11 */ .nav li { color: pink; } 显示颜色 pink ,权重11>2 优先显示
盒子
边框 border:border-width ||border-style||border-color
内边距: padding 边框与内容之间的距离
属性 作用 padding-left 左内边距 padding-right 右内边距 padding-top 上内边距 padding-bottom 下内边距 padding 5px 10px 20px 30px (上 右 下 左)四个内边距 顺时针填写
外边距(margin)
属性 作用 margin-left 左外边距 margin-right 右外边距 margin-top 上外边距 margin-bottom 下外边距 盒子模型
外边距可以让块级盒子水平居中
满足条件: 1、盒子有指定的宽度 2、盒子左右的边距设置为auto
margin:0 auto; margin:auto; margin-left:auto; margin-right:auto;
注意:
以上方法是让块级元素水平居中,行内元素或者行内块元素水平居中给其父元素添加text-align:center即可。
外边距合并-嵌套块元素塌陷
解决方案:
(1)、可以为父元素定义上边框 margin-top: 50px;
(2)、可以为父元素定义上内边框 margin-top: 50px;
(3)、可以为父元素添加overflow:hidden
如果想使得相同类型的div排列在一排呈现在界面,需要将其div 转换为行内块元素
圆角边框
参数可以为数值、百分比形式
左上角、右上角、右下角、左下角
盒子阴影
box-shadow 语法: box-shadow: h-shadow v-shadow blur spread color inset;
值 描述 h-shadow 水平阴影的位置 v-shadow 垂直阴影的位置 blur 模糊距离 spread 阴影的尺寸 color 阴影的颜色 inset 可选 将外部阴影(outset)改为内部阴影 1、浮动
标准流
1.块级元素独占一行 div hr p h1~h6 ul ol dl form table
2.行内元素会按照顺序从左到右排列,遇到父元素边缘则自动换行 span a i em
清楚浮动方法
额外标签法也称为隔墙法,
父级添加overflow属性 父级添加after伪元素 父级添加双伪元素
1、额外标签法 要求这个新的空标签必须是块级元素
父级添加overflow优缺点
优点 :代码简洁 缺点 无法显示溢出部分
2、父级添加after伪元素
因为伪元素是行内元素,所以需要转化为块内元素 .clearfix:after { content: ""; display: block; height: 0; clear: both; visibility: hidden; } .clearfix { /* IE6、7 专有 */ *zoom: 1; }
优点 :没有增添标签,结构更加简单 缺点: 照顾低版本浏览器
3、父级添加双伪元素
.clearfix:before, .clearfix:after { content: ""; display: table; } .clearfix:after { clear: both; } .clearfix { *zoom: 1; }
优点 代码更简洁 缺点:照顾低版本浏览器
清除浮动总结
为什么需要清除 1、父级没高度、子盒子浮动、影响下面布局,所以需要清除浮动。
清除浮动的方式 优点 缺点 额外标签法 通俗易懂,书写方便 添加许多无意义的标签,结构化差 父级添加overflow 书写方便 无法显示溢出部分(溢出隐藏) 父级添加after伪元素 代码更简洁 照顾低版本浏览器 兼容性问题 父级添加双伪元素 代码更简洁 照顾低版本浏览器 兼容性问题 头部制作
导航栏 采用li+a语义更加的清晰
导航栏里面的文字不一样多,最好给链接a左右padding撑开盒子,而不是指定宽度
右边的则 float:right
网站favicon图标
先将图标切为png图片,
把png图片转换为ico图标,这需要借助第三方转换网站,比特虫 https://www.bitbug.net/
将生成后的图标放到根目录,然后HTML页面引入favicon图标
-
- 、