CSS选择器、样式、盒模型、浮动——CSS选择器、权重

本篇博客主要是讲的css基础中的引入、选择器与权重问题

CSS引入

在学习CSS之前我们要了解到什么是CSS?
         CSS 指层叠样式表 (Cascading Style Sheets),CSS的样式定义如何显示 HTML 元素。

CSS的引入方式有三种,内部样式表、行内样式表和外部样式表。

  内部样式表:放在style标签中,一般放在head里面
优点:结构样式部分分离,嵌入式引入

  行内样式表:只修改行内样式,简单修改 用双引号,样式间空格隔开 只控制当前标签
< p style="color:red; ">

   外部样式表:另起一个style.css文件,在head标签里通过link rel=“stylesheet” href=“style.css” 引入到html文件中。

CSS选择器

        在HTML中有许许多多的标签,我们可以通过选择器来选择我们需要的标签。在这里我们先介绍四种选择器,后面进阶版我们在补充一些能够让我们工作更高效的选择器。

通配符选择器

        当我们需要修改一个页面中所有标签的样式时,可以使用通配符选择器,它的语法如下:

<html lang="en">
<head>
    <title>基础选择器之通配符选择器</title>
    <style>
     * {
         color: red;
     }
     /* * 这里把 html  body  div  span  li 等等的标签都改为了红色 */
    </style>
</head>
<body>
    <div>111</div>
    <span>222</span>
    <ul>
        <li>333</li>
    </ul>
</body>
</html>

  将这个html文件中所有的样式都改成通配符选择器中设置的样子。如下图所示:
通配符选择器

         通配符选择器的权重为0,0,0,0


标签选择器

        当我们需要更改某一个标签里的样式时,可以采取标签选择器,它的语法如下:

<html lang="en">
<head>
	<style>
		div{
			width: 200px;
			height: 200px;
			background-color: pink;
		}
	</style>
</head>
<body>
	<div>
		这是一个盒子
	</div>
	<div>
		这是另一个盒子
	</div>
</body>
</html>

  标签选择器可以选择HTML中某一类标签,对所有这类标签都更改样式。如下图所示:
标签选择器

         标签选择器的权重为0,0,0,1


类选择器

        当页面中有俩个相同标签,但我们只想对其中一个更改样式时,我们采用类选择器。
1.先给我们需要更改样式的标签起个类名。
2.在CSS中使用“.类名”的语法对该标签进行更改样式。
具体语法如下:

<html lang="en">
<head>
	<style>
		.box {
			width: 200px;
			height: 200px;
			background-color: pink;
		}
	</style>
</head>
<body>
	<div class="box">
		这是一个盒子
	</div>
		<div>
		这是另一个盒子
	</div>
</body>
</html>

    此时只有类名为.box的div盒子是更改了样式的。如下图所示:
类选择器

注意:
1.类选择器使用“.”进行标识
2.长名称或词组可以使用中横线来为选择器命名
3.不能使用纯数字、中文、特殊标签 ,尽量使用英文字母
4.命名要有意义
5.命名规范
6.在一个class里面可以调用多个类,中间用空格隔开。

         类选择器的权重为0,0,1,0


id选择器

        当我们有一些样式是独一无二的时,我们可以采用id选择器。
注意:id不能重复,且只能被调用一次,先调用的生效。
它的语法如下:

<html lang="en">
<head>
	<style>
		#box1 {
			width: 200px;
			height: 200px;
			background-color: pink;
		}
	</style>
</head>

<body>
	<div id="box1">
		这是一个盒子
	</div>
	<div >
		这是另一个盒子
	</div>
</body>
</html>

此时第一个div盒子的id为box1,所以只有它的样式被更改,如下图所示:
在这里插入图片描述

    补充:在css里面,同一个id名虽然可以调用多次,但是在js里面,多次调用同一个id会解析错误出现冲突。在CSS中我们会更偏向使用类选择器。

         id选择器的权重是0,1,0,0


复合选择器
1.后代选择器

选择父元素中的所有子元素。
语法格式如下:
元素1 元素2{
样式声明;
}

更改的是元素2的样式。中间用空格隔开。

<html lang="en">
<head>
	<title>复合选择器之后代选择器</title>
	<style>
		ul li {
			width: 100px;
			height: 40px;
			background-color: pink;
		}
	</style>
</head>

<body>
	<ul>
		<li>这是一个盒子</li>
		<li>这是一个盒子</li>
		<li>这是一个盒子</li>
		<li>这是一个盒子</li>
		<li>这是一个盒子</li>		
	</ul>
	<ol>
		<li>这是另一个盒子</li>
		<li>这是另一个盒子</li>
		<li>这是另一个盒子</li>
		<li>这是另一个盒子</li>
		<li>这是另一个盒子</li>		
	</ol>
</body>
</html>

    在这里只是对ul里面的所有li进行了样式更改,ol里面的li样式不会有任何变化。如下图所示:
在这里插入图片描述


2.子选择器

        当一个标签里面有多个孩子,但我们只想修父盒子的亲孩子样式,我可以采用子选择器。
语法:
元素1>元素2{
样式声明;
}

中间没有空格

<html lang="en">
<head>
	<style>
		/* 此时div中的所有p都更改了颜色 */
	/* .box p{
		color: red;
	}    */
	.box>p{
		color: pink;
	}
	</style>
</head>

<body>
	<div class="box">
		<p>我是box盒子的亲孩子</p>
		<div>
			<p>我是box盒子的后代</p>
		</div>

	</div>
</body>
</html>

    此处只更改了box盒子中的亲孩子p的样式。如下图所示:
在这里插入图片描述

子选择器可以在多层盒子中只更改选中的盒子的亲孩子的样式。


3.并集选择器

        适用于部分盒子有相同代码块时,使用并集选择器可以优化我们的代码。

<html lang="en">
<head>
	<meta charset="UTF-8">
	<meta http-equiv="X-UA-Compatible" content="IE=edge">
	<title>复合选择器之子选择器</title>
	<style>
		h2,
		p {
			color: red;
		}
		h3,
		ul li {
			color: pink;
		}
	</style>
</head>

<body>
	<h2>这是一个标题</h2>
	<p>这是一段文字</p>
	<h3>这是另一个标题</p>
	<ul>
		<li>这是一个列表</li>
	</ul>
</body>
</html>

此处将h2和p的文字更改为一个样式,h3和li的样式改成一个样式,如下图所示:
在这里插入图片描述

    选择器之间用 , 隔开,可以是标签名、类名或者id,在书写中最好标签与标签分行写。

4.伪类选择器

        在页面中我们常看到鼠标经过某个元素时才出现一些效果,一般使用伪类选择器来实现。

这里主要介绍的是链接伪类器

语法效果
a:link选择未访问过的链接
a:visited选择已访问过的链接
a:hover选择鼠标经过时的链接
a:active选择鼠标正在选中期间时的链接

若是要对一个链接设置以上四个属性,要严格按照link visited hover active的顺序书写。
    我们在现阶段的开发中,最常使用的是标签:hover

注意:a链接要单独书写样式。

<html lang="en">
<head>
	<style>
		p {
			color: red;
		}
		p:hover {
			color: pink;
		}
	</style>
</head>

<body>
	<p>这是一段文字</p>
	<p>这是另一段文字</p>
</body>

</html>

效果如图所示:
当鼠标移动到文字前:
在这里插入图片描述
当鼠标移动到文字上后:
在这里插入图片描述

         伪类选择器的权重为0,0,1,0

选择器权重

        我们通过选择器来更改样式,但是在使用中要注意CSS的三大特性中的层叠性优先级

    层叠性即相同样式,后面的会覆盖前一个冲突样式,采用就近原则。

    优先级就是前面每个选择器下面提到的权重问题。当我们对同一个选择器做同一个样式更改时,执行的是层叠性中的就近原则,选择器不同时就看谁优先级高就执行谁。

选择器权重
继承/通配符选择器0,0,0,0
标签选择器0,0,0,1
类选择器/伪类选择器0,0,1,0
ID选择器0,1,0,0
行内样式style=“”1,0,0,0
!important无穷大

优先级注意点:
  1.权重是有4组数字,但是不会由进位
  2.等级判断从左向右比较,某 一位数值相同,则比较下一位。
  3.继承的权重是0,不管父元素权重多高,子元素继承的权重都是0.
  4.权重可以叠加,但不会有进位问题

例:
ul li 权重是0,0,0,1+0,0,0,1=0,0,0,2
.nav li 权重是0,0,1,0+0,0,0,1=0,0,1,1

a链接是浏览器默认指定的颜色,蓝色带下划线,要修改必须单独指定a的样式。

  • 5
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值