CSS基础总结(二)

news2024/11/25 12:38:51


文章目录

一、CSS复合选择器

1.后代选择器

2.子选择器

3.并集选择器

4.伪类选择器

复合选择器总结

二、CSS元素显示模式

1.概述

2.块元素

3.行内元素

4.行内块元素

5.元素显示模式的转换

元素显示模式总结

三、CSS背景

 1.概述

 2.背景图片

 3.背景平铺

 4.背景图片位置

          5.背景图像固定

 6.背景复合写法(常用)

 7.背景颜色半透明

 背景总结

四、CSS三大特性

1.层叠性

2.继承性

3.优先级

五、实践

1.小米官网首页侧边栏

2.添加背景图片


一、CSS复合选择器

        在 CSS 中,可以根据选择器的类型把选择器分为 基础选择器 复合选择器 ,复合选择器是建立在基础选择器之上,对 基本选择器进行组合而形成的。
  • 复合选择器可以更准确、更高效的选择目标元素(标签)
  • 复合选择器是由两个或多个基础选择器,通过不同的方式组合而成的
  • 常用的复合选择器包括:后代选择器、子选择器、并集选择器、伪类选择器等等

1.后代选择器

        后代选择器 又称为 包含选择器 ,可以选择父元素里面子元素。其写法就是把外层标签写在前面,内层标签写在 后面,中间用空格分隔。当标签发生嵌套时,内层标签就成为外层标签的后代。

语法:

元素1 元素2 { 样式声明 }

表示选取元素1里面的所有元素2(后代元素)

示例:

ol li { 样式声明 } /* 选择 ol 里面所有的 li标签元素 */

注意:

  • 元素1和元素2之间用空格隔开
  • 元素1是父级,元素2为子级,元素2可以是儿子、孙子等等,只要是元素2的后代即可
  • 元素1和元素2可以是任何基础的选择器,最终选择的是元素2

2.子选择器

        子元素选择器(子选择器) 只能选择作为某元素的最近一级子元素。简单理解就是只选亲儿子元素的方式,必须是最近一级的元素,选到后则里面的孙子、等等都不再被选择

语法:

元素1 > 元素2 { 样式声明 }

表示选择元素1所有直接后代元素2

示例:

div > p { 样式声明 } /* 选择 div 里面所有最近一级 p 标签元素 */

注意:

  • 元素1和元素2之间使用大于号隔开
  • 元素1为父级,元素2为子级,最终选取的是元素2
  • 元素2必须是元素1的最近一级,即直接后代

加深理解:

将下面的“CSDN官网”文字修改为红色

<div class="style1">
     <a href="#">CSDN官网</a>
     <ul>
         <li><a href="#">百度</a></li>
         <li><a href="#">腾讯</a></li>
     </ul>
</div>

可以采用子选择器,直接选取style1该父类元素下的直接后代元素a,即第一个a链接元素

style1>a {
    color: red;
}

3.并集选择器

        并集选择器 是各选择器 通过英文逗号( ,)连接而成 ,任何形式的选择器都可以作为并集选择器的一部分。 并集选择器可以选择多组标签,同时为它们定义相同的样式,通常用于集体声明,从而简化CSS样式代码。

语法:

元素1,元素2 { 样式声明 }

示例:

ul,div { 样式声明 } /* 选择 ul 和 div标签元素,对其同时声明相同的样式属性 */

注意:

  • 元素1和元素2之间使用英文逗号隔开
  • 逗号可以理解为“和”的意思
  • 通常适用于集体声明,当公共样式较多时使用并集选择器进行集体声明

4.伪类选择器

        伪类选择器 用于向某些选择器添加特殊的效果,比如给链接添加特殊效果,或选择第1个,第n个元素。其最大特点是带有冒号表示,如 :hover , 这里总结最常用的链接伪类选择器和focus伪类选择器。

语法:

(1)链接伪类选择器

/* a 是标签选择器 所有的链接 */ 
 a { 
    color: gray;
 }
 /* :hover 是链接伪类选择器 鼠标经过 */
 a:hover { 
    color: red; /* 鼠标经过的时候,由原来的 灰色 变成了红色 */
 }

(2)focus伪类选择器

        :focus 伪类选择器 用于选取获得焦点的表单元素。 焦点就是光标,一般情况 <input> 类表单元素才能获取,因此这个选择器也主要针对于表单元素。
input:focus { 
   background-color:yellow;
}

注意:

  •  链接伪类选择器,尽量按照 LVHA 的顺序来声明 :link   :visited   :hover   :active。

复合选择器总结


二、CSS元素显示模式

1.概述

        元素显示模式就是 元素(标签)以什么方式进行显示 ,比如<div>自己占一行,比如一行可以放多个<span>。HTML 元素一般分为 块元素 行内元素 两种类型。网页的标签非常多,在不同地方会用到不同类型的标签,了解他们的特点可以更好地布局网页。

2.块元素

        常见的块元素有<h1>~<h6>、<p>、<div>、<ul>、<ol>、<li>等,其中 <div> 标签是 最典型的块元素

 块级元素的特点:

  • 独占一行
  • 高度、宽度、外边距和内边距都可以进行控制
  • 宽度默认是容器(父级宽度)的100%
  • 它是一个容器及盒子,里面可以放行内或者块级元素
注意:
  • 文字类的元素内不能使用块级元素
  • <p>标签主要用于存放段落文字,因此里面不能存放块级元素,尤其是<div>
  • 同理, <h1>~<h6>等都是文字类块级标签,里面也不能放其他块级元素

3.行内元素

        常见的行内元素有 <a>、<strong>、<b>、<em>、<i>、<del>、<s>、<ins>、<u>、<span>等,其中 <span> 标签是 最典型的行内元素 。有的地方也将行内元素称为 内联元素

 行内元素的特点:

  • 一行可以显示多个行内元素,相邻的行内元素在一行上
  • 宽高设置无效
  • 默认宽度就是它本身内容的宽度

注意:

  • 行内元素只能容纳文本或者其它行内元素,不可以装块级元素
  • 链接里面不能放链接,特殊情况是<a>里面可以放块级元素

4.行内块元素

        在行内元素中有几个特殊的标签 —— <img />、<input />、<td>,它们 同时具有块元素和行内元素的特点

行内块元素的特点:

  • 和相邻行内元素(行内块)在一行上,但是他们之间会有空白缝隙。一行可以显示多个(行内元素特点)。
  • 默认宽度就是它本身内容的宽度(行内元素特点)
  •  高度,行高、外边距以及内边距都可以控制(块级元素特点)。
  • 故行内块元素很特殊,兼具块级元素与行内元素的特点

5.元素显示模式的转换

        在一些场景下我们需要将元素的显示模式进行转换,例如将行内元素链接<a>转换成块级元素,并设置宽高,以扩大用户点击链接的范围,增强用户体验。

主要有以下三大方式:

  • 转换成块元素:display:block;
  • 转换成行内元素:display:inline;
  • 转换成行内块元素:display:inline-block;

示例:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>元素模式的转换</title>
		<style>
			a {
				width: 150px;
				height: 50px;
				background-color: red;
				/* 将行内元素转换成块元素 */
				display: block;
			}
		</style>
	</head>
	<body>
		<a href="https:www.baidu.com">百度一下,你就知道</a>
	</body>
</html>

没有转换之前,<a>仅仅是一个行内元素,只能点击文字来触发点击事件,如图:

 再将其转换成块级元素并设置宽高、背景色后,点击那块红色的背景区域都能触发点击事件

元素显示模式总结


三、CSS背景

1.概述

        顾名思义,通过 CSS 背景属性,可以给页面元素添加背景样式。 背景属性可以设置背景颜色、 背景图片、背景平铺、背景图片位置、 背景图像固定等,使得网页更加的好看
background-color 属性定义了元素的背景颜色。
background-color:颜色值;

2.背景图片

        background-image 属性描述了元素的背景图像。实际开发常见于 logo 或者一些装饰性的小图片或者是超大的背景图片, 优点是非常便于控制位置. (精灵图也是一种运用场景)
background-image : none | url (url)

注意:

  • 默认值是none,无背景
  • url代表图片的路径,可使用相对路径或者绝对路径
  • url(url)url地址里面不要加引号

3.背景平铺

如果需要在 HTML 页面上对背景图像进行平铺,可以使用 background-repeat 属性。
background-repeat: repeat | no-repeat | repeat-x | repeat-y

 4.背景图片位置

利用 background-position 属性可以改变图片在背景中的位置
background-position: x y;
参数代表的意思是:x 坐标和 y 坐标。 可以使用 方位名词 或者 精确单位

注意点:

  1. 参数是方位名词如果指定的两个值都是方位名词,则两个值前后顺序无关,比如 left top 和 top left 效果一致 如果只指定了一个方位名词,另一个值省略,则第二个值默认居中对齐
  2. 参数是精确单位如果参数值是精确坐标,那么第一个肯定是 x 坐标,第二个一定是 y 坐标;如果只指定一个数值,那该数值一定是 x 坐标,另一个默认垂直居中
  3. 参数是混合单位如果指定的两个值是精确单位和方位名词混合使用,则第一个值是 x 坐标,第二个值是 y 坐标

5.背景图像固定

        background-attachment 属性设置背景图像是否固定或者随着页面的其余部分滚动,后期可以制作视差滚动的效果。
background-attachment : scroll | fixed

6.背景复合写法(常用)

        为了简化背景属性的代码,我们可以将这些属性合并简写在同一个属性 background 中。从而节约代码量.。当使用简写属性时,没有特定的书写顺序,一般习惯约定顺序为:
background: 背景颜色 背景图片地址 背景平铺 背景图像滚动 背景图片位置;
background: transparent url(image.jpg) repeat-y fixed top ;

 7.背景颜色半透明

CSS3 为我们提供了背景颜色半透明的效果。
background: rgba(0, 0, 0, 0.3);

注意:

  • 最后一个参数是 alpha 透明度,取值范围在 0~1之间
  • 习惯把 0.3 的 0 省略掉,写为 background: rgba(0, 0, 0, .3);
  • 背景半透明是指盒子背景半透明,盒子里面的内容不受影响
  • 注意是背景颜色半透明效果,不是背景图片半透明

背景总结


四、CSS三大特性

1.层叠性

        相同选择器给设置相同的样式,此时一个样式就会 覆盖(层叠) 另一个冲突的样式。层叠性主要解决样式冲突 的问题

 层叠性原则:

  • 样式冲突时,遵循的原则是 就近原则 ,哪个样式离结构近,就执行哪个样式
  • 样式如果不冲突,则不会发生层叠

2.继承性

所谓继承性,即子标签会继承父标签的某些样式,如文本颜色和字号等等

比如下方代码,<p>在<div>内部,则必然会继承div的样式,即文字颜色为红色,字体大小18px

注意:

  • 子元素可以继承父元素的样式(text-,font-,line-这些元素开头的可以继承,以及color属性)
  • 恰当地使用继承可以简化代码,降低 CSS 样式的复杂性

3.优先级

        当同一个元素指定多个选择器,就会有优先级的产生。如果 选择器相同,则执行层叠性;如果选择器不同,则根据 选择器权重 执行。

注意点:

  • 权重是有4组数字组成,但是不会有进位。
  • 可以理解为类选择器永远大于元素选择器, id选择器永远大于类选择器,以此类推..
  • 等级判断从左向右,如果某一位数值相同,则判断下一位数值。
  •  可以简单记忆法: 通配符和继承权重为0, 标签选择器为1,类(伪类)选择器为 10, id选择器 100, 行内样式表为 1000, !important 无穷大
  • 继承的权重是0若该元素没有直接选中,不管父元素权重多高,子元素得到的权重都是 0。

权重叠加:

权重叠加:如果是复合选择器,则会有权重叠加,需要计算权重。

比如计算下列各个选择器的权值:

复合选择器权重
div ul li
0,0,0,3
.nav ul li
0,0,1,2
a:hover
0,0,1,1
.nav a
0,0,1,1

五、实践

1.小米官网首页侧边栏

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>小米官网首页侧边栏</title>
	</head>
	<style>
		a {
			width: 260px;
			height: 60px;
			display: block;
			color: white;
			font-size: 20px;
			background-color: #535758;
			padding-left: 20px;
			/* 让行高等于盒子的高度,即可实现文字垂直居中的效果 */
			line-height: 60px;
			font-style: oblique;
			text-decoration: none;
			
		}
		a:hover {
			background-color: #FF6F00;
		}
	</style>
	<body>
		<div><a href="#">手机 电话卡</a></div>
		<div><a href="#">电视 盒子</a></div>
		<div><a href="#">笔记本 平板</a></div>
		<div><a href="#">出行 穿戴</a></div>
		<div><a href="#">智能 路由器</a></div>
		<div><a href="#">健康 儿童</a></div>
		<div><a href="#">耳机 音响</a></div>
	</body>
</html>

效果:

2.添加背景图片

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>背景图片</title>
		<style>
			/* 清楚边距 */
			* {
				margin: 0;
				padding: 0;
			}
			
			/* 添加全屏背景图 */
			body {
				background-image: url("../img/22.png");
				background-repeat: no-repeat;
				/* 铺满全屏 */
				background-size: cover;
				/* background: rgba(0, 0, 0, 0.6); */
				
			}
		</style>
	</head>
	<body>
		
	</body>
</html>

效果:

END.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/92875.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

[Android移动安全渗透基础教程] 易受攻击的移动应用程序

也许每个人出生的时候都以为这世界都是为他一个人而存在的&#xff0c;当他发现自己错的时候&#xff0c;他便开始长大 少走了弯路&#xff0c;也就错过了风景&#xff0c;无论如何&#xff0c;感谢经历 0x01 如何设置 GoatDroid (FourGoats) 1.1 简介&#xff08;概述&#…

【014】基于Vue.js的移动端购物商城网站(含源码、课设报告)

文章目录一、项目介绍二、代码及报告获取一、项目介绍 基于Vue.js的移动端购物商城网站(含源码、课设报告)&#xff0c;代码获取放在文末了&#xff0c;码字不易&#xff0c;感谢点赞~ 一、系统概述 本部分主要是对项目进行简要描述&#xff0c;包括开发背景、目的、内容及意…

用C++如何进行判断

&#x1f4d2;博客主页&#xff1a; ​​开心档博客主页​​ &#x1f389;欢迎关注&#x1f50e;点赞&#x1f44d;收藏⭐留言&#x1f4dd; &#x1f4cc;本文由开心档原创&#xff01; &#x1f4c6;51CTO首发时间&#xff1a;&#x1f334;2022年12月12日&#x1f334; ✉…

5个可保存的在线代码片段平台推荐-变成自己的代码词典库

文章目录1、谷歌等现代浏览器自带的代码片段2、github、gitee、gitcode等在线托管平台的gist列表3、各大在线IDE平台4、掘金代码片段5、在线笔记1、谷歌等现代浏览器自带的代码片段 路径&#xff1a;浏览器开发者工具->源代码->代码段 可以新建很多代码段&#xff0c;在…

深度Linux 居家办公 内网穿透 ssh反向映射 访问公司办公内网 局域网的一个简单方案 + vnc图形界面

1. 公网服务器 自行参考以下项目&#xff1a; x86_64: Docker arm64: Docker 2. 处于内网的办公机器 2.1 vpn客户端 BIOS配置定时开机&#xff08;一般在电源选项或者唤醒设置里&#xff09; 安装vpn客户端&#xff0c;配置好证书 配置开机自动&#xff0c;参考配置 /usr/…

[附源码]Nodejs计算机毕业设计基于的扶贫产品展销平台Express(程序+LW)

该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程。欢迎交流 项目运行 环境配置&#xff1a; Node.js Vscode Mysql5.7 HBuilderXNavicat11VueExpress。 项目技术&#xff1a; Express框架 Node.js Vue 等等组成&#xff0c;B/S模式 Vscode管理前后端分…

架构设计(三):引入缓存

架构设计&#xff08;三&#xff09;&#xff1a;引入缓存 作者&#xff1a;Grey 原文地址&#xff1a; 博客园&#xff1a;架构设计&#xff08;三&#xff09;&#xff1a;引入缓存 CSDN&#xff1a;架构设计&#xff08;三&#xff09;&#xff1a;引入缓存 缓存是一个…

红黑树详解及代码实现(C++)

红黑树定义 红黑树是一种二叉搜索树&#xff0c;但在每个节点上增加一个存储位标识节点的颜色&#xff0c;RED或BLACK。通过对任何一条从根到叶子的路径上各个结点着色方式的限制&#xff0c;红黑树确保没有一条路径会比其他路径长出两倍&#xff0c;因而接近平衡。&#xff0…

共同转债,新化转债上市价格预测

共同转债基本信息转债名称&#xff1a;共同转债&#xff0c;评级&#xff1a;A&#xff0c;发行规模&#xff1a;3.8亿元。正股名称&#xff1a;共同药业&#xff0c;今日收盘价&#xff1a;32.66&#xff0c;转股价格&#xff1a;27.14。当前转股价值 转债面值 / 转股价格 * …

TPU编程竞赛系列|基于TPU-MLIR实现UNet模型部署,比“快”更快!

由算能举办的TPU编程竞赛-AI应用挑战赛正式开赛啦&#xff01;本次大赛会为选手们提供一个预训练的分割模型UNet及数据集&#xff0c;无需训练模型&#xff0c;选手使用算能的MLIR开源编译器进行编译、量化及调优&#xff0c;兼顾精度与推理速度&#xff0c;最终实现UNet模型在…

社媒营销14问

&#x1f447;点击一键关注主笔&#xff1a;邹小困、邝晴岚主持人&#xff1a;增长黑盒分析师刘千出品&#xff1a;增长黑盒研究组前言移动互联网和智能终端的发展&#xff0c;共同催生了很多社交媒体&#xff0c;并吸引了大批量的用户。社交媒体已经成为日常生活的一部分&…

RTOS概念及线程的引入

目录 RTOS的概念 用人来类比单片机程序和RTOS 程序简单示例 提出问题 RTOS的概念 用人来类比单片机程序和RTOS 妈妈要一边给小孩喂饭&#xff0c;一边加班跟同事微信交流&#xff0c;怎么办&#xff1f; 对于单线条的人&#xff0c;不能分心、不能同时做事&#xff0c;她只…

深入解读云场景下的网络抖动 | 龙蜥技术

文/eBPF 技术探索 SIG 一、网络抖动背景 延时高&#xff0c;网络卡&#xff0c;卡住了美好&#xff01; 应用抖&#xff0c;业务惊&#xff0c;惊扰了谁的心&#xff1f; 当你在观看世界杯梅西主罚点球突然视频中断了几秒钟 当你在游戏中奋力厮杀突然手机在转圈圈无法响应…

毕业设计-基于大数据的新闻推荐系统-python

目录 前言 课题背景和意义 实现技术思路 实现效果图样例 前言 &#x1f4c5;大四是整个大学期间最忙碌的时光,一边要忙着备考或实习为毕业后面临的就业升学做准备,一边要为毕业设计耗费大量精力。近几年各个学校要求的毕设项目越来越难,有不少课题是研究生级别难度的,对本科…

Qt第四十三章:弹出框QDialog

弹出框类型 ①模态框(阻塞窗口)&#xff1a;QDialog().exec() ②窗口模态框(阻塞当前窗口)&#xff1a;QDialog().open() ③非模态框(非阻塞)&#xff1a;QDialog().show() 弹出框事件 ①触发accept()信号返回1 ②触发reject()信号返回0 ③触发done(int)信号返回int ④擦除弹…

MySql 事务的ACID与实现原理

数据库的事务是并发控制的基本单位&#xff0c;是指逻辑上的一组操作&#xff0c;要么全部执行&#xff0c;要么全部不执行。 一、事务的ACID&#xff1a; &#xff08;1&#xff09;原子性&#xff1a;事务是一个不可分割的工作单元&#xff0c;事务里的操作要么都成功&…

华秋干货分享|PCB电气安全间距设计规则

PCB工程师在设计电子产品的过程中&#xff0c;不能只考虑设计出来的精度以及完美要求&#xff0c;还有很大一个制约条件就是生产工艺的能力问题&#xff0c;因此DFM可制造性分析非常重要。避免设计出来的产品无法生产浪费时间及成本的问题发生。 那么走线层的可制造性都有那些…

nodejs092学生考勤请假管理系统vue

目 录 摘 要 I ABSTRACT II 目 录 II 第1章 绪论 1 1.1背景及意义 1 1.2 国内外研究概况 1 1.3 研究的内容 1 第2章 相关技术 3 2.1 nodejs简介 4 2.3 B/S结构 4 2.4 MySQL数据库 4 前端技术&#xff1a;nodejsvueelementui 前端&#xff1a;HTML5,CSS3、JavaScript、VUE 系统…

我阳了

大家好&#xff0c;我是kaiyuan。我阳了。太开心可以如此轻松自由地公开说出这三个字&#xff0c;毕竟在不久之前&#xff0c;这三个字可能会让我的生活走向完全改变&#xff0c;所有人也都是对这3个字讳莫如深。所以虽然在阳的期间身体非常难受&#xff0c;心理倒是十分轻松舒…

6种更优雅书写Python代码!

1 简介 一些比较熟悉pandas的读者朋友应该经常会使用query()、eval()、pipe()、assign()等pandas的常用方法&#xff0c;书写可读性很高的「链式」数据分析处理代码&#xff0c;从而更加丝滑流畅地组织代码逻辑。 但在原生Python中并没有提供类似shell中的管道操作符|、R中的…