最新CSS入门总结

CSS(层叠样式表)是一种用于网页样式设计的语言,它通过为 HTML 标签添加样式来控制网页的外观和布局。CSS 可以设置元素的颜色、字体、间距、对齐方式等,还可以用于创建响应式设计,以适应不同设备的屏幕尺寸。CSS 是前端开发的核心技术之一,和 HTML 一起构建网页的内容和视觉效果。

a、什么是CSS

1、Casacding Style Sheet 层叠级联样式表

CSS:表现 美化网页

字体、颜色、边距、高度、宽度、背景图片、网页定位、网页浮动

2、发展史

CSS1.0

CSS2.0 DIV(块)+ CSS HTML与CSS结构分离的思想,使网页变得简单 SEO

CSS2.1 浮动 定位

CSS3.0 圆角 阴影 动画 浏览器兼容性

3、快速入门

第一种方式

<head><meta charset="UTF-8"><title>Title</title>
<!--  规范 style 可以编写css的代码
语法:选择器{声明1:声明2:声明3}
--><style>h1{color: #000;}</style>
</head>
<body>
<h1> 我是标题 </h1>
</body>

第二种方式

CSS优势:

内容和表现分离

网页结构表现统一,可以实现复用

样式十分的丰富

建议使用独立于html的css文件

利用SEO,容易被搜素引擎收录

4、CSS的3种导入方式

行内样式

<h1 style="color: green"> 我是标题 <h1/>

内部样式

<style>h1{color:red}
</style>

外部样式

属性写在 css文件中
然后导入
<link rel="stylesheet" href="css/style.css">

b、选择器

作用:选择页面上的某一个或者某一类元素

1、基本选择器

标签 选择器:选择一类标签 语法——标签{}

类 选择器:选择所有class属性一致的标签,跨标签 语法——.类名{}

Id 选择器:全局唯一 语法——#id名称{}

id》class》标签

2、层次选择器
2.1、后代选择器:在某个元素的后面 祖爷爷 爷爷 爸爸 你
/* 后代选择器*/body p{background: green;}

2.2、子选择器:一代 儿子
/* 子选择器 */body>p{background: olive;}

2.3、相邻兄弟选择器:同辈,就是下面的一个换变化,不是本身
/* 相邻 弟弟选择器*/.qingjiang + p{background: blue;}
2.4、通用选择器:就是本身,下面的所有标签
/* 通用选择器*/.qingjiang~p{background: blueviolet;}

3、结构伪类选择器

伪类:条件

  <style>/* ul的第一个子元素*/ul li:first-child{background: red;}ul li:last-child{background: olive;}/* 定位到本身的 父元素 ,选中父级元素的第一个元素*/p:nth-child(1){background: brown;}</style>

4、属性选择器(常用)

语法:标签【属性名】{}

 <style>.demo a{float: left;display: block;height: 50px;width: 50px;border-radius: 10px;background: blue;text-align: center;color: gainsboro;text-decoration: none;margin-right: 5px;font:bold 20px/50px Arial;}/* 存在 id属性的元素   a[]{}  翻译:a标签带有id属性*//* = 代表绝对等于*= 包含这个元素^= 以什么开头$= 以什么结尾*//*a[id]{*//*  background: yellow;*//*}*/a[id=first]{background: green;}/* class中 有link的元素*/a[class*="link"]{background: chartreuse;}/* 选中href中以http开头的元素*/a[href^=http]{background: crimson;}/* 选中以com结尾的href元素*/a[href$=com]{background: black;}</style>
</head>
<body>
<p class="demo"><a href="https://baidu.com" class="link item first" id="first" >1</a><a href="" class="linksitem active" target="_blank" title="text">2</a><a href="images">3</a><a href="">4</a><a href="">5</a><a href="">6</a><a href="">7</a><a href="">8</a><a href="">9</a><a href="abcd.doc" class="link item last">10</a>
</p>
</body>

5、美化网页元素

5.1、为什么要美化网页

有效的传递页面信息、美化,页面漂亮,才能吸引用户,凸显页面的主题,提高用户的体验

5.2、字体样式

1、font-family:字体

2、font-size:字体大小

3、font-weight:字体粗细

4、color:字体颜色

5.3、文本样式

1、颜色:coor,rgb,rgba

2、文本对齐的方式:text-align = center

3、首航缩进:text-indent:2en

4、行高:line-height

5、装饰:text-decoration

6、文本图片水平对齐:vertical-align:middle

5.4、阴影

/* text-shadow:阴影颜色 水平偏移,垂直偏移,阴影半径*/
#price{text-shadow:#3cc7f5 10px -10px 2px;
}
5.5、超链接伪类

正常情况下:a,hover(鼠标悬浮的颜色)

a{text-decoration:none;color:#000;
}
/* 鼠标悬浮的颜色 */
a:hover{color: orange;font-size: 50px;
}
5.6、列表
/* ui li */
list -style:none 去掉原点circle 空心圆decimal 数字square 正方形
5.7、背景

背景颜色

背景图片

<head><meta charset="UTF-8"><title>Title</title><style>div{width: 1000px;height: 700px;border: 1px solid red;background-image: url("images/icon.png");/* 默认是全部平铺*/}.div1{background-repeat: repeat-x;}.div2{background-repeat: repeat-y;}.div3{background-repeat: no-repeat;}</style>
</head>
<body>
<div class="div1"></div>
<div class="div2"></div>
<div class="div3"></div>

第二种方式

/* 颜色 图片 图片位置 平铺方式*/
background: red url("images/icon.png") 270px 10px no-repeat;
5.8、渐变

c、盒子模型

1、什么是盒子模型

外边距:margin

内边距:padding

边框:border

1.1、边框

边框的粗细

边框的样式

边框的颜色

border: 1px solid red;
/* 粗细 状态 颜色*/
1.2、内外边距
/*  上 下 左 右*/
margin: 1px 2px 3px 4px
padding: 1px 2px 3px 4px
/* 上下 左右*/,居中
margin: 0px auto;

盒子的计算方式:你这个元素到底多大

margin+border+padding+内容宽度
1.3、圆角边框

4个角

<!-- 4个 = 左上  右上  右下  左下    顺时针
2个 = 左上+右下    右上+左下-->
div{width: 100px;height: 40px;margin: 30px;background: red;border-radius: 50px 50px 0px 0px;}
1.4、阴影

可以发光

div{width: 100px;height: 100px;border: 10px solid red;box-shadow: 10px 10px 1px yellow;/*第三个数值越大,越模糊*/}

1.5、浮动

块级元素:独占一行

h1~h6   p   div 列表...

行内元素:不独占一行

span    a   img     strong  em  br  input

行内元素 可以被包含在 块级元素中,反之,则不可以

display
/*display*/-
/* black:转化为 块元素
inline:转化为 行内元素
inline-black:可以是行内也可以是块元素,可以内联*/
.layer01{border: 1px #F00 dashed;display: inlin-black;
}
.layer02{border: 1px #00F dashed;display: inlin-black;
}
.layer03{border: 1px #060 dashed;display: inlin-black;
}
.layer04{border: 1px #666 dashed;font-size: 12px;line-height: 23px;
}

display也是一种实现行内元素排列的方式,但是很多情况下是使用float

float

浮动就是独立于原来的地方,浮起来。左右浮动

.layer01{border: 1px #F00 dashed;float: left;
}
.layer02{border: 1px #00F dashed;float: left;
}
.layer03{border: 1px #060 dashed;float: left;
}
.layer04{border: 1px #666 dashed;font-size: 12px;line-height: 23px;
}
父级边框塌陷的问题
/*
clear:right 右侧不允许有浮动元素
clear:left 左侧不允许有浮动元素
clear: both 两侧不允许有浮动元素
*/

浮动超出边框内容 解决方案:

1、增加父级元素的高度(不推荐)

弊端:元素设有了固定的高度,会被限制

2、增加一个空的div标签,清除浮动

<div class="clear"><div/>
​
.claer{clear:both;margin:0;padding:0;
}

弊端:设置无用的div

3、overflow

在父级元素中增加一个 overflow: hidden

弊端:简单,下拉的一些场景避免使用

4、父类添加一个伪类:after(推荐使用)

#father:after{content: '';display: block;clear: both;
}

优势:写法稍微复杂,没有副作用

1.6、定位
1、相对定位

相对定位,相对于自己原来的位置进行偏移,先有position再有各个方向的数值。原来的位置会被保留

    #first{background-color: #0000FF;border: 1px solid #666;position: relative;  /* 相对定位 上下左右*/top: -20px;left: 20px;}
2、绝对定位

定位:基于XXX定位,上下左右-

1、没有父级元素定位的前提下,相对于浏览器定位

2、假设父级元素存在定位,我们通常会相对于父级元素进行偏移

3、在父级元素范围内移动

    #second{background-color: orange;border: 1px solid #666;position: absolute;right: 30px;}

相对于父级或浏览器的位置,进行指定的偏移,绝对定位的话,它不在标准文档流中,原来位置不会被保留

3、固定定位

fixed,定死

    div:nth-of-type(2){ /* fixed 固定定位*/width: 50px;height: 50px;background: yellow;position: fixed;right: 0;bottom: 0;}
4、z-index

z-index:默认是0,最高无限~999。一般用到定位,然后堆叠进行

opacity: 0.5;
1.7、动画

CSS 动画通过过渡效果和关键帧动画为网页元素添加动态变化和交互性,提升用户体验和视觉吸引力。

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

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

相关文章

再给我两分钟,我能教会你使用 nvm 一键搞定node 和 npm

1. nvm简介 NVM&#xff08;Node Version Manager&#xff09;是Node.js的版本管理工具&#xff0c;它允许用户在同一台机器上安装和管理多个Node.js版本。这对于需要在不同项目之间切换Node.js版本的开发者来说非常有用&#xff0c;因为不同的项目可能依赖于不同版本的Node.js…

CAN总线通信协议

目录 一、CAN总线的介绍 二、主流通信协议对比 1.CAN硬件电路 三、CAN电平标准 四、CAN总线帧格式 1.CAN总线的5种类型帧 2.CAN总线的帧介绍 1.CAN总线的两种数据格式&#xff08;标准格式与扩展格式&#xff09; 2.遥控帧 3.错误帧 4.过载帧 5.帧间隔 3.位填充 4…

golang必备项目管理机制:工作区

在 Go 1.18 及以后的版本中&#xff0c;工作区&#xff08;Workspace&#xff09;是一种新的项目管理方式&#xff0c;可以让多个项目共享同一个模块缓存和依赖。这意味着你不需要在每个项目中单独安装依赖&#xff0c;而是可以共享依赖&#xff0c;这样可以节省空间和时间。 假…

CUDA 运行时GPU信息查询

cuda 官网文档名&#xff1a;CUDA_Runtime_API 运行时API查询GPU信息 调用 cudaDeviceProp prop; cudaGetDeviceProperties(&prop, device_id) 定义 由此可见&#xff0c;只能在主机上调用。 #include <cuda_runtime.h>#include <iostream> #include <…

ConditionVideo: 无训练的条件引导视频生成 | AAAI 2024

作者&#xff1a;彭博&#xff0c;上海人工智能实验室与上海交大2023级联培博士。 最近的工作已经成功地将大规模文本到图像模型扩展到视频领域&#xff0c;产生了令人印象深刻的结果&#xff0c;但计算成本高&#xff0c;需要大量的视频数据。在这项工作中&#xff0c;我们介…

游戏如何应对薅羊毛问题

在大众眼里&#xff0c;“薅羊毛”是指在电商领域&#xff0c;“羊毛党”利用平台、商家的促销规则&#xff0c;低价获取商品和服务的行为。如前不久“小天鹅被一夜薅走7000万”的案例震惊全网。 然而实际上&#xff0c;“薅羊毛”现象不仅存在于电商场景&#xff0c;在游戏中…

设计模式之适配器模式(通俗易懂--代码辅助理解【Java版】)

文章目录 设计模式概述1、适配器模式2、适配器模式的使用场景3、优点4、缺点5、主要角色6、代码示例1&#xff09;UML图2&#xff09;源代码&#xff08;1&#xff09;定义一部手机&#xff0c;它有个typec口。&#xff08;2&#xff09;定义一个vga接口。&#xff08;3&#x…

docker入门-快速学会docker

死记硬背一张图 镜像类似于我们是使用的虚拟机&#xff0c;创建虚拟机前需要下载的系统镜像文件&#xff0c;比如iso文件&#xff0c;img文件等等这样一些镜像文件。 容器可以比作正在运行中的一个虚拟机。 tar文件&#xff0c;tar文件类似于vm使用时的vmdk文件。通过load指…

在 Docker容器中安装 ROS-Melodic 并使用 rviz 进行图形化显示

文章目录 写在前面1. 背景描述2. 安装步骤2.1 允许本地机器上的用户或进程连接到 X server2.2 拉取 docker 镜像2.3 使用镜像osrf/ros:melodic-desktop-full创建并运行容器2.4 运行 roscore2.5 运行 rviz 参考链接 写在前面 自己的测试环境&#xff1a; Ubuntu20.04&#xff0…

面网易后台开发居然遇到了一个困难难度算法题

在提供面经的同学中&#xff0c;竟然有同学在面试网易后台研发的时候遇到了一道困难难度的算法题。 一般来说&#xff0c;大多数面试的算法题都是以中等难度为主&#xff0c;遇到困难难度的算法题也许是公司现在不缺人、也许是在选拔人才、当然也很可能是面试官其实并不想要你…

在三维可视化项目中,B/S和C/S架构该如何选择?

一、什么是B/S和C/S 在3D数据可视化中&#xff0c;有两种常见的架构模式&#xff1a;BS&#xff08;Browser/Server&#xff09;和CS&#xff08;Client/Server&#xff09; B/S模式 B/S模式是指将3D数据可视化的逻辑和处理放在服务器端&#xff0c;而在客户端使用浏览器进行…

前端新机部署

编辑器&#xff1a;vscode 下载地址 vscode常用插件 显示代码修改历史、作者等信息 GitLens Nodejs版本 Node版本管理工具 Nvm下载地址 nvm常用命令&#xff1a; nvm ls // 查看安装的所有node.js的版本nvm list available //查看可以安装的所有node.js版本nvm install 版本…

Linux:Ubuntu系统开启SSH服务

在Ubuntu上开启SSH服务&#xff0c;可以按照以下步骤进行&#xff1a; 1.安装OpenSSH服务 如果你还没有安装OpenSSH服务&#xff0c;可以使用以下命令安装&#xff1a; sudo apt update sudo apt install openssh-server2. 启动SSH服务 安装完成后&#xff0c;启动SSH服务&a…

Docker在linux系统中的下载与使用

Docker在linux系统中的下载与使用 一、docker作用,下载及安装二、docker镜像三、创建容器四、容器数据卷 一、docker作用,下载及安装 ubuntu下载安装docker 命令&#xff1a;在ubuntu上面执行这个命令 Docker version:查看docker是否安装成功 配置阿里云镜像加速:进入阿里云网站…

【WEB应用安全测试指南–蓝队安全测试2】--超详细-可直接进行实战!!!亲测-可进行安全及渗透测试

安全基础理论入门知识参考上一篇《WEB应用安全测试指南蓝队安全测试1》 WEB应用安全测试指南2 一、文件 I/O 类1.1、任意文件上传1.2、任意文件下载1.3、文件包含 二、接口安全类2.1、短信炸弹2.2、邮件炸弹2.3、短信内容可控2.4、邮件内容可控 三、逻辑流程类3.1、越权3.2、未…

k8s部署jenkins集群,配置集群kubernetes plugin的pod模板

先安装jenkins插件&#xff0c;对应的源码地址是kubernetes-plugin&#xff0c;以供参考。 进入节点管理&#xff0c;开始配置。 点击 “ configure clouds” 一、配置集群 填写k8s地址&#xff1a;https://kubernetes.default.svc.cluster.local 命名空间&#xff1a;kuberne…

Redis高并发缓存设计问题与性能优化

1、缓存设计典型问题 1.1、缓存穿透 缓存穿透是指查询一个根本不存在的数据&#xff0c;缓存层和存储层都不会命中&#xff0c;通常出于容错的考虑&#xff0c;如果从存储层查不到数据则不写入缓存层。 缓存穿透将导致不存在的数据每次请求都要到存储层去查询&#xff0c;失…

【Python】从零到一,搭建高效Web服务器,轻松上手!Python开发者必备(文末附带源码分享)

CSDN Python源码分享&#xff1a;实现一个简单的Web服务器 在CSDN上&#xff0c;我们经常分享各种技术文章和源码&#xff0c;帮助开发者们不断提升自己的技能。今天&#xff0c;我将为大家分享一个使用Python实现的简单Web服务器源码。这个Web服务器能够处理基本的HTTP GET请…

打破常规,BD仓储物流的效能提升!

当前&#xff0c;随着国家战略的推进&#xff0c;JS与民用领域的融合不断加深&#xff0c;物流业也步入了军民融合的新时代。在智能仓储物流方面&#xff0c;JS物流的智能化进展受到了BD系统的高度关注和重视。 一、建设JS仓储物流RFID基础设施 JS物流领域引入RFID技术的基础工…

Jenkins 改成中文语言显示

Jenkins 改成中文语言显示 到系统管理 插件管理中下载如下插件接口 Localization: Chinese (Simplified) 搜索的时候用ctrlf 进行搜索&#xff0c;不要用Jenkins下面下的filter 只有&#xff0c;到系统管理Manage Jenkins下的Config System下&#xff0c;如下截图的位置去…