CSS简介、选择器及常用样式

1.什么是CSS?

CSS是Cascading Style Sheets的简称,中文叫层叠样式表。样式是指HTML元素的布局方式,HTML元素的布局方式非常多,所以样式也有很多,我们把多个样式的集合叫样式表,而且样式之间是可以相互叠加的,所以层叠样式表就是指可以相互叠加的HTML元素的布局方式的集合。CSS的目的是为了让内容和表现分离,实现高效便捷的网络编程。

2. CSS如何引入?

2.1 内嵌引入法

直接在HTML元素标签里引入style=“xx”

<!-- 将该p标签中的文字颜色设定为绿色 -->
<p style="color: green">一起来玩啊,CSS</p>

多个样式可以用== ;分隔开(一般习惯在每个样式后面加;==)

<!-- 将该p标签里的文字颜色设定为绿色,并将其字体大小设定为66px -->
<p style="color: green; font-size=66px">一起来玩啊,CSS</p>

2.2 内部引入法

在HTML的head标签里添加style标签,然后将所需要的样式放在style标签里

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>CSS引入方式</title>
		<!-- type用于规定样式表的MIME类型(type一般可以不写) -->
		<!-- MIME(Multipurpose Internet Mail Extensions)多用途互联网邮件扩展类型 [详情请查看](https://baike.baidu.com/item/MIME/2900607?fr=aladdin) -->
		<style type="text/css">
		/* p{}是元素选择器,用来指定color样式的作用对象 */
		/* 将html中所有p标签里的文字颜色设定为green */
			p{
				color: green;
			}
		</style>
	</head>
	<body>
		<p>一起来玩啊,CSS</p>
	</body>
</html>

2.3 外部引入法

这里需要新建一个css文件,然后将这个css文件用link标签引入到HTML中

/* 这是useforp.css文件 */
/* 将html中所有p标签里的文字颜色设定为green */
p{
	color: green;
}
<!-- 这是HTML文件 -->
<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>CSS引入方式</title>
		<!-- rel规定当前文档与被链接文档之间的关系(stylesheet是指样式表)-->
		<!-- href规定被链接文档的位置(CSS/useforp.cc表示在本项目的CSS文件夹的useforp.css文件 -->
		<link rel="stylesheet" href="CSS/useforp.css" />
	</head>
	<body>
		<p>一起来玩啊,CSS</p>
	</body>
</html>

2.4 三种引入方式的优先级

哪一种方式的代码离该HTML元素近,哪一种方式就优先执行。当然为了高效开发,当然推荐使用第三种(外部引入)。

3. 如何写CSS?

CSS的目标是为了高效布局,所以我们可以把编写CSS的思维框架拆分成两部分:选择器 + 样式

3.1 选择器

3.1.1 什么是选择器

为了实现布局,第一步咱们肯定要知道布局的对象(元素),即谁需要布局,或者说需要对谁布局。在CSS中对布局对象(元素)的确定需要设定一个过滤器,这个过滤器就是选择器。因为布局的方式及HTML元素的数量非常多,所以CSS中选择器也不少。

3.1.2 选择器的种类

3.1.2.1 基本选择器
3.1.2.1.1 元素选择器

直接用元素(标签类型)来接收样式

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>CSS选择器</title>
		<style type="text/css">
		/* 用p这个元素标签来接收样式 */
		/* 将html中所有p标签里的文字颜色设定为green */
			p{
				color: green;
			}
		</style>
	</head>
	<body>
		<p>一起来玩啊,CSS</p>
		<p>我要好好学习,因为我饭卡里还有不少钱呢</p>
	</body>
</html>

使用这个选择器会遇到一个困难,那就是,如果我想让第2个段落的文字使用其它颜色,如何解决呢?

3.1.2.1.2 ID选择器

对于上面的问题,可以通过对元素设定ID,让ID接收样式,达到改变的效果。

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>CSS选择器</title>
		<style type="text/css">
		/* 将html中所有p标签里的文字颜色设定为green */
			p{
				color: green;
			}
		/* 用#p2来接收样式 */
		/* 将html中所有ID为“p2”的标签里的文字颜色设定为red */
		/* p2中文字的颜色最后为red,而非green */
			#p2{
				color:red;
			}
		</style>
	</head>
	<body>
		<p>一起来玩啊,CSS</p>
		<p id="p2">我要好好学习,因为我饭卡里还有不少钱呢</p>
	</body>
</html>

当然,不同元素的ID可以一样,但是如果一样,那么后期使用JavaScript通过ID调用元素时可能就非常麻烦了,所以原则上咱们都会让ID唯一。所以我们可以设定不同ID实现相同效果,但这似乎也很麻烦

3.1.2.1.3 类选择器

用法几乎和ID选择器一样不过调用时注意ID用的是#,class用的是.

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>CSS选择器</title>
		<style type="text/css">
		/* 用p这个元素标签来接收样式 */
			p{
				color: green;
			}
		/* 用.p2来接收样式 */
		/* 将html中所有属性class为“p2”的标签里的文字颜色设定为red */
		/* p2中文字的颜色最后为red,而非green */
			.p2{
				color:red;
			}
		</style>
	</head>
	<body>
		<p>一起来玩啊,CSS</p>
		<p class="p2">我要好好学习,因为我饭卡里还有不少钱呢</p>
	</body>
</html>

所以,对比ID选择器和类选择器,当要对不同元素使用相同样式的时候,咱们推荐使用类选择器。

3.1.2.1.4 基本选择器的优先级

ID选择器 > 类选择器 > 元素选择器

3.1.2.2 属性选择器

通过元素的标签引入其属性来接收样式

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>CSS选择器</title>
		<style type="text/css">
			/* 用p这个元素标签通过在[]中设定p标签的align属性来接收样式 */
			/* 将html中所有使用align属性的p标签里的文字颜色设定为green */
			p[align]{
				color: green;
			}
			/* 将html中所有使用class属性的p标签里的文字颜色设定为red */
			p[class]{
				color: red;
			}
			/* 将html中所有使用class属性且该属性值为“p3”的p标签里的文字颜色设定为blue */
			p[class="p3"]{
				color: blue;
			}
			/* 将html中所有使用align属性且属性值为“center”和所有使用class属性且该属性值为“p4”的p标签里的文字颜色设定为yellow */
			p[align="center"][class="p4"]{
				color: yellow;
			}

		/* 最后根据最近原则,第一行文字颜色为green,第二行文字颜色为red,第三行文字颜色为blue, 第四行文字颜色为yellow */
		</style>
	</head>
	<body>
		<p align="center">一起来玩啊,CSS</p>
		<p class="p2">我要好好学习,因为我饭卡里还有不少钱呢</p>
		<p class="p3">玩好才能学好啊,CSS</p>
		<p align="center" class="p4">对于我来说,学习就是玩!</p>
	</body>
</html>
3.1.2.3 关系选择器

在理解这个选择器之前,需要先理解HTML的两个块元素标签

3.1.2.3.1 div元素和span元素

不多说,直接上代码

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>CSS选择器</title>
		<style>
			div{
				background-color:red;
			}
			span{
				background-color: green;
			}
		</style>
	</head>
	<body>
		<div>
		<!-- 直接在body中的文字我们称为普通文本,br标签用来换行 -->
			一起来玩啊,CSS<br />
			我要好好学习,因为我饭卡里还有不少钱呢<br />
			玩好才能学好啊,CSS<br />
			对于我来说,学习就是玩!<br />
		</div>
		<span>
			一起来玩啊,CSS<br />
			我要好好学习,因为我饭卡里还有不少钱呢<br />
			玩好才能学好啊,CSS<br />
			对于我来说,学习就是玩!<br />
		</span>
	</body>
</html>

div标签和span标签都将4个普通文本分别包含div“块”和span“块”中(看图理解)
图示div和span
再看看代码实现效果:
代示div和span
块元素就像是一个包,可以把一些元素打包起来作为一个整体,但div元素和span元素“包装”的方式有区别,但只要“包装”起来咱们就可以为所欲为啦?

3.1.2.3.2 包含选择器

听名之意,包含选择器就是直接使用块元素的标签来接收样式

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>CSS选择器</title>
		<style>
		<!-- 直接使用div标签或span标签接收样式 -->
			<!-- div元素中的背景颜色为red -->
			div{
				background-color:red;
			}
			<!-- span元素中的背景颜色为green -->
			span{
				background-color: green;
			}
		</style>
	</head>
	<body>
		<div>
		<!-- 直接在body中的文字我们称为普通文本,br标签用来换行 -->
			一起来玩啊,CSS<br />
			我要好好学习,因为我饭卡里还有不少钱呢<br />
			玩好才能学好啊,CSS<br />
			对于我来说,学习就是玩!<br />
		</div>
		<span>
			一起来玩啊,CSS<br />
			我要好好学习,因为我饭卡里还有不少钱呢<br />
			玩好才能学好啊,CSS<br />
			对于我来说,学习就是玩!<br />
		</span>
	</body>
</html>
3.1.2.3.3 层级选择器
<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>CSS选择器</title>
		<style>
		/* 直接使用div标签或span标签接收样式 */
			/* div元素中的字体颜色为red */
			div{
				color:red;
			}
			/* span元素中的字体颜色为green */
			span{
				color: green;
			}
			/* 最后显示div中两个p元素的字体为red,span中两个p元素为green */
		</style>
	</head>
	<body>
		<div>
			<p>一起来玩啊,CSS</p>
			<p>我要好好学习,因为我饭卡里还有不少钱呢</p>
			<span>
				<p>玩好才能学好啊,CSS</p>
				<p>对于我来说,学习就是玩!</p>
			</span>
		</div>
	</body>
</html>

我们也可以这样写

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>CSS选择器</title>
		<style>
		/* 直接使用div标签或span标签接收样式 */
			/* 所有p元素的字体颜色为green */
			p{
				color: green;
			}
			/* div元素中子p元素(子p元素表示div下第一层的p元素,不包括div下span中的p元素)的字体颜色为red */
			div>p{
				color:red;
			}
		
			/* 根据就近原则,最后同样显示div中两个p元素的字体为red,span中两个p元素为green */
		</style>
	</head>
	<body>
		<div>
			<p>一起来玩啊,CSS</p>
			<p>我要好好学习,因为我饭卡里还有不少钱呢</p>
			<span>
				<p>玩好才能学好啊,CSS</p>
				<p>对于我来说,学习就是玩!</p>
			</span>
		</div>
	</body>
</html>

上面这种选择器( div>p{} )就是层级选择器啦

3.1.2.3.4 疑惑?

对于一下代码实现的效果我不理解为什么span元素会没有出现背景颜色样式的设定

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>CSS选择器</title>
		<style>
			div{
				background-color:red;
			}
			span{
				background-color:green;
			}
		</style>
	</head>
	<body>
		<div>
			<p>一起来玩啊,CSS</p>
			<p>我要好好学习,因为我饭卡里还有不少钱呢</p>
			<span>
				<p>玩好才能学好啊,CSS</p>
				<p>对于我来说,学习就是玩!</p>
			</span>
		</div>
	</body>
</html>

最后的效果是整个背景色都是红色,而没有出现span的绿色背景,但如果把background-color换成color,span的颜色就会出现。现在自己还搞不懂为啥,希望以后会知道,我猜可能是?算了,猜不到?

3.1.2.4 伪类选择器

伪类选择器主要用于超链接

<!DOCTYPE html>
<html>
        <head>
                <meta charset="UTF-8">
                <title></title>
                <style type="text/css">
                /* 伪类选择器 */
                        /* 静止状态时a元素字体的颜色为red */
                        a:link{
                                color: red;
                        }
                        /* 悬浮状态时a元素的字体颜色为yellow */
                        a:hover{
                                color: yellow;
                        }
                        /* 触发状态时a元素的字体颜色为blue */
                        a:active{
                                color: blue;
                        }
                        /* 访问后状态a元素的字体颜色为green */
                        a:visited{
                                color: green;
                        }
                        
                </style>
        </head>
        <body>
                <a href="index.html">这是一个超链接</a>
        </body>
</html>

3.2 常用CSS样式

  1. color:字体颜色
  2. font-family:字体
  3. font-size:字体大小
  4. font-weight:bold 字体加粗
  5. letter-spacing:文字间距
  6. text-decoration:underline 文字下划线
  7. line-height:行高
  8. width:宽
  9. height:高
  10. float:浮动
  11. border:1px solid red 1px的红色实线边框
  12. border:1px dashed green 1px的绿色虚线边框
  13. background:背景颜色
  14. position:定位
  15. 设置中心点:transform:translate(-50%,-50%)
  16. more…
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值