CSS - 2
CSS - 2
CSS三大特性
1. 层叠性
样式冲突:元素的同一个样式名,设置了不同的值
如果发生了样式冲突,会根据一定的规则(选择器优先级),进行样式的层叠(覆盖)
2. 继承性
元素会自动拥有其父元素 或 其祖先元素上设置的某些样式
规则:优先继承离得近的
常见可继承属性:
text-?
, font-?
, line-?
, color
3. 优先级
!important > 行内样式 > ID选择器 > 类选择器 > 元素选择器 > * >继承的样式
div>p{ /* (0,0,2) */
}
/* 并集选择器的每一个部分分开计算 */
div,p{ /* (0,0,1) */
}
/* 等于 */
div{} /* (0,0,1) */
p{} /* (0,0,1) */
像素与颜色
rgb
.color1{
color: rgb(255,0,0);
}
.color2{
color: rgb(100%,0%,0%); /* 三个表示方法要统一 */
}
rgba
.color3{
color: rgba(255,0,0,0.5); /* 透明度:0(完全没有) - 1 */
}
.color4{
color: rgba(255,0,0,50%);
}
HEX与HEXA
.color5{
color: #ff0000; /* red */
}
.color7{
color: #ff000088; /* 半透明red */
}
.color8{
color: #f008; /* 半透明red */
}
不区分大小写
IE不支持HEXA
HSL与HSLA
color: hsl(色相, 饱和度, 明度);
色相 - 角度:0deg(红);360deg(红)

饱和度:0%(黑白);100%
亮度:0%;100%(一般写50%)
.color9{
color: hsl(0deg, 100%, 50%); /* red */
}
字体
字体大小
浏览器有默认字体大小,所以要给一个具体的值
Chrome:默认16px,最小12px(0不展示)
body{
font-size: 20px;
}
注意:
由于字体设计的原因,文字最终呈现的大小,并不一定与 font-size 的值一致,可能大也可能小
通常情况下,文字相对字体设计框并不是垂直居中的,通常靠下一些
字体族
.ff1 {
font-family: "微软雅黑"; /* 默认 */
}
.ff2 {
font-family: "微软雅黑","楷体","宋体"; /* 一个一个找 */
}
方便电脑寻找,兼容性更好 - 写英文
.ff3 {
font-family: "Microsoft Yahei"; /* 写英文 */
}
-
衬线字体:横竖撇捺棱角强烈
-
非衬线字体(网页中常用)
/* 写一类 */
.ff4 {
font-family: "HanziPen SC","STHupo","Microsoft Yahei",sans-serif;
}
sans-serif
: 找一个非衬线
serif
: 找一个衬线
字体风格
.fs1 {
font-style: normal;
}
.fs2 {
font-style: italic; /* 寻找设计的斜体,没有再强制将正常字体倾斜 */
}
.fs3 {
font-style: oblique; /* 强制将正常字体倾斜 */
}
推荐 italic
字体粗细
.fw1 {
font-weight: lighter; /* 100-300 */
}
.fw2 {
font-weight: normal; /* 400-500 */
}
.fw3 {
font-weight: bold; /* >600 */
}
.fw4 {
font-weight: bolder; /* 微软雅黑没有设计bolder */
}
.fw5 {
font-weight: 100; /* 100-1000,但设计字体的人不会这么细 */
}
字体符合属性
顺序:字体大小 - 倒数第二,字体族 - 最后
.f1 {
font: bold italic 100px "STCaiyun","Microsoft Yahei",sans-serif;
}
文本
文本颜色
color
文本间距
.ls1 {
letter-spacing: 20px;/* 字母间距(汉字√) */
}
.ls2 {
word-spacing: 20px;/* 单词间距(汉字×) */
}
.ls1 {
letter-spacing: -1px;/* 可以给负值 */
}
文本修饰
.td1 {
text-decoration: overline;
}
.td2 {
text-decoration: underline dotted red; /* 虚线(没有顺序要求) */
}
.td3 {
text-decoration: line-through wavy; /* 波浪线 */
}
.td4 {
text-decoration: none;
}
文本缩进
.ti {
font-size: 60px;
text-indent: 120px; /* 缩进2 */
}
文本对齐
div {
font-size: 20px;
background-color: orange;
text-align: center; /* left right */
}
文本属性
- 行高
line-height: 100px;
line-height: normal; /* 默认,浏览器会给一个合适的行高 */
line-height: 1.5; /* 1.5x40=60px */
line-height: 150%;
注意:
-
行高应该大于font-size,最小值为0,不能为负数
-
行高可以继承
<div id="hg">
hello, <span>world</span>!
</div>
#hg {
font-size: 40px;
line-height: 1.5;
}
span {
font-size:200px;
/* 继承: line-height: 1.5; 200x1.5=300 */
}
设置了 height
(容器高度),高度就是 height
的值;没有设置 height
,高度就是 line-height
(一行高度) * 行数
行高应用场景
-
多行文字的间距调整
-
单行文字的垂直居中
#d { font-size:40px; height:50px; line-height:50px; }
-
vertical-align
一个文字由如下四条线组成;行高由上边框+下边框+文字内容组成

通过vertical-align 控制图片和文字的垂直关系
模式 | 单词 |
---|---|
基线对齐:默认的是文字和图片基线对齐 | vertical-align: baseline; |
垂直居中:默认的是文字和图片基线对齐 | vertical-align: middle; |
顶部对齐:默认的是文字和图片基线对齐 | vertical-align: top; |

span {
font-size: 40px;
background-color: orange;
vertical-align: top; /* bottom baseline(默认值) middle */
}
注意:不能控制块元素
列表
列表属性
ul {
/* 列表符号 */
list-style-type: none; /* decimal 1.2.3. */
/* 列表符号的位置 */
list-style-position: outside; /* inside */
/* 自定义列表符号 */
list-style-image: url("../images/video.gif");
/* 复合属性(没有顺序) */
list-style: decimal inside url("../images/video.gif");
}
表格
边框属性
table {
/* 3个属性要全部设置才能显式边框 */
border-width: 2px;
border-color: green;
border-style: solid; /* dotted double */
/* 复合
border: 2px green solid*/
}
td, th {
border: 2px green solid
}
边框相关的属性,不仅表格能用,其它元素也能用
表格独有属性
table {
/* 控制表格列宽 */
table-layout: auto; /* auto默认(根据列宽内容计算) fixed(固定列宽 平均分) */
/* 控制单元格间距(前提:单元格不能合并) */
border-spacing: 0px;
/* 合并相邻单元格的边框 */
border-collaspe: separate; /* 合并:collapse */
/* 隐藏没有内容的单元格(前提:单元格不能合并) */
empty-cells: hide;
}
背景
div {
/* 设置背景图片 */
background-image: url(../images/img.jpg);
/* 设置背景图片的重复方式 */
background-repeat: repeat-x; /* repeat(默认) repeat-y no-repeat */
/* 控制背景图片的位置 */
background-position: left top;
/* background-position: 70px 120px */
}
鼠标
div {
cursor: poiter; /* move wait crosshair help */
}
常用长度单位
css中设置长度必须加单位
#d1 {
width: 200px;
height: 200px;
font-size: 20px;
background-color: skyblue;
}
/* em: 相对于当前元素或父元素的font-size倍数 */
#d2 {
width: 10em;
height: 10em;
font-size: 20px; /* 没有写font-size会一层一层向上找 */
font-indent: 2em; /* 缩进2 */
background-color: skyblue;
}
font-size=1em
找父元素的 font-size * 1
/* rem: 相对于根元素html的font-size的倍数 */
#d3 {
width: 10rem;
height: 10rem;
font-size: 20px;
}
/* %: 相对其父元素的百分比 */
.inside {
width: 50%;
height: 50%;
font-size: 150%; /* 30px */
}
元素的显式模式
块元素
-
独占一行,从上到下排列
-
默认宽度:撑满整个父元素
-
默认高度:由内容撑开
-
可以通过css设置宽高
主体结构标签
<html> <body>
排版标签
<h1>~<h6> <hr> <p> <pre> <div>
列表标签
<ul> <ol> <li> <dl> <dt> <dd>
表格标签
<table> <thead> <tbody> <tfoot> <tr> <caption>
标签标签
<form> <option>
<div>
行内元素
-
不独占一行,一行中容纳不下的元素,会在下一行从左到右排列
-
默认宽度:由内容撑开
-
默认高度:由内容撑开
-
不能通过css设置宽高
文本标签
<br> <strong> <em> <sub> <sup> <del> <ins>
<a> <label>
<span>
行内块元素
-
不独占一行,一行中容纳不下的元素,会在下一行从左到右排列
-
默认宽度:由内容撑开
-
默认高度:由内容撑开
-
可以通过css设置宽高
图片
<img>
表格单元格
<th> <td>
表单控件
<input> <textatea> <select> <button>
框架标签
<iframe>
修改元素的显式模式
div {
display: inline; /* block inline-block none */
}