前端 - CSS基础知识
目录CSS文档
- CSS简介
- CSS语法规范
- CSS基础选择器
- 标签选择器
- 类选择器
- 使用类选择器画盒子
- id选择器
- 通配符选择器
- CSS设置字体
- 字体
- 字体大小
- 字体粗细
- 字体样式(斜体)
- 字体复合属性
- CSS文本属性
- 文本颜色
- 文本对齐
- 装饰文本
- 文本缩进
- 行间距
- CSS引入方式
- 行内样式表(内联式)
- 内部样式表(嵌入式)
- 外部样式表
- CSS复合选择器
- 后代选择器
- 子选择器
- 并集选择器
- 伪类选择器
- 链接伪类选择器
- focus伪类选择器
- CSS元素显示模式
- 块元素
- 行内(内联)元素
- 特殊元素
- 显示模式转换
- CSS的背景
- 背景颜色
- 背景图片
- 背景图片平铺
- 背景图片位置
- 方位名词
- 精确单位
- 混合单位
- 背景图像固定
- 复合写法
- CSS3背景颜色半透明效果
- CSS三大特性
- 层叠性
- 继承性
- 行高的继承
- 优先级
- 优先级需要注意的问题
- 权重的叠加
CSS简介
层叠样式表 (Cascading Style Sheets,缩写为 CSS),是一种 样式表 语言,用来描述 HTML 或 XML(包括如 SVG、MathML、XHTML 之类的 XML 分支语言)文档的呈现。CSS 描述了在屏幕、纸质、音频等其它媒体上的元素应该如何被渲染的问题。
CSS主要用于HTML页面中的:
- 文本内容:字体、大小、对齐方式等。
- 图片的外形:宽高、边框样式、边距等。
- 版面的布局和外观显示样式。
HTML负责结构呈现,CSS负责样式。
CSS语法规范
CSS规则由两个主要部分构成:选择器和一条或多条声明。
Document
Test CSS.
Hello.
- CSS可以写在
中的
标签内,块内注释使用
/* */
。 - 选择器用来指定CSS样式的HTML标签,花括号内是对该对象设置的具体样式。
- 属性和属性值以键值对形式表示,用
:
分开,以;
结尾。
CSS基础选择器
CSS选择器可以分为:
- 基础选择器:由单个标签组成。
- 标签选择器
- 类选择器
- id选择器
- 通配符选择器
- 复合选择器
标签选择器
把某一类标签全部选择出来,参考上面的代码。
类选择器
用来选择一个或多个标签,用.
表示。
Test CSS.
Hello.
注意:
- 类名单词之间用
-
分割 - 一个标签可以同时是多个类,多个类名之间用空格分割,例如
class="video-desc report-wrap-module report-scroll-module"
- 尽量使用纯英文命名类
使用类选择器画盒子
id选择器
用来选择唯一的有特定id的HTML元素,用#
表示。
- 类选择器主要用来选择样式
- id选择器用于选择页面上的唯一元素,经常搭配JS使用
Hello
通配符选择器
CSS使用*
表示选择页面中的所有元素,包括,
等。
例如清除所有元素标签的内外边距:
CSS设置字体
CSS font属性可以用来定义字体、大小、粗细和文本样式(斜体)等。
字体
属性font-family
定义字体。注意:
- 各种字体用
,
隔开 - 如果字体有空格,需要加引号
字体大小
属性font-size
定义字体大小。注意:
- px(像素)是最常用的单位
- Chrome默认字体是16px,不同浏览器可能默认字体大小不一致,尽量写清字体的大小
- 声明
body
的字体会改变整个页面文字的大小等标题标签除外,需要单独设置
字体粗细
属性font-weight
定义字体的粗细。font-weight参考
默认值为normal
,不加粗,bold
加粗。也可使用100~900的数值,其中400等同于normal
,700等同于bold
。
字体样式(斜体)
属性font-style
定义字体是否倾斜,normal
为正常,italic
为倾斜。
- 在实际开发中很少使用
italic
,更经常使用normal
用来给标签的文字改为不倾斜。
字体复合属性
注意:
- 必须严格按照顺序写,各个属性之间用空格隔开
- 可省略一些属性(取默认值),但必须保留
font-size
和font-family
属性,否则font
属性不起作用
CSS文本属性
文本颜色
属性color
定义文本的颜色。
表示方式 | 属性值 |
---|---|
预定义颜色值 | color:red; |
十六进制 | color: #ff0000; |
RGB | color: rgb(255, 0, 0); 或color: rgb(100%, 0%, 0%); |
文本对齐
属性text-align
设置元素内文本的水平对齐方式。默认左对齐left
、右对齐right
、居中对齐center
。
装饰文本
属性值 | 描述 |
---|---|
none |
默认,没有装饰线(最常用) |
underline |
下划线, 标签自带下划线 |
overline |
上划线(不常用) |
line-through |
删除线(不常用) |
文本缩进
单位可以是像素px,也可以是相对大小em,即当前元素一个文字的大小。
你好吗
你好吗
qweqwe
行间距
一行文字分为上间距、文本高度、下间距,如果font-size
和line-height
设置如下,则上间距为5px、文字高度为16px、下间距为5px。
- 如果
font-size
和line-height
的值相同,则上间距与下间距的值为0 - 想实现文字垂直居中的效果,可以让行间距和高度的值相等,即
height
和line-height
相等
CSS引入方式
行内样式表(内联式)
- 在
sytle
属性中写CSS样式 - 引号中的内容要符合CSS规范,即
key: value;
的格式
你好吗你好吗你好吗
qweqwe
效果如下:
你好吗你好吗你好吗 qweqwe
内部样式表(嵌入式)
这是之前一直在用的方式,将CSS代码单独放到一个标签中,写在HTML文件内部。
- 理论上来说可以放在HTML文档的任何位置,但是一般放在
标签中
外部样式表
- 新建一个
.css
,把所有CSS代码放进去(不需要
标签) - 在HTML页面中使用
标签引入
.css
文件。
CSS复合选择器
复合选择器就是由2个或以上的基础选择器,通过不同的方式组合而成的。
后代选择器
ol li {
color: blue;
}
ol a {
color: red;
}
- ol的li
- ol的li
- test ol的li
子选择器
- 只能选择儿子元素
- 使用
>
隔开
.nav>a {
text-decoration: none;
color: red;
}
此时只有son
没有下划线且为红色。
并集选择器
选择多组标签,定义相同的样式。
- 使用
,
隔开 - 推荐竖着写
- 可使用任何形式的选择器
ul>li,
div a {
color: royalblue;
}
- ul的li
- ul的li
- ul的li
伪类选择器
- 使用
:
表示
链接伪类选择器
注意要按顺序写:
/* 未访问过的链接 */
a:link {
color: #333;
text-decoration: none;
}
/* 已经访问过的链接 */
a:visited {
color: orange;
text-decoration: underline;
}
/* 鼠标悬停的链接 */
a:hover {
color: red;
text-decoration: underline;
}
/* 鼠标正在按下没有松开的链接 */
a:active {
color: green;
text-decoration: underline;
}
focus伪类选择器
选择获得焦点(光标)的表单元素,一般来说,标签才能获取光标。
input:focus {
background-color: red;
color: gray;
}
CSS元素显示模式
HTML元素可以分为块元素和行内元素。
块元素
注意: 注意: 有些特殊的元素,例如: 显示效果如下: 百度 默认的 背景图片默认是平铺的,可以设置 修改图片在背景中的位置: 参数表示:x坐标和y坐标,可以使用方位名词或者精确单位。 如果是方位名词,则 如果是精确单位,则 如果是混合单位,则一定是第一个是x轴,第二个是y轴,例如 设置 背景的复合写法没有规定顺序,一般来说按照如下顺序来写: 只对背景颜色有效。 最后一个参数是alpha透明度,1表示不透明。 当相同选择器设置同一个属性时,会产生冲突,靠后的样式会覆盖其他样式。例如下面的代码,Test会显示粉色。 子标签会继承父标签的某些样式: 例如之前在 I am p 此时 当一个元素被多个选择器选择,会产生优先级。 I am p I am p I am p I am p I am p 标签颜色从上到下依次为:红、蓝、黄、绿、黑、粉。 复合选择器会产生权重的叠加,例如:~
,
,
,
, 等。主要特点有:
和
~
里面不能放块级元素
行内(内联)元素
是最典型的行内元素,常见的还有:
,
,
,
,
等。主要特点有:
之间就会有一定空隙特殊元素
, ,
等,同时具有块元素和行内元素的特点,有些资料称他们为行内块元素。其主要特点有:
显示模式转换
display: block;
display: inline;
display: inline-block;
百度
.search {
background-color:skyblue;
text-decoration: none;
display: inline-block; /* 转换为行内块元素 */
height: 30px;
width: 100px;
}
CSS的背景
背景颜色
background-color
值是transparent
,即透明的。div {
background-color: pink;
}
背景图片
background-image
的特点是比
标签更方便控制位置,所以一般用于:
div {
height: 300px;
width: 300px;
background-image: url(images/logo.png);
}
背景图片平铺
background-repeat
的值为no-repeat
, repeat
, repeat-x
, repeat-y
,来使得背景图片不平铺、平铺、仅在水平方向平铺、仅在垂直方向平铺。背景图片位置
div {
height: 300px;
width: 300px;
background-image: url(images/logo.png);
background-position: 10px 10px;
}
参数值
说明
方位名词
垂直方向有
top
精确单位
浮点数字+单位标志符 或 百分比
方位名词
background-position: left top;
,则两个值顺序无所谓,其效果和top left
相同background-position: left;
,则默认第二个值为center
精确单位
混合单位
background-position: center 10px;
指水平居中,y轴方向偏移10像素。背景图像固定
background-attachment
的值为scroll或fixed
来使背景图像随着页面滚动而滚动或固定。background-attachment: fixed;
复合写法
.logo {
height: 300px;
width: 300px;
background: pink url(images/logo.png) no-repeat scroll center left;
}
CSS3背景颜色半透明效果
background: rgba(1, 1, 1, 0.3)
CSS三大特性
层叠性
div {
color: skyblue;
}
div {
color: pink;
}
继承性
标签中设置字体样式,如果子标签没有设置相关样式,则直接继承
的样式。
行高的继承
font-size
乘以行高倍数
body {
font: 14px/1.5 monospace;
}
div {
font-size: 18px;
}
li {
font-size: 20px;
}
标签、
标签都继承了
标签的行高,而
标签行高为14px*1.5=21px,
标签行高为30px。
优先级
选择器
权重
继承或
*
(0, 0, 0, 0)
元素选择器
(0, 0, 0, 1)
类选择器、伪类选择器
(0, 0, 1, 0)
id选择器
(0, 1, 0, 0)
行内样式
style=""
(1, 0, 0, 0)
!important
重要的无穷大
body {
color: red;
}
p {
color: skyblue;
}
.test {
color: yellow;
}
#demo3{
color: pink!important;
}
#demo, #demo2, #demo3 {
color: green;
}
优先级需要注意的问题
标签蓝色、下划线的样式,
标签字体和加粗的样式,此时由于继承的权重为(0, 0, 0, 0),是无法覆盖默认样式的,必须是权重(0, 0, 0, 1)以上的选择器
权重的叠加
div ul li
权重为(0, 0, 0, 1).nav ul li
权重为(0, 0, 1, 2)a:hover
权重为(0, 0, 1, 1).nav a
权重为(0, 0, 1, 1)相关