第一篇例码
第三篇例码

字体颜色:color: pink;


字体大小:font-size: 20px;


块宽度:width: 100px;

块高度:height: 100px

注意:
若块未规定宽度,则默认等于浏览器宽度
宽度、高度为百分数时,则为父级块/浏览器的宽度、高度的百分比
对span/em/a/strong等行内盒子不起作用


块背景颜色:
background-color: black;
background-color: #fff;
background-color: rgba(255, 255, 0, 0.5;(0透,1实));


字体族:font-family: Arial, Helvetica, sans-serif;


字体风格:font-style: italic;(倾斜,或normal不倾斜)


字体粗细:font-weight: 700/bold;(标准粗度,或400/normal标准细度;范围100~900,无需写px) <h>标签的内容的大小、粗细须指定才能修改,泛指无法修改


字体装饰:text-decoration: none;(取消所有装饰,或underline下划线/overline上划线/line-through删除线)


块级文本水平方向对齐:text-align: center;(居中,或left左对齐/right右对齐/justify两端对齐)


块级文本缩进:text-indent: 20;
20、20px、20em均可;em指当前文本字体大小下的相对缩进单位


字间距:letter-spacing: 2px;(可负值)


行高:line-height: 20px;
有无px单位均可;无单位则为当前文本字体大小下的倍数

文字仅为单行时,行高=块级文本框高度时,文字有居中效果


font简写格式:font: font-style font-weight font-size/line-height font-family;
(记忆:字体、大小、粗细、斜体倒序)
font-size、font-family必须,其他省略则为默认


合并table的双线边框:border-collapse;
变为单线框


form表单控件的黑色外框线:outline: none;
去除外框线


基础选择器


类型(标签)选择器

p {
color: red;
}
所有<p>标签内的字体都变红

类选择器

.box {
color: red;
}
所有标签内,类名class为box的字体都变红

注意:
类名不能是中文、纯数字
类名可对应多个项目
每个标签内class可有多个类名:<div class="namecar">benz</div>


id选择器

#header {
color: red
}
所有标签内,id为header的字体都变红

注意:
不能是中文、纯数字
每个id只能使用对应一个项目,相当于该项目的编号
id只能有一个类名(无法使用空格)<p id="testcolor">测试</p>


通配符选择器:

* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
所有<p>标签内的字体都变红

关系选择器


后代选择器

.box p {
color: red;
}
所有类名为box中,所有后代中的<p>标签内的字体都变红
可多层:
nav .box p{
color: red;
}
nav类型中类名为box的所有后代中的<p>标签内的字体都变红,非nav中的box、nav中的非box的<p>标签内的字体不变红

子代选择器

.box>p{
color: red;
}
类名为box的下一层中,<p>标签内的字体都变红

注意:
类名不能是中文、纯数字
类名可对应多个项目
每个标签内class可有多个类名:<div class="namecar">benz</div>


邻接兄弟选择器

h2+p {
color: red;
}
同级标签中,紧跟在<h2>后面的第一个<p>标签内的字体变红,若中间夹有其他标签则不生效

通用兄弟选择器:

h2~p {
color: red;
}
同级标签中,紧跟在<h2>后面的所有<p>标签内的字体变红

分组选择器


并集选择器

div,
.box {
color: red;
}
所有<div>标签内的和所有<.box>标签内的字体变红

伪类选择器

元素和选择器标签中的:冒号不能有空格


状态伪类


链接伪类

一定要按LVHA从上到下,不能乱

未访问链接:
a:link {
color: red;
text-decoration: none;
}
所有未访问的超链接字体红色、无下划线


已访问链接:
a:visited {
color: purple;
text-decoration: none;
}
所有未访问的超链接字体紫色、无下划线


鼠标悬停:
a: hover {
color: red;
text-decoration: underline;
}
所有未访问的超链接字体红色、下划线


鼠标点击:
a:active {
color: orange;
text-decoration: none;
}
所有未访问的超链接字体橙色、无下划线


用户行为伪类

鼠标经过元素:
.box: hover {
background-color: red;
width: 100px;
}
鼠标划过类名为.box的色块时,改变颜色、宽度


获得焦点元素(表单待输入状态):
.box:focus {
background-color: red;
width: 100px;
}
点击类名为.search的色块时,改变颜色、宽度


结构伪类

对于混合同级标签,代码不会根据所需标签名及相对位置自动跳过,此处的n应该是所需标签在同级所有标签中的绝对序号,见详例

同级元素中的第一个元素:
ul li:first-child {
color: red;
}
ul列表里面的第一项字体变红


同级元素中的最后一个元素:
ul li:last-child {
color: red;
}
ul列表里面的最后一项字体变红


同级元素中的第n个元素:
ul li:nth-child(5) {
color: red;
}
ul列表里面的第五项字体变红
注意:n可代表:
①实际值(须正整数)
②关键字
odd为奇数
even为偶数
③公式,此时n从0开始计算
xn为第x、2x、3x个元素
n+x为第x个开始的所有元素
-n+x为前x个元素


表单伪类

表单禁用:
button:disabled {
background-color: red;
}
若<form>中button按钮设置了禁用,此时该按钮默认为此处设定的颜色
其他属性:opacity:该块级元素中所有内容的透明度(0透-1实)


表单选中:
input checkbox:checked {
background-color: red;
}
若<form>中checkbox按钮设置了点击文本也可聚焦,此时选中后,聚焦处的文字变成此处设定的颜色


伪元素选择器

见详例(略拓展)

伪元素和选择器标签中的::冒号不能有空格


选择特定部分

首行:
.qtext::first-line {
color: red;
}
.qtext的文本的第一行文字为红色(该文本块在浏览器中的实际显示的第一行内容)


首字母:
.qtext::first-letter {
color: red;
}
.qtext的文本的第一个字为红色


插入内容

在前面插入:
.box::before {
content: "哈哈";
color: red;
}
.box的前面插入红色的“哈哈”
注意:无内容时要写content=""(必须要有content指令),单双引号均可


在后面插入:
.box::after {
content: "哈哈";
color: red;
}
.box的后面插入红色的“哈哈”
注意:无内容时要写content=""(必须要有content指令),单双引号均可



属性选择器

见详例(略拓展)

值不能为纯数字,且最好加上双引号


包含指定元素:
a[class] {
color: red;
}
有class属性的链接a的字体为红


包含指定字符的元素:
a[class="tex"] {
color: red;
}
class为tex的链接a的字体为红(全字符匹配);class为其他字符的不变


以指定字符开头的元素:
a[class=^"go"] {
color: red;
}
class以go开头的链接a的字体为红,以其他字符开头的不变


以指定字符结尾的元素:
a[class=$"ha"] {
color: red;
}
class以ha结尾的链接a的字体为红,以其他字符结尾的不变


任意位置包含指定字符的元素:
a[class=$"ha"] {
color: red;
}
class包含ha的链接a的字体为红


继承性

从更高级继承下来的属性,及通配符*,权重值为0


边框


边线样式

border: 粗细 样式 颜色;

如:
.box {
border: 1px solid(实线) red;
}

.table {
border: 2px dashed(点) #f1f1f1;
}

.p {
border: 2px dashed(虚线) rgba(255, 150, 200, 0.25);
}

边框位置

见详例

border-top/bottom/left/right: 粗细 样式 颜色;

如:
.box {
border-right(右): 1px solid red;
}

边框圆角

border-radius: 大小 (大小) (大小) (大小);(单位px/n%)

如:
.box {
border-radius: 20px;
}

.p {
border-radius: 50%;
}

胶囊圆角仅需将大小设置为矩形短边的50%

图片也可设置

值不足4位(可以0占位)的以顺时针对角的顺序填充,空格隔开


内边距

(与内部内容的距离)

简写:padding: 大小 (大小) (大小) (大小);
分写:padding-top/bottom//left/right: 大小;
(单位px)

如:
.box {
padding: 20px(上、下) 15px(左、右);
}

.box {
padding: 20px(上) 10px(左、右) 15px(下);
}

值不足4位(可以0占位)的以顺时针对边的顺序填充,空格隔开

.p {
padding-left(左): 50px;
}


外边距

(与外部内容的距离)

简写:marin: 大小 (大小) (大小) (大小);
分写:margin-top/bottom/left/right: 大小;
(单位px)

如:
.box {
margin: 20px(上、下) 15px(左、右);
}

.box {
margin: 20px(上) 10px(左、右) 15px(下);
}

值不足4位(可以0占位)的以顺时针对边的顺序填充,空格隔开

.p {
margin-left(左): 50px;
}

注意:
对span/em/a/strong等行内元素的上下外边距无效


水平居中:
marin: 0 auto;

margin: auto;

margin-left: auto;(仅该条时,盒子靠右)
margin-right: right;(仅该条时,盒子靠左)


并列元素的外边距折叠问题:由较大值控制, 见PPT

嵌套块级元素的外边距塌陷问题的解决:父级添加上边框/上内边距/overflow: hidden, 见PPT


尺寸计算

box尺寸随内容增加而变化,可能超过100px:
.box {
width: 100px;
height: 100px;
box-sizing: content-box;
}

box尺寸不随内容增加而变化,从边框开始计算始终为设定的宽、高:
.box {
width: 100px;
height: 100px;
box-sizing: border-box;
}

背景基础属性

.box {
width: 500px;
height: 500px;

background-color: pink;(颜色)

background-image: url(此处为连接,如./黑马复习/a.jpg);(盒子插入图片)

background-repeat: repeat/no-repeat/repeat-x/repeat-y;(图片是否重复)

background-position: x y/center center/50% 50%;(图片位置,只写一个方位时,y默认center)

background-size: cover(填充长边,覆盖色块)/contain(短边填充)/20px 10px/50% 50%;(图片位置,只写一个px或%时,默认等比例缩放)

background-attachment: scroll(随盒子移动)/fixed(不随盒子移动)注意:当background-position使用方位时,如果background-attachment为fixed,则位置是相较于浏览器的视口固定的,而不是.box元素

复合写法:background: 颜色 图片 重复 固定 位置/尺寸;(可乱序,位置尺寸之间须/)

}
见详例:滚动视差
注意css中的html, body样式指令

背景渐变

线性渐变(方向可控):background(-image): liner-gradient: (to 方向, 颜色 百分比, 颜色 百分比);(可多个颜色)

径向渐变(形状、位置可控):background(-image): radical-gradient: (形状(at 位置), 颜色 百分比, 颜色 百分比);(可多个颜色)

当需要在文字渐变的同时,填充背景时,需要使用嵌套,见详例

阴影

.box {
box-shadow: (inset(内阴影必要此指令)) x轴偏移量(必要) y轴偏移量(必要) 模糊半径 扩散半径 颜色;
}

过渡

.box {
transition: 过渡属性(如box-shadow/box-sizing/默认所有all) 时间s;
}

样式初始化

重置盒模型

* {
margin: 0;
padding: 0;
box-sizing: border-box;
}


重置列表样式

ul,
ol {
list-style: none;
}


重置链接样式

a {
text-decoration: none;
}


最佳实践

中大型项目: Normalize.css


案例-小米卡片

注意:
块级元素中,单行文字溢出无法完全显示、需省略时,可如下(本案例):
.p {
white-space: no-warp;(不换行)
overflow: hidden;(隐藏超出元素的内容)
text-overflow: ellipsis;(超出元素的文本使用省略号代替)
}


块级元素中,多行文字溢出无法完全显示、需省略时,可如下:
.p {
display: -webkit-box;(旧版弹性盒子布局)
-webkit-box-orient: vertical;(内容垂直排列)
overflow: hidden;(隐藏超出元素的内容)
text-overflow: ellipsis;(超出元素的文本使用省略号代替)
-webkit-line-clamp: n;(第n行显示省略号)
}


案例-淘宝导航

字体图标库

添加步骤:
1.挑选if,下载代码,将文件夹解压至网页根目录
2.html代码的<head>中添加<link rel="stylesheet" href="文件路径">
3.打开demo_index.html,在Font Class中查看引用名称
4.在需要处添加<span class=" iconfont 引用名称"></span>(除span外,i也可)
5.在css中修改if的大小、颜色等属性(注意权重)


精灵图

操作步骤:
1.将图片在ps网站上打开
2.点击左下角放大镜调整大小位置
3.点击左上角裁剪工具,并点击右侧信息
4.将光标定于所需部分的左上角,在信息栏查看宽、高、x、y
5.在css中使用background-image导入图片,根据获取的信息,使用background-position调整图片位置 注意position移动方向的正负值