CSS引入方式、选择器
css的引用方式
内联样式
<!-- 内联样式
所有标记 有公共的html属性 style 值为css的内容
<标记 style="css属性名:属性值;css属性名:属性值;">内容</标记>
缺点:html和css混淆在一起,单个设置样式麻烦
-->
<h1 style="color: red; 一级标题</h1>
<p>段落标记</p>
<p>段落标记</p>
<p>段落标记</p>
<h2>二级标题</h2>
<h2 style="color: blue">二级标题</h2>
<h2>二级标题</h2>
<h3 style="三级标题</h3>
内嵌样式(嵌入样式
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
<style>
/* ctrl+/ css注释 style标签中只能写css的内容 */
/*
css语法:
选择器{
属性名:属性值;
属性名:属性值;
}
*/
h2 {
color: aqua;
}
p {
}
</style>
</head>
<body>
<!-- html注释 -->
<h1>一级标题</h1>
<p>段落标记</p>
<p>段落标记</p>
<p>段落标记</p>
<h2>二级标题</h2>
<h2>二级标题</h2>
<h2>二级标题</h2>
<h3>三级标题</h3>
</body>
</html>
外联样式(链接样式)
实现了html和css的分离
-
单独新建css文件,index.css
-
在html页面引入css文件
css/index.css
/* 此处只能写css的内容
选择器{
属性名:属性值;
属性名:属性值;
}
*/
h1 {
color: red;
}
p {
color: yellow;
}
h2 {
color: blueviolet;
}html页面引入
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
<!-- 引入css文件 rel不能省略 -->
<link href="./css/index.css" rel="stylesheet" />
</head>
<body>
<h1>一级标题</h1>
<p>段落标记</p>
<p>段落标记</p>
<p>段落标记</p>
<h2>二级标题</h2>
<h2>二级标题</h2>
<h2>二级标题</h2>
<h3>三级标题</h3>
</body>
</html>
选择器
元素(标签)选择器
<!-- 内嵌样式 -->
<style>
/* 元素 (标签)选择器:以标签名作为选择器
给所有的h2标签添加样式
*/
h2 {
color: red;
}
p {
color: yellow;
}
</style>
</head>
<body>
<h2>二级标题</h2>
<h2>二级标题</h2>
<h2>二级标题</h2>
<h2>二级标题</h2>
<h2>二级标题</h2>
<p>段落标记</p>
<p>段落标记</p>
<p>段落标记</
id选择器
id的值唯一的,每一个标签都有id属性,id属性是公共的属性
<style>
/* 2使用id选择器添加样式
#id值{属性名:属性值;}
*/
#one {
color: red;
}
#two {
color: yellow;
}
</style>
</head>
<body>
<!-- 1:给标签添加id属性,id的值自定义并且唯一 -->
<h2>二级标题</h2>
<h2 id="one">二级标题</h2>
<h2>二级标题</h2>
<h2>二级标题</h2>
<h2 id="two">二级标题</h2>
<p>段落标记</p>
<p>段落标记</p>
<p>段落标记</p>
</body>
类选择器
每个标签共有的属性class
语法
<style>
.类名{
color:red;
}
</style>
<p class="类名">段落标记</p>
//多个类样式之间用空格隔开
<p class="类名1 类名2">段落标记</p>
复合选择器
后代选择器
后面的选择器是前面选择器的后代,选择器之间用空格隔开
.out .inner p {
color: palevioletred;
}
<div class="out">
<div>
<div class="inner">
<p>段落标记</p>
</div>
</div>
</div>
子代选择器
后面选择器是前面选择器的儿子,选择器之间用 > 隔开
.out > .one > .inner {
width: 100px;
height: 100px;
}
<div class="out">
<div class="one">
<div class="inner">
<p>段落标记</p>
</div>
</div>
<p>段落标记</p>
<div class="inner">inner</div>
</div>
群集选择器
<style>
/* .one {
color: red;
}
.two {
color: red;
}
和下面的是等价的
*/
.one,
.two {
color: red;
}
</style>
</head>
<body>
<div class="one">sssssss</div>
<div class="two">two</div>
</body>
优先级
引入方式的优先级
内联样式优先级最高, 内嵌样式 和外联样式使用的是就近原则
选择器的优先级
!important >id选择器(100)> 类选择器(10)>元素选择器(1)
<style>
/* !important >id选择器(100)> 类选择器(10)>元素选择器(1) */
.main {
color: red;
}
#one {
color: blue;
}
div {
color: yellow !important;
}
</style>
</head>
<body>
<div id="one" class="main">我是div标记</div>
</body>
复合选择器优先级
<style>
/*11 */
.one p {
color: red;
}
/* 21 */
.one > .active > p {
color: yellow;
}
/* 1 */
p {
color: blue;
}
/* 11 */
.active > p {
color: blueviolet;
}
</style>
</head>
<body>
<div class="one">
<div class="active">
<p>我是p标记</p>
</div>
</div>
</body>
类和id的区别
-
类名和id属性值的区别
-
类名相当于名字,可以重复,一个标签可以有多个class类名
-
id相当于身份证,不可重复,一个标签只能有一个id属性值
-
-
书写区别
-
类选择器以 .开头
-
id选择器以#开头
-
-
开发
类选择器用的最多
id选择器一般和js结合使用
通配符选择器
找到页面中所有的标签,设置样式
语法
*{
属性名:属性值
}
代码
* {
margin:0;
}