CSS基本知识总结

news2024/11/17 20:52:08

目录

一、CSS语法

二、CSS选择器

三、CSS样式表

1.外部样式表

2.内部样式表

3.内联样式

四、CSS背景

1.背景颜色:background-color

2.背景图片:background-image

3.背景大小:background-size

4.背景图片是否重复:background-repeat

5.背景图像起始位置:background-position

6.背景图像是否固定:background-attachment

7.背景图像相对于什么定位:background-origin

8.背景绘制区域:background-clip

五、CSS文本格式

六、CSS链接

七、CSS盒子模型

1.margin-外边距

2.border-边框

3.padding-内边距

八、CSS定位-Position

九、CSS布局-Overflow

十、代码示例


CSS (Cascading Style Sheets,层叠样式表),是一种用来为结构化文档(如 HTML 文档或 XML 应用)添加样式(字体、间距和颜色等)的计算机语言,CSS 文件扩展名为 .css。


一、CSS语法

CSS语法构成:选择器+1条或多条声明。每条声明由一个属性和一个值构成。

p {
    color:red;
    text-align:center;
}

二、CSS选择器

CSS选择器包含:id选择器和class选择器。

id选择器以 # 显示。

# demo {
    color:#0fff;
    display:flex;
 }
/*调用时*/
<div id="demo"></div>

class选择器以 . 点号显示。

.img {
    background-color:#0fff;
 }
/*调用时*/
<div class="img"></div>

三、CSS样式表

1.外部样式表

通过<link>标签链接到样式表。

<head>
    <link rel="stylesheet" type="text/css" href="style.css">
</head>

2.内部样式表

通过<style>标签在文档头部定义。

<head>
    <style>
        p {
            margin-left:20px;
            padding:10px 20px;
            text-align:center;
        }
    </style>
</head>

3.内联样式

<p style="color:AliceBlue;margin:10px 20px">这是一个段落。</p>

四、CSS背景

1.背景颜色:background-color

.image {
    background-color:transparent  /*透明*/
}

2.背景图片:background-image

通过url设置相对或绝对位置。

.image {
    background-image:url("相对或绝对位置");
}

3.背景大小:background-size

属性值描述
cover使背景图片始终铺满整个背景区域,但如果图片比背景区域小,会自动拉伸或放大图片,使其铺满整个背景区域。
contain使背景图片在不拉伸的情况下,尽可能地在背景区域中居中显示,同时保留其原始大小。
px直接指定背景图片的大小,可以是固定值、百分比或关键字auto,其中auto表示原始大小。

4.背景图片是否重复:background-repeat

属性值描述
repeat默认值,表示背景图像在水平和垂直方向都重复出现。
repeat-x表示背景图像只在水平方向重复出现,而不在垂直方向上出现 。
repeat-y表示背景图像只在垂直方向上重复出现,而不在水平方向上出现。
no-repeat表示背景图像不重复出现。

5.背景图像起始位置:background-position

(1)属性值为“长度单位”

当background-position取值为长度单位时,要设置水平方向数值(x轴)和垂直方向数值(y轴)。通过px,百分比%来设置。

属性值

描述

x(数值)

设置网页的横向位置

y(数值)

设置网页的纵向位置

(2)属性值为“关键字”

当background-position取值为关键字时,也需要设置水平方向和垂直方向的值,使用关键字。

属性值

描述

top left

左上

top center

靠上居中

top right

右上

left center

靠左居中

center center

正中

right center

靠右居中

bottom left

左下

bottom center

靠下居中

bottom right

右下

6.背景图像是否固定:background-attachment

属性值

描述

scroll

默认值。背景图像会随着页面其余部分的滚动而移动。

fixed

当页面的其余部分滚动时,背景图像不会移动。

inherit

规定应该从父元素继承 background-attachment 属性的设置

7.背景图像相对于什么定位:background-origin

属性值描述
padding-box背景图像相对于内边距框来定位。
border-box背景图像相对于边框盒来定位。
content-box背景图像相对于内容框来定位。

8.背景绘制区域:background-clip

属性值描述
border-box默认值。背景绘制在边框方框内(剪切成边框方框)。
padding-box背景绘制在衬距方框内(剪切成衬距方框)。
content-box背景绘制在内容方框内(剪切成内容方框)。

五、CSS文本格式

属性值描述
color设置文本颜色
direction设置文本方向
letter-spacing设置字符间距
line-height设置行高
text-align对齐元素中的文本
text-decoration向文本添加修饰
text-indent缩进元素中文本的首行
text-shadow设置文本阴影
text-transform控制元素中的字母
unicode-bidi设置或返回文本是否被重写 
vertical-align设置元素的垂直对齐
white-space设置元素中空白的处理方式
word-spacing设置字间距

六、CSS链接

  • a:link - 正常,未访问过的链接
  • a:visited - 用户已访问过的链接
  • a:hover - 当用户鼠标放在链接上时
  • a:active - 链接被点击的那一刻

注意:

  • a:hover 必须跟在 a:link 和 a:visited后面
  • a:active 必须跟在 a:hover后面

七、CSS盒子模型

  • Margin(外边距) - 清除边框外的区域,外边距是透明的。
  • Border(边框) - 围绕在内边距和内容外的边框。
  • Padding(内边距) - 清除内容周围的区域,内边距是透明的。
  • Content(内容) - 盒子的内容,显示文本和图像。

1.margin-外边距

margin属性可以有1-4个值:

  • margin:25px 50px 75px 100px;
    • 上边距为25px
    • 右边距为50px
    • 下边距为75px
    • 左边距为100px
  • margin:25px 50px 75px;
    • 上边距为25px
    • 左右边距为50px
    • 下边距为75px
  • margin:25px 50px;
    • 上下边距为25px
    • 左右边距为50px
  • margin:25px;
    • 所有的4个边距都是25px

2.border-边框

border-style属性可以有1-4个值:

  • border-style:dotted solid double dashed;
    • 上边框是 dotted
    • 右边框是 solid
    • 底边框是 double
    • 左边框是 dashed
  • border-style:dotted solid double;
    • 上边框是 dotted
    • 左、右边框是 solid
    • 底边框是 double
  • border-style:dotted solid;
    • 上、底边框是 dotted
    • 右、左边框是 solid
  • border-style:dotted;
    • 四面边框是 dotted

3.padding-内边距

padding属性可以有1-4个值:

  padding:25px 50px 75px 100px;

  • 上填充为25px
  • 右填充为50px
  • 下填充为75px
  • 左填充为100px

  padding:25px 50px 75px;

  • 上填充为25px
  • 左右填充为50px
  • 下填充为75px

  padding:25px 50px;

  • 上下填充为25px
  • 左右填充为50px

  padding:25px;

  • 所有的填充都是25px

八、CSS定位-Position

属性值描述
static默认值,静态定位。
relative相对定位元素的定位是相对其正常位置。
fixed

元素的位置相对于浏览器窗口是固定位置。

absolute绝对定位的元素的位置相对于最近的已定位父元素,如果元素没有已定位的父元素,那么它的位置相对于<html>。
sticky粘性定位,基于用户的滚动位置来定位。

九、CSS布局-Overflow

属性值描述
visible默认值。内容不会被修剪,会呈现在元素框之外。
hidden内容会被修剪,并且其余内容是不可见的。
scroll内容会被修剪,但是浏览器会显示滚动条以便查看其余的内容。
auto如果内容被修剪,则浏览器会显示滚动条以便查看其余的内容。
inherit规定应该从父元素继承 overflow 属性的值。

十、代码示例

下面结合上面学到的知识代码,将会简单编写代码实现:发送新年祝福~

<html>
	<head>
		<meta charset="utf-8">
		<title>2024新年祝福</title>
		<style type="text/css">
			.deng-box {
				position: fixed;
				top: -40px;
				right: 150px;
				z-index: 9999;
				pointer-events: none;
			}
			
			.deng-box1 {
				position: fixed;
				top: -30px;
				right: 10px;
				z-index: 9999;
				pointer-events: none;
			}
			
			.deng-box2{
				position: fixed;
				top: -40px;
				left: 150px;
				z-index: 9999;
				pointer-events: none;
			}
			
			.deng-box3 {
				position: fixed;
				top: -30px;
				left: 10px;
				z-index: 9999;
				pointer-events: none;
			}
			
			.deng-box1 .deng,
			.deng-box3 .deng {
				position: relative;
				width: 120px;
				height: 90px;
				margin: 50px;
				background: #d8000f;
				background: rgba(216,0,15,0.8);
				border-radius: 50% 50%;
				-webkit-transform-origin: 50% -100px;
				-webkit-animation: swing 5s infinite ease-in-out;
				box-shadow: -5px 5px 30px 4px #fc903d
			}
			
			.deng {
				position: relative;
				width: 120px;
				height: 90px;
				margin: 50px;
				background: #d8000f;
				background: rgba(216,0,15,0.8);
				border-radius: 50% 50%;
				-webkit-transform-origin: 50% -100px;
				-webkit-animation: swing 3s infinite ease-in-out;
				box-shadow: -5px 5px 50px 4px #fa6c00;
			}
			
			.deng-a {
				width: 100px;
				height: 90px;
				background: #d8000f;
				background: rgba(216,0,15,0.1);
				margin: 12px 8px 8px 8px;
				border-radius: 50% 50%;
				border: 2px solid #dc8f03;
			}
			
			.deng-b {
				width: 45px;
				height: 90px;
				background: #d8000f;
				background: rgba(216,0,15,0.1);
				margin: -4px 8px 8px 26px;
				border-radius: 50% 50%;
				border: 2px solid #dc8f03;
			}
			
			.xian {
				position: absolute;
				top: -20px;
				left: 60px;
				width: 2px;
				height: 20px;
				background: #dc8f03;
			}
			
			.shui-a {			
				position: relative;
				width: 5px;
				height: 20px;
				margin: -5px 0 0 59px;
				-webkit-animation: swing 4s infinite ease-in-out;
				-webkit-transform-origin: 50% -45px;
				background: orange;
				border-radius: 0 0 5px 5px;
			}
			
			.shui-b {
				position: absolute;
				top: 14px;
				left: -2px;
				width: 10px;
				height: 10px;
				background: #dc8f03:
				border-radius: 50%;
			}

			.shui-c {
				position: absolute;
				top: 18px;
				left: -2px;
				width: 10px;
				height: 35px;
				background: orange;
				border-radius: 0 0 0 5px;
			}
			
			.deng:before {
				position: absolute;
				top: -7px;
				left: 29px;
				height: 12px;
				width: 60px;
				content: " ";
				display: block;
				z-index: 999;
				border-radius: 5px 5px 0 0;
				border: solid 1px #dc8f03;
				background: orange;
				background: linear-gradient(to right, #dc8f03, orange, #dc8f03, orange, #dc8f03);
			}
			
			.deng:after {
				position: absolute;
				bottom: -7px;
				left: 10px;
				height: 12px;
				width: 60px;
				content: " ";
				display: block;
				margin-left: 20px;
				border-radius: 0 0 5px 5px;
				border: solid 1px #dc8f03;
				background: orange;
				background: linear-gradient(to right, #dc8f03, orange, #dc8f03, orange, #dc8f03);
			}
			
			.deng-t {
				font-family: 黑体, Arial, Lucida Grande, Tahoma, sans-serif;
				font-size: 3.2rem;
				color: #dc8f03;
				font-weight: 700;
				line-height: 85px;
				text-align: center;
			}
			.night .deng-box,
			.night .deng-box1,
			.night .deng-t {
				background:transparent !important;
			}
			
			@-moz-keyframes swing {
				0% {
					-moz-transform: rotate(-10deg);
				}
				50% {
					-moz-transform: rotate(10deg);
				}
				100% {
					-moz-transform: rotate(-10deg);
				}
			}
			
			@-webkit-keyframes swing {
				0% {
					-webkit-transform: rotate(-10deg);
				}
				50% {
					-webkit-transform: rotate(10deg);
				}
				100% {
					-webkit-transform: rotate(-10deg);
				}
			}
		</style>	
		
		<style>
			h1 {
				text-align:center;
				color:#B8860B;
				font-size:40px;
				margin:10px;
				padding:10px;
			}
			
			
			body {
				background-image:url('https://img.tukuppt.com/bg_grid/00/13/34/ieRv1gTX6x.jpg!/fh/350'); 
				background-repeat:no-repeat;
				background-size:cover;
			}
			
			.image-container {
				display:flex;
			}
			
			img {
				width:33%;
				height:25%;
				margin-right:10px;
			}
			
		</style>
		
		<style>
			.fade-in-out {
				opacity: 0;
				animation: fade-in-out-animation 3s ease-in-out infinite;
			}
			
			@keyframes fade-in-out-animation {
				0% {
					opacity:0;
				}
				50% {
					opacity:1;
				}
				100% {
					opacity:0;
				}
			}
		</style>
		
		<style>
 
			/* 应用动画到目标元素 */
			.shake {
				text-align:center;
				color:#4B0082;
				font-size:30px;
				padding:10px;
				position:relative;
				-webkit-box-reflect: below -12px linear-gradient(transparent,rgba(0,0,0,0.2));
			}

			.shake span{
				position: relative;
				display: inline-block;
				font-size: 30px;
				text-transform: uppercase;
				letter-spacing: 2px;
				/* 执行动画:动画名 时长 加速后减速 无限次播放 */
				animation: shake 1s ease-in-out infinite;
				/* 通过var函数调用自定义属性--i,再计算出动画延迟时间 */
				animation-delay: calc(0.1s * var(--i));
			}
 
			/* 定义动画 */
			@keyframes shake {
				0%{
					transform: translateY(0);
				}
				20%{
					transform: translateY(-20px);
				}
				40%,100%{
					transform: translateY(0);
				}
			}
			
		</style>
	</head>
	
	<body>
		<div class="deng-box2">
			<div class="deng">
				<div class="xian">
			</div>
			<div class="deng-a">
				<div class="deng-b">
					<div class="deng-t">年</div>
				</div>
			</div>
			<div class="shui shui-a">
				<div class="shui-c"></div>
				<div class="shui-b"></div>
				</div>
			</div>
		</div>
		
		<div class="deng-box3">
			<div class="deng">
				<div class="xian">
			</div>
			<div class="deng-a">
				<div class="deng-b">
					<div class="deng-t">新</div>
				</div>
			</div>
			<div class="shui shui-a">
				<div class="shui-c"></div>
				<div class="shui-b"></div>
				</div>
			</div>
		</div>
		
		<div class="deng-box1">
			<div class="deng">
				<div class="xian">
			</div>
			<div class="deng-a">
				<div class="deng-b">
					<div class="deng-t">乐</div>
				</div>
			</div>
			<div class="shui shui-a">
				<div class="shui-c"></div>
				<div class="shui-b"></div>
				</div>
			</div>
		</div>
		
		<div class="deng-box">
			<div class="deng">
				<div class="xian">
			</div>
			<div class="deng-a">
				<div class="deng-b">
					<div class="deng-t">快</div>
				</div>
			</div>
			<div class="shui shui-a">
				<div class="shui-c"></div>
				<div class="shui-b"></div>
				</div>
			</div>
		</div>

		<br>
		<h1>新年快乐</h1>
		<h1>龙年大吉</h1>
		<br>
		<div class="image-container">
			<img src="images/yanhua1.gif">
			<img src="images/2024.jpg" alt="HappyNewYear">
			<img src="images/yanhua.gif">
		</div>	
		<strong><div class="shake">
			<span style="--i:1;">小</span>
			<span style="--i:2;">哪</span>
			<span style="--i:3;">吒</span>
			<span style="--i:4;">祝</span>
			<span style="--i:5;">各</span>
			<span style="--i:6;">位</span>
			<span style="--i:7;">在</span>
			<span style="--i:8;">新</span>
			<span style="--i:9;">的</span>
			<span style="--i:10;">一</span>
			<span style="--i:11;">年</span>
			<span style="--i:12;">里</span>
			<span style="--i:13;">,</span>
			<span style="--i:14;">心</span>
			<span style="--i:15;">想</span>
			<span style="--i:16;">事</span>
			<span style="--i:17;">成</span>
			<span style="--i:18;">,</span>
			<span style="--i:19;">财</span>
			<span style="--i:20;">运</span>
			<span style="--i:21;">亨</span>
			<span style="--i:22;">通</span>
			<span style="--i:23;">!</span>
		</div></strong>
	</body>
	
</html>

具体实现如下:

新年祝福

本文主要分享了CSS的基础知识,通过学习这篇文章,相信大家会对CSS有一个初步认识,下篇将会介绍:CSS3的基础知识,大家尽请期待~

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

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

相关文章

鸿蒙应用开发学习:获取手机位置信息

一、前言 移动应用中经常需要获取设备的位置信息&#xff0c;因此在鸿蒙应用开发学习中&#xff0c;如何获取手机的位置信息是必修课。之前我想偷懒从别人那里复制黏贴代码&#xff0c;于是在百度上搜了一下&#xff0c;可能是我输入的关键字不对&#xff0c;结果没有找到想要…

离线编译 onnxruntime-with-tensortRT

记录为centos7的4090开发机离线编译onnxruntime的过程&#xff0c;因为在离线的环境&#xff0c;所以踩了很多坑。 https://onnxruntime.ai/docs/execution-providers/TensorRT-ExecutionProvider.html 这里根据官网的推荐安装1.15 版本的onnx 因为离线环境&#xff0c;所以很…

10个常考的前端手写题,你全都会吗?(下)

前言 &#x1f4eb; 大家好&#xff0c;我是南木元元&#xff0c;热爱技术和分享&#xff0c;欢迎大家交流&#xff0c;一起学习进步&#xff01; &#x1f345; 个人主页&#xff1a;南木元元 今天接着上篇再来分享一下10个常见的JavaScript手写功能。 目录 1.实现继承 ES5继…

【制作100个unity游戏之23】实现类似七日杀、森林一样的生存游戏2(附项目源码)

本节最终效果演示 文章目录 本节最终效果演示系列目录前言添加小动物模型动画动物AI脚本效果 添加石头石头模型拾取物品效果 源码完结 系列目录 【制作100个unity游戏之23】实现类似七日杀、森林一样的生存游戏1&#xff08;附项目源码&#xff09; 【制作100个unity游戏之23】…

卓振江:我的大数据能力提升之路 | 提升之路系列(二)

导读 为了发挥清华大学多学科优势&#xff0c;搭建跨学科交叉融合平台&#xff0c;创新跨学科交叉培养模式&#xff0c;培养具有大数据思维和应用创新的“π”型人才&#xff0c;由清华大学研究生院、清华大学大数据研究中心及相关院系共同设计组织的“清华大学大数据能力提升项…

x-cmd pkg | perl - 具有强大的文本处理能力的通用脚本语言

目录 介绍首次用户技术特点竞品进一步阅读 介绍 Perl 是一种动态弱类型编程语言。Perl 内部集成了正则表达式的功能&#xff0c;以及巨大的第三方代码库 CPAN;在处理文本领域,是最有竞争力的一门编程语言之一 生态系统&#xff1a;综合 Perl 档案网络 (CPAN) 提供了超过 25,0…

【江科大】STM32:MPU6050介绍

文章目录 MPU6050介绍结构图MPU6050参数硬件电路模块内部结构框图数据帧格式寄存器地址 MPU6050介绍 MPU6050是一个6轴姿态传感器&#xff0c;可以测量芯片自身X、Y、Z轴的加速度、角速度参数&#xff0c;通过数据融合&#xff0c;可进一步得到姿态角&#xff0c;常应用于平衡…

maven配置阿里镜像源

在用户设置settings.xml文件里找到mirrors配置部分&#xff0c;大概在146行&#xff0c;添加如下配置&#xff1a; <mirror><id>alimaven</id><name>aliyun maven</name><url>http://maven.aliyun.com/nexus/content/groups/public/</u…

防火墙子接口配置

目录 拓扑需求 配置DMZ区域配置IP 总公司IP配置生产区办公区 总公司配置子接口网关生产区网关办公区网关 配置安全策略&#xff08;trust to DMZ&#xff09; 测试 拓扑 需求 配置总公司区域配置DMZ区域配置总公司区域到DMZ区域互通&#xff08;trust to DMZ&#xff09; 配置…

基于springboot+vue的学科竞赛管理系统(前后端分离)

博主主页&#xff1a;猫头鹰源码 博主简介&#xff1a;Java领域优质创作者、CSDN博客专家、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战 主要内容&#xff1a;毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询 文末联系获取 研究背景…

实时渲染 -- 几何(Geometry)

几何表示&#xff08;Geometry Representation&#xff09; 隐式表面&#xff08;Implicit Surface&#xff09; 一个函数定义一个隐式几何 f(x,y,z)0。​ 容易判断一个点是在几何体内部&#xff08;f<0&#xff09;还是外部&#xff08;f>0&#xff09; 显式表面&…

【C++】位图+布隆过滤器

位图布隆过滤器 1.位图2.布隆过滤器 喜欢的点赞&#xff0c;收藏&#xff0c;关注一下把&#xff01; 1.位图 问: 给40亿个不重复的无符号整数&#xff0c;没排过序。给一个无符号整数&#xff0c;如何快速判断一个数是否在这40亿个数中。 可能你会想到下面这几种方式&#…

分享多种vcruntime140_1.dll丢失修复办法,vcruntime140_1.dll文件下载

vcruntime140_1.dll是Windows操作系统中的一个重要系统文件&#xff0c;它与C运行库相关。当计算机上缺少或损坏了vcruntime140_1.dll文件时&#xff0c;可能会导致一系列问题和错误。出现这文件错误&#xff0c;应该很多小伙伴都会想到重新下载vcruntime140_1.dll&#xff0c;…

uniapp微信小程序图片上传功能实现,页面显示文件列表、删除功能

uniapp小程序图片上传功能效果预览 一、template 页面结构 <view class"upload-box"><view class"upload-list"><view class"upload-item" v-for"(item,index) of fileList" :keyindex><image class"img…

2024年可能会用到的几个地图可视化模板

前言 在数字化的过程中&#xff0c;数据可视化变得越来越重要。用户喜欢通过酷炫的视觉效果和直观的数据展示来理解数据。可视化地图组件是数据可视化的重要组成部分。这些地图组件提供多样化的效果&#xff0c;能够更好地展示数据的关系和地理分布&#xff0c;直观地将数据与…

制图新手首选!6款在线软件,让制图变得简单易学!

1. 即时设计 即时设计是一种国内在线UI设计工具&#xff0c;专注于UI设计领域&#xff0c;支持多人合作。即时设计是一种年轻的UI设计工具&#xff0c;前景广阔。UI设计工具的即时设计支持各种主流格式文件的引入&#xff0c;可以很容易地从其他软件转移。即时设计作为新一代U…

ubuntu22.04安装filebeat报错解决

1、查看报错 journalctl -u filebeat 或者 filebeat -c /etc/filebeat/filebeat.yml找到报错信息 runtime/cgo: pthread_create failed: Operation not permitted 2、解决报错 在filebeat.yml配置文件添加如下配置&#xff0c;重启filebeat seccomp:default_action: allow…

生命在于折腾——WeChat机器人的研究和探索

一、前言 2022年&#xff0c;我玩过原神&#xff0c;当时看到了云崽的QQ机器人&#xff0c;很是感兴趣&#xff0c;支持各种插件&#xff0c;查询游戏内角色相关信息&#xff0c;当时我也自己写了几个插件&#xff0c;也看到很多大佬编写的好玩的插件&#xff0c;后来因为QQ不…

Java零基础学习19:集合

编写博客目的&#xff1a;本系列博客均根据B站黑马程序员系列视频学习和编写目的在于记录自己的学习点滴&#xff0c;方便后续回忆和查找相关知识点&#xff0c;不足之处恳请各位有缘的朋友指正。 一、集合和数组的对比 数组和集合很相似&#xff0c;但集合只能存储引用数据类…

3W Star 网易云音乐第三方开源 API 仓库因侵权被要求删除

NeteaseCloudMusicApi是一个使用Node.js编写的非官方网易云音乐API&#xff0c;用于获取网易云音乐平台的歌曲信息。该项目是完全开源的&#xff0c;在GitHub上获得了超过3万的star。 根据公开信息&#xff0c;NeteaseCloudMusicApi的主要目的是整理网易云音乐公开的网页接口&a…