CSS 基本介绍一
目录
- [CSS 基本介绍一](#CSS 基本介绍一)
css是网页设计的核心语言,负责将枯燥的HTML变得丰富多彩,本文将介绍css的一些用法。
一.快速入门
1.练习模式:
2.只需3步即可让HTML焕然一新:
html
<!-- 1. 创建HTML结构 -->
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<!-- 2. 添加style标签
规范,<style>可以编写css的代码
语法:选择器{
声明1;
声明2;
声明3;
}
-->
<style>
/* 3. 编写CSS规则 */
h1{
color: red;
}
</style>
</head>
<body>
<h1>我是标题1</h1>
</body>
</html>
效果如下:
二、CSS优势
- 内容和表现分离
- 网页结构表现统一,可以实现复用
- 样式十分丰富
- 建议使用独立于html的css文件
- 利用SEO,容易被搜索引擎收录
三、四种导入方式
方式 | 示例 |
---|---|
行内样式 | <p style="color:red"> |
内部样式 | <style>p{color:red}</style> |
外部样式 | <link href="style.css" rel="stylesheet"> |
@import导入 | @import url('style.css'); |
1.若有多个导入样式,遵循就近原则
2.大型项目优先使用外部样式表
四、核心选择器详解
1. 三大基本选择器
选择器优先级:ID > 类 > 标签
标签选择器
**页面里直接用HTML标签名(比如<p>
、<div>
)当选择器,能选中页面里所有这个标签的元素。比如用<p>
当选择器,页面里所有段落都会被选中。
css
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
/*标签选择器,可以选择页面上所有的这个标签的元素*/
h1{
color : #19e5d2;
background: #3636d2;
border-radius: 24px;
}
p{
font-size:80px;
}
</style>
</head>
<body>
<h1>内容1</h1>
<h1>内容2</h1>
<p>内容3</p>
</body>
</html>
效果如下:
类选择器
类选择器:给元素起个"类别名"(用class="类名"定义),选择时用.类名,能选中所有带这个类名的元素。
一个类名可以给多个元素用,一个元素也能有多个类名。
html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
/*类选择器的格式 .class的名称{}
好处:可以复用*/
.q{
color: deeppink;
}
.a{
color: rgba(12, 211, 211, 0.71);
}
</style>
</head>
<body>
<h1 class="q">标题1</h1>
<h1 class="a">标题2</h1>
<h1 class="q">标题3</h1>
</body>
</html>
效果如下:
id选择器
给元素起个"唯一名字"(用id="id名"定义),选择时用#id名,一个id在页面里只能用一次,只能选中一个元素,必须保证全局唯一
html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<!-- id选择器,必须保证全局唯一-->
<style>
#q{
color:#19e5d2;
}
</style>
</head>
<body>
<h1 id="q">标题1</h1>
<h1>标题2</h1>
<h1>标题3</h1>
<h1>标题4</h1>
<h1>标题5</h1>
</body>
</html>
效果如下:
2.层次选择器
后代选择器:在某个元素后面
用空格连接两个选择器,比如div p,选中div里所有的p标签,不管是儿子、孙子还是更深层的都算。
html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
/*后代选择器*/
body p{
background: #3636d2;
}
</style>
</head>
<body>
<p>p1</p>
<p class="active">p2</p>
<p>p3</p>
<ul>
<li>
<p>p4</p>
</li>
<li>
<p>p5</p>
</li>
<li>
<p>p6</p>
</li>
</ul>
<p class="active">p7</p>
<p>p8</p>
</body>
</html>
如下:
子选择器:一代
用>连接两个选择器,比如body > p,只选中body直接包含的"亲儿子"p标签,孙子辈的p不算。
html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
/*子选择器*/
body>p {
background: red;
}
</style>
</head>
<body>
<p>p1</p>
<p class="active">p2</p>
<p>p3</p>
<ul>
<li>
<p>p4</p>
</li>
<li>
<p>p5</p>
</li>
<li>
<p>p6</p>
</li>
</ul>
<p class="active">p7</p>
<p>p8</p>
</body>
</html>
相邻兄弟选择器:同辈,只有一个 ,相邻(向下)
用+连接,比如.active+p,选中紧挨着.active标签后面的那个p(必须是同一个父元素下,且紧挨着)
html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
/*相邻兄弟选择器,只有一个 ,相邻(向下)*/
.active+p{
background:#19e5d2;
}
</style>
</head>
<body>
<p>p1</p>
<p class="active">p2</p>
<p>p3</p>
<ul>
<li>
<p>p4</p>
</li>
<li>
<p>p5</p>
</li>
<li>
<p>p6</p>
</li>
</ul>
<p class="active">p7</p>
<p>p8</p>
</body>
</html>
如下
通用兄弟选择器,当前元素中向下的所有兄弟元素
用连接,比如.activeP,选中.active标签后面所有同层级的p(同一个父元素下,不用紧挨着)。
html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
/*通用兄弟选择器,当前元素中向下的所有兄弟元素*/
.active~P{
background: #3636d2;
}
</style>
</head>
<body>
<p>p1</p>
<p>p2</p>
<p>p3</p>
<ul>
<li>
<p>p4</p>
</li>
<li>
<p>p5</p>
</li>
<li>
<p>p6</p>
</li>
</ul>
<p class="active">p7</p>
<p>p8</p>
</body>
</html>
效果如下:
3.属性选择器
根据元素的属性来选,比如input[type="text"],选中所有type属性是text的输入框;a[href]选中所有带href属性的链接。
html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
/*属性选择器*/
.demo a{
float: left;
display:block;
height: 50px;
width: 50px;
background: #0eecd7;
border-radius: 10px;
text-align: center;
color: #ce0b5d;
}
/*
存在id属性的元素 a[]{}
*=包含这个元素
^=以这个开头
$=以这个结尾
*/
a[id]{
background: #ce0b5d;
}
a[class*="links"]{
background: red;
}
</style>
</head>
<body>
<p class="demo"></p>
<a href="https://www.baidu.com" class="links item first" id="first">1</a>
<a href="" class="links item active" target="_blank" title="test">2</a>
<a href="image/123.html" class="links item">3</a>
<a href="image/123.png" class="links item">4</a>
<a href="image/123.jpg" class="links item">5</a>
<a href="abc" class="links item">6</a>
</body>
</html>
如下
五.字体样式
1.span标签
一个"小容器"标签,本身没啥样式,主要用来包裹一小段文字或内容,方便单独设置样式(比如给一句话里的几个字改颜色),不像div会换行。
html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
#title1{
font-size:50px;
}
</style>
</head>
<body>
欢迎学习<span id="title1">标签</span>
</body>
</html>
效果如下:
2.字体样式
控制文字本身的样子
html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<!-- font-family:字体
font-size:字体大小
font-weight;字体粗细
color:字体颜色-->
<style>
body{
font-family: Zapfino;
color: #0be3c3;
}
h1{
font-size:50px;
}
.p1{
font-weight: bold;
}
</style>
</head>
<body>
<h1>背景故事</h1>
<p class="p1">
2034年,人类首次接收到来自宇宙深处的讯息。这段来自深空文明的讯息并未能够被完整破译,这激发了人们对于宇宙和未知文明探索的好奇心,也衍生了各种有关于深空的传说,甚至影响了未来几十年人类历史的发展。 [2]
世界观</p>
<p>
Evol:只体现在少数人身上的特殊能力。拥有Evol的极少数人被称为Evolver,即超进化人类。超前的自然进化的基因使得Evolver的某方面能力得到强化,超越一般人类。经过数百年的变迁,Evol的存在已经不是秘密。被提取并运用到生活各方面中的Evol基因,也在进一步改变世界。 [2]
</p>
</body>
</html>
3.文本样式
控制文字整体的排版和外观
html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<!--颜色:
单词
RGB 0~F
RGBA A:0~1
text-align:排版,居中
text-indent:2em; 段落首行缩进
行高和块的高度一致,就可以上下居中
text-decoration: underline下划线
text-decoration: line-through中划线
text-decoration: overline上划线
-->
<style>
h1 {
color:red;
text-align: center;
}
p1{
text-indent: 2em;
}
p2{
background: #19e5d2;
height:300px;
line-height:300px;
}
.l1{
text-decoration: underline;
}
.l2{
text-decoration: line-through;
}
.l3{
text-decoration: overline;
}
</style>
</head>
<body>
<h1>背景故事</h1>
<p class="p1">
2034年,人类首次接收到来自宇宙深处的讯息。这段来自深空文明的讯息并未能够被完整破译,这激发了人们对于宇宙和未知文明探索的好奇心,也衍生了各种有关于深空的传说,甚至影响了未来几十年人类历史的发展。 [2]
世界观</p>
<p class="p2">
Evol:只体现在少数人身上的特殊能力。拥有Evol的极少数人被称为Evolver,即超进化人类。超前的自然进化的基因使得Evolver的某方面能力得到强化,超越一般人类。经过数百年的变迁,Evol的存在已经不是秘密。被提取并运用到生活各方面中的Evol基因,也在进一步改变世界。 [2]
</p>
<p class="l1">12345</p>
<p class="l2">12345</p>
<p class="l3">12345</p>
</body>
</html>
如下
样式继承:字体/文本属性自动继承
结语
CSS3现已支持动画、渐变、网格布局等高级特性,优秀的CSS代码应像好散文------清晰、简洁、富有表现力。