day13学习 前端CSS样式选择器及优先级

CSS

CSS: 层叠样式表

CSS样式

CSS代码写到哪:

  1. 内部样式表:将<style>标签放到<head>标签或者<body>标签内。
  2. 内联样式:可以把样式直接作为一个标签的属性,写入到标签中,使用style属性
  3. 外部样式:有一个后缀名为.css的文件专门用来存放CSS代码,只需要在html代码中使用<link>标签将CSS文件引入即可

<link>标签语法:
<link rel="" type="" href=""/></link>

  1. 如果rel=icon,表示给页面标签页设置图标type=image/图片格式,表示引入xxx格式的图片
    rel="icon" type="image/图片格式(png、jpg)" href="图片的链接和路径"
  2. rel=stylesheet,表示给页面引入外部样式表type=固定为text/css(需创建.css文件夹)
    rel="stylesheet" type="text/css" href="css文件的链接或路径"

link引入外连接的表,可以重复利用,其他网页开发都可以使用,复用率很高,在开发时比较推荐使用。

CSS代码注释使用 /* 此处写注释 */

CSS样式如何写:

  • 语法:
    选择器{属性:属性值; 属性:属性值; 属性:属性值;}
  • 说明:
    1. 选择器:通过标签来选择被修改的内容或者通过属性(id属性class属性)选择被修改的内容
    2. {} :固定语法(内部样式、外部样式)
    3. 内部样式、外部样式、内联样式:修改内容的样式使用 属性:属性值;
<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<!-- 内部样式 -->
		<style>
			/* 这是CSS注释 */
			h1{
				color: aliceblue;
			}
		</style>
		<!-- 外部样式 -->
		<link rel="stylesheet" type="text/css" href="css/html_style.css">
	</head>
	<!-- 内联样式 -->
	<body style="background-color: indianred;">
		<h1>这是h1标签</h1>
	</body>
</html>

CSS选择器

CSS选择器:

  1. 通配符选择器 * -> 能改变所有标签的样式(慎用 因为会改变所有标签的样式)

  2. 标签选择器 标签名 -> 不加限定条件,能够修改页面中所有某标签(使用需谨慎)

  3. id选择器#id属性值;

  4. class选择器 .class属性值
    一般在页面标签中会添加id属性和class属性,其对应的属性值一般都是独一无二的,
    或者同一类数据使用一个属性值;通过调用id属性值class属性值变相的等于调用对应的标签

  5. 父子选择器 父标签 > 子标签(一个缩进就是父子关系):被修改样式的为子标签

  6. 后代选择器 祖先标签 后代标签(使用空格连接):被修改的样式为后代标签

  7. 兄弟选择器 长兄 ~ 弟弟 (缩进一样的为兄弟选择器):选中下面所有的弟弟选择器,只要是同一标签同级关系都会被选择

  8. 相邻兄弟选择器 刘关张: 刘 + 关 关 + 张 兄 + 弟

  9. nth-child选择器 a:nth-child(3) -> 找每一级下的第三个标签,并且这个标签是<a>标签(html下标从1开始

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<style>
			/* 后代选择器 */
			body #three{
				color: aquamarine;
			}
			
			/* 兄弟选择器  ~右边的和左边的只要是同一标签的同级关系都会被选择*/
			#one ~ #two{
				font-size: 50px;
			}
			#one ~ li{
				text-decoration: line-through;
			}		
			/* 和下面的都是兄弟 */
			
			/* 相邻兄弟选择器 */
			#one + li{
				text-decoration: line-through;
			}
			/* 只是相邻 */
			
		</style>
	</head>
	<body>
		<ul>
			<li id="one">水饺</li>
			<li>冒菜</li>
			<li id="two">抄手</li>
			<li id="three">面条</li>
		</ul>
		
		<ol>
			<li id="three">111</li>
			<li></li>
			<li></li>
		</ol>>
	</body>
</html>

效果展示:

在这里插入图片描述

CSS边框和文字样式

  • CSS边框常用属性

    • border: 边框粗细 边框的样式(solid 单实线 double 双实线 dashed 虚线 dotted点) 边框颜色;

    • border-radius: num1 (num2 num3 num4)

      • num1 - 表示将图形(存在四个角)的四个角统一改为一个弧度
      • num1 num2 - num1表示图形的左上角和右下角,num2表示图形的右上角和左下角
      • num1 num2 num3 - num1表示左上角,num2表示右上角和左下角,num3表示右下角
      • num1 num2 num3 num4 - 左上、右上、右下、左下
    • border-top
      border-bottom
      border-left
      border-right

  • CSS文字常用属性

    • color: 修改文字颜色
    • font-size: 字体尺寸
    • font-family: 字体
    • text-align: 位置(left、right、center)
    • text-decoration: 在文字的上方或下方或中间添加一条横线(underline、overline、line-throught)

    颜色:

    三原色:红、绿、蓝

    每种颜色有0-255,一共256个等级。共有256**3个颜色

    1. 颜色可以用英语单词表示
    2. 可以使用三原色的数字等级表示 rgb(0,0,0) 或者 rgba(0,0,0,透明度)
    3. 可以使用颜色的# + 十六进制符号表示

更改样式时:所有选择器可以组合使用

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<style>
			/* 标签选择器 */
			/* 将页面所有的div改为某样式 */
			/* div{
				border: 1px dotted palevioletred;
				width: 100px;
				height: 100px;
			} */
			
			/* 将body标签的子标签中第一个div标签改为某样式 */
			body > div:nth-child(1){
				/* border: 1px dotted palevioletred; */
				border-top: 1px dotted palevioletred;
				border-bottom: 1px dotted lightblue;
				border-left: 5px dotted lightgoldenrodyellow;
				border-right: 5px dotted lightpink;
				width: 100px;
				height: 100px;
				border-radius: 100% 50%;
			}
			/* 调用id属性的标签 */
			#one{
				border-top: 5px solid yellowgreen;
				width: 100px;
				height: 200px;
				background-color: cadetblue;
			}
            /* 调用class属性的标签 */
			.one{
				width: 150px;
				height: 150px;
				border: 3px double lightsalmon;
				border-radius: 100%;
			}
            /* 调用所有p标签 */
			p{
				/* color: indianred; */
				/* color: #cd5c5c; */
				color: rgba(255,0,0,0.5);
				text-align: center;
				font-size: 50px;
				text-decoration: line-through;
			}
		</style>	
	</head>
	<body>
		<div></div>
		<div id="one"></div>
		<div class="one">
			<div id="one"></div>
		</div>
		<p><b>今日安排</b></p>
		<ul>
			<li>上课</li>
			<li>上课</li>
			<li>上课</li>
			<li>上课</li>
		</ul>
	</body>
</html>

通配符选择器

HTML标签存在一个叫做外边距和内边距的两个边距

通配符选择器*{}一般是用来去除标签边距

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<style>
			*{
				/* 外边距 */
				margin: 0;
				/* 内边距 */
				padding: 0;
			}
			div{
				width: 50px;
				height: 50px;
				background-color: green;
			}
		</style>
	</head>
	<body>
		<div></div>
		<hr>
		<div></div>
		<hr>
		<div></div>
	</body>
</html>

选择器的优先级

样式优先级问题:
优先级和选择器相关

第1级: 属性后面添加!important(最优先级)
第2级: 内联样式

其他的任何样式都小于这两级,优先级看权重,权重越大,优先级越高

*---- 1
标签选择器 ---- 1
class选择器 ---- 2
id选择器 ---- 4
父子后代兄弟相邻兄弟 ---- 看符号之间各个选择器的权重和,但是先看符号前边的,如果前边的相等,再比较后边

如果权重相等,最后写的谁,就实现谁
但是,权重不一样,但是都是修改的一个标签,不重叠的样式都能实现

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<style>
			#p1{
				color: coral;
			}
			.p1{
				color: aquamarine!important;
				text-decoration: underline;
			}
			div > span > p{
				color: cadetblue;
			}
			.d1 > .s1 > p{
				color: blue;
			}
		</style>
	</head>
	<body>
		<div class="d1">
			<span class="s1">
			<!-- <p id="p1" class="p1" style="color: lightpink;">我是段落1</p> -->
			<!-- 名字可以相同,因为id和class性质不同 不影响 -->
				<p id="p1" class="p1">我是段落1</p>
			</span>
		</div>
	</body>
</html>

伪类选择器

  • 什么是伪类选择器:

    普通选择器:伪类选择器{}

    普通选择器选择的是标签,伪类选择器是选中的标签在不同场景下的某个状态

    普通标签的状态:鼠标悬停,鼠标点击,激活(成为焦点)

  • 常见的伪类选择器

    1. 两个通用状态
      hover - 鼠标悬停
      active - 鼠标在某个元素上按下

    2. 超链接<a>标签特有的

      link - 超链接地址没有被成功访问展示的状态
      visited - 超链接地址被成功访问展示的状态

CSS常用背景属性
background-color: 背景颜色
background:url(图片地址) 是否平铺 x方向位置 y方向位置 背景颜色

是否平铺:no-repeatrepeat
x方向位置: left\right\centerx坐标值
y方向位置: topbottomcentery坐标值

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<style>
			a{
				color: darkgreen;
			}
			/* 设置超链接鼠标悬停时的状态 */
			a:hover{
				color: rgba(0, 255, 255, 0.5);
				cursor: pointer;
			}
			/* 让光标变为手指 */
			span:hover{
				cursor: pointer;
			}
			
			/* 超链接访问后的状态 */
			a:link{
				color: lightgrey;
			}
			a:visited{
				color: indianred;
			}
			/* 鼠标悬停,一张图片消失,另一张图片显示 */
			/* 图片消失实现 */
			img:hover{
				display: none;
				background: url('./img/2.jpg') no-repeat rgba(0, 255, 255, 0.1);
			}
			/* 图片显示 */
		</style>
	</head>
	<body>
		<span>请点击<a href="http://www.baidu.com">百度一下</a></span>
		<div>
			<img src="./img/1.jpg" alt="">
		</div>
	</body>
</html>
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值