Cascading Style Sheets 层叠样式表,用来展现HTML、XHTML的页面标签的外观风格
说明:
官网: https://www.w3.org/Style/CSS/
用来美化页面元素 - 美化外观
用来布局页面元素 - 布局定位
用来实现内容和外观的分离 - 方便维护和修改
官方
https://www.w3.org/Style/CSS/learning
推荐教程
https://developer.mozilla.org/zh-CN/docs/Web/CSS
CSS属性索引
https://developer.mozilla.org/zh-CN/docs/Web/CSS/Reference
语法
选择器 {
属性: 值;
...
}
HTML 的元素、标签指代的都是HTML的标签。
说明
选择器:用来选择需要设置样式的元素、类样式等等
属性:用来确定需要设置的内容
值:用来确定具体的效果
使用style属性在页面标签中书写,通常用于设置当前标签元素的特殊风格
<h1 style="color:red;">style属性的应用h1>
<p style="font-size:14px; color:green;">直接在HTML标签中设置的样式p>
使用
标签在页面内部书写,通常用于设置当前页面的整体风格
标签书写时可以放在任何位置,浏览器解析时会放在head 或者 body中,推荐书写在head中
<head>
...
<style type="text/css">
h1 {
font-size:12px;
}
style>
head>
将样式提取出来,放在一个单独文件中,通常用于设置项目的整体风格
外部样式分为链接式与导入式
<link rel="stylesheet" type="text/css" href="./css/demo01.css">
注意:使用@imoprt方式时:在CSS文件中 需要放在最开始的位置
@import是输入CSS2.1特有的,对不兼容CSS2.1的浏览器是无效的
@import url("样式表路径");
行内样式>内部样式表>外部样式表
就近原则
元素选择器:用于设置相同标签的共性风格
类选择器(class选择器):用于设置不同标签的共性风格
ID选择器:用于设置特定元素的风格**(因为id的唯一性,所有建议少用,甚至不用)**
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title>元素选择器示例title>
<style type="text/css">
h3{
font-size: 18px;
color: blue;
}
span{
color: red;
}
style>
head>
<body>
<h3><span>多span>品类齐全,轻松购物h3>
<h3><span>快span>多仓直发,极速配送h3>
<h3><span>好span>正品行货,精致服务h3>
<h3><span>省span>天天低价,畅选无忧h3>
body>
html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title>类选择器示例# 系列文章目录
<font color=#999AAA >提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加
例如:第一章 Python 机器学习入门之pandas的使用
<font color=#999AAA >提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档
@[TOC](文章目录)
font>
# 前言
<font color=#999AAA >提示:这里可以添加本文要记录的大概内容:
例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。font>
<font color=#999AAA >提示:以下是本篇文章正文内容,下面案例可供参考
# 一、pandas是什么?
<font color=#999AAA >示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。
# 二、使用步骤
## 1.引入库
<font color=#999AAA >代码如下(示例):
```c
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
import warnings
warnings.filterwarnings('ignore')
import ssl
ssl._create_default_https_context = ssl._create_unverified_context
代码如下(示例):
data = pd.read_csv(
'https://labfile.oss.aliyuncs.com/courses/1283/adult.data.csv')
print(data.head())
该处使用的url网络请求的数据。
提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。
北京欢迎你,有梦想谁都了不起!
有勇气就会有奇迹。
```
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title>ID选择器示例title>
<style type="text/css">
#first{
font-size: 16px;
}
#second{
font-size: 24px;
}
style>
head>
<body>
<h1>北京欢迎你h1>
<p id="first">北京欢迎你,有梦想谁都了不起!p>
<p id="second">有勇气就会有奇迹。p>
<p>北京欢迎你,为你开天辟地。p>
<p>流动中的魅力充满朝气。p>
body>
html>
ID选择器 > 类选择器 > 标签选择器
注意
优先级与书写执行顺序无关
<html lang="en">
<head>
<meta charset="UTF-8">
<title>选择器的优先级title>
<style>
h1{
color: red;
}
#yellow{
color: yellow;
}
.blue{
color: blue;
}
style>
head>
<body>
<h1 id="yellow" class="blue">选择器的优先级h1>
body>
html>
font-family: Consolas,'宋体',sans-serif;
font-size:12px;
font-weight:700;
font-style:italic;
font: italic bold 24px Consolas,'宋体',sans-serif;
color:rgba(0,0,255,0.5);
text-align:center;
text-decoration:underline;
text-indent:2em;
line-height: 1.6em;
vertical-align:middle;
white-space:nowrap;
text-overflow:ellipsis;
white-space: nowrap;
、overflow: hidden;
以及一个指定的宽度,才能生效a:hover{color:#FF7300;}
a:active{color:#999;}
input:focus{color:#999;}
input::placeholder{color:#999;}
div::before{content: '/';}
div::after{content: '/';}
其拥有list-style-type、list-style-image、list-style-position属性设置方式,以及list-style复合设置方式,但是因为现在一般只用到list-style:none
这个样式( 清除列表前方的样式 ),因此其它的不再赘述。
属性 | 说明 | 值 |
---|---|---|
width | 宽度 | 前面所有学过的单位均可,一般使用百分比以及px |
min-width | 最小宽度 | - |
max-width | 最大宽度 | - |
height | 高度 | - |
min-height | 最小高度 | - |
max-height | 最大高度 | - |
示例:
width: 50%;
说明:
前面所有学过的单位均可,一般使用百分比以及px
尺寸属性只对块级元素以及行块级元素起效果,对行级元素无效
额外补充两个尺寸单位:
vw:可视区域的宽度,100vw代表一个可视区域的宽度
vh:可视区域的高度,100vh代表一个可视区域的高度
说明:
设置元素的显示布局方式
值 | 说明 |
---|---|
block | 块级元素的默认值,元素会被显示为块级(相当于将其设定为块级元素) |
inline | 行级元素的默认值,元素会被显示为行级 |
inline-block | 行块级元素,让元素显示为行级,并且具有盒子模型的特性 |
none | 不显示元素 |
flex | 弹性布局(伸缩布局),其为盒子模型提供了最大的灵活性,因为其很复杂,因此我们将在下节课讲解 |
div span {
display: none;
}
div span:hover {
display: inline-block;
}
background-color:#c00;
transparent
(默认值,透明)background-image: url("../img/bg.gif");
background-repeat:no-repeat;
background-position: 30px -40px;
background-position-x:10px;
、background-position-y:10px;
background:#C00 url("../img/bg.gif") 205px 10px no-repeat;
opacity:0.5;
盒子模型的结构:content(显示内容)、border(边框)、padding(内边距:内容与边框的距离)、margin(外间距:外边框与其他相邻元素的距离)
border-color: #EEFF34;
border-top-color
、border-right-color
、border-bottom-color
、border-left-color
border-width: 5px;
border-top-width
、border-right-width
、border-bottom-width
、border-left-width
border-style: solid;
border-top-style
、border-right-style
、border-bottom-style
、border-left-style
将外间距的左右均设置为auto,表示自动计算剩余的外间距,从而实现水平居中的效果(注意,该方式仅适用于块级的显示方式)
用于设定文本文字是否有阴影以及模糊效果,其默认值是none,即没有阴影
text-shadow: none |
第一个:用于设置元素的阴影水平偏移值,可以为负值
第二个:用于设置元素的阴影垂直偏移值,可以为负值
第三个:用于设置元素的阴影模糊值,不可以为负值
color:用于设置阴影的颜色
常用的尺寸单位:px,em,rem
more-shadow是多个阴影的意思,需要用逗号进行分隔
1.单个阴影
div {
padding-top: 50px;
font-size: 50px;
color: red;
text-align: center;
/*文本阴影*/
text-shadow: none;
text-shadow: 0 0 0 black;
/*阴影水平向右移动*/
text-shadow: 5px 0 0 black;
/*阴影水平向右移动,并且阴影模糊*/
text-shadow: 5px 0 5px black;
/*阴影水平向右移动,垂直向上移动,并且阴影模糊*/
text-shadow: 5px -5px 5px black;
}
2.多个阴影
div {
padding-top: 50px;
font-size: 50px;
color: #fff;
text-align: center;
text-shadow: -2px 0 0 black, 2px 0 0 black, 0 -2px 0 black, 0 2px 0 black;
}
用于设定元素的阴影,其默认值为none,即无阴影
box-shadow: none |
第一个length:用于设置元素的阴影水平偏移值,可以为负值
第二个length:用于设置元素的阴影垂直偏移值,可以为负值
第三个length:用于设置元素的阴影模糊值,不可以为负值
第四个length:用于设置元素的阴影外延值,不可以为负值,可以省略
color:用于设置阴影的颜色
inset:用于设置阴影为内阴影,可以省略,若省略则为外阴影
常用单位:px、em、rem
more-shadow是多个阴影的意思,需要用逗号隔开
div {
width: 300px;
height: 300px;
margin: 50px auto;
border: 10px solid red;
/*边框阴影*/
box-shadow: 0 0 0 0 black;
/*边框阴影 - 第一个参数水平位移*/
box-shadow: 10px 0 0 0 black;
/*边框阴影 - 第二个参数表示垂直位移*/
box-shadow: 0 10px 0 0 black;
/*边框阴影 - 第三个参数表示模糊程度*/
box-shadow: 10px 10px 10px 0 black;
/*边框阴影 - 第四个参数表示阴影的扩散*/
box-shadow: 10px 10px 10px 30px black;
/*边框阴影 - 第五个参数表示阴影的颜色*/
box-shadow: 10px 10px 10px 30px black;
/*边框阴影 - 第六个参数表示阴影出现在盒子的里面还是外面*/
box-shadow: 10px 10px 10px 30px black inset;
}
用于给元素设定圆角效果,默认值为0,表示没有圆角
border-radius:
- 第一个length:用于设定水平半径,一共4个参数,参数数量可以是1个、2个、3个、4个
- 若只有1个参数,那么数值作用于4个角
- 若只有2个参数,那么第一个作用于上左、下右,第二个作用于上右、下左
- 若只有3个参数,那么第一个作用于上左,第二个作用于上右、下左,第三个作用于右下
- 若有4个参数,那么分别作用于上左、上右、下右、下左
- 常用单位:px、em、rem、%
- 第二个length:用于设定垂直半径,可以省略,若省略,大小与水平半径一致(一般都不会设置)
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title>演示圆角边框title>
<style type="text/css">
div{
width: 88%;
height: 300px;
margin: auto;
border:1px solid #CCC;
border-radius: 5px;
}
p{
width: 88%;
height: 300px;
margin: auto;
border:1px solid #CCC;
border-radius: 5px 10px 20px 30px;
}
#two-radio{
width: 88%;
height: 300px;
margin: 50px auto;
/* 每一个角度都可以使用两边的角度调整 水平边/垂直边 */
border-radius: 158px/121px;
}
style>
head>
<body>
<div>div>
<p>p>
<div id="two-radio">div>
body>
html>
用于设定背景图像的大小,默认值是auto
background-size: auto | cover | contain |
cover:设定背景图像等比缩放到完全覆盖容器,背景图像可能超出容器(图片显示不全)
contain:将背景图像等比缩放到宽度或高度与容器的宽度或高度相等,背景图像始终被包含在容器内
background-size与background-position可以实现大图裁切小图并任意控制大小的效果
html, body {
margin: 0;
padding: 0;
height: 100%;
}
div {
width: 400px;
height: 100px;
border: 1px solid red;
background-image: url("img/bg.jpg");
background-repeat: no-repeat;
/*背景图的大小*/
background-size: 100% 100%;
/*背景图等比缩放,完全覆盖容器*/
background-size: cover;
/*背景图等比缩放,容器完全包含图像*/
/*background-size: contain;*/
background-position: center;
}
linear-gradient(position,color1,color2,...);
- position:设定渐变的角度,以deg为单位。也可以设置预设的方向值(默认to bottom)
- to bottom:从上至下
- to left:从右至左
- to right:从左至右
- to top left:从右下至左上
- to top right:从左下至右上
- to bottom left:从右上至左下
- to bottom right:从坐上至右下
- color1:起点颜色
- color2等等:中间以及终点颜色
- 渐变色参考网站:https://uigradients.com/
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title>演示颜色渐变title>
<style type="text/css">
div{
width:300px;
height: 200px;
margin: 10px;
display: inline-block;
border: 1px solid #ccc;
}
.normal{
background-image: linear-gradient(#2193b0,#6dd5ed);
}
.direct{
background-image: linear-gradient(to right,#2193b0,#6dd5ed);
}
.degree{
background-image: linear-gradient(135deg,#373b44,#4286f4);
}
.multi-color{
background-image: linear-gradient(to right,
#a80077,#66ff00,#f7ff00,#db36a4,#ff4b1f, #1fddff);
}
style>
head>
<body>
<div class="normal">div>
<div class="direct">div>
<div class="degree">div>
<div class="multi-color">div>
body>
html>
注意事项:默认设置 width 和height 属性 指内容的宽高,称为内容盒子
box-sizing: content-box | border-box | inherit;
content-box:默认值
border-box:盒子的宽度或高度等于元素内容的宽度或高度。(盒子的实际占位宽度 = 左右外边距 + width;盒子的实际占位高度 = 上下外边距 + height)
inherit: 此值使元素继承父元素的盒子模型模式
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title>演示盒子尺寸title>
<style type="text/css">
div{
width:200px;
height:200px;
display: inline-block;
margin: 50px;
padding:50px;
border: 50px double #CCC;
}
.border-box{
width: 300px;
height: 300px;
box-sizing: border-box;
}
.contain-box{
box-sizing: content-box;
}
style>
head>
<body>
<div class="normal">div>
<div class="border-box">div>
<div class="contain-box">div>
body>
html>
translate(x,y);
x:表示X轴(横坐标)移动的向量长度,如果为正值,表示元素向 X 轴右侧移动,为负值则向X 轴左侧移动
y:表示Y轴(纵坐标)移动的向量长度,如果为正值,表示元素向Y 轴下侧移动,为负值则向Y 轴上倒移动
x、y常用的单位是px,也可以是百分比
可以单独设置指定方向:translateX(x)、translateY(y)
li a:hover{
...
transform: translate(4px, 8px);
}
scale(x,y)
或 scale(sx)
x:指定横向坐标(宽度)方向的缩放量
y:指定纵轴坐标(高度)方向的缩放量x、y默认值为1,0~0. 99的任意值都可以让元素缩小,而任何大于1的值都能让元素放大设置属性
可以只接收一个值,也可以接收两个值。当只有一个值时,第二个值默认和第一个值相等
li a:hover{
...
transform: scale(1.5);
}
rotate(r)
r:角度值,正值表示顺时针旋转,负值表示逆时针旋转;单位使用deg
y:指定纵轴坐标(高度)方向的缩放量
x、y默认值为1,0~0. 99的任意值都可以让元素缩小,而任何大于1的值都能让元素放大设置属性
可以只接收一个值,也可以接收两个值。当只有一个值时,第二个值默认和第一个值相等
img:hover{
...
transform: rotate(-90deg) scale(2);
}
其是一个复合属性:transition: [transition-property transition-duration transition-timing-function transition-delay]
IDENT:指定的CSS属性(width、height、background-color属性等)
ALL:指定所有元素支持transition-property属性的样式,一般为了方便都会使用all
单位是s,可以是整数或者小数,例如2s、1.4s、.5s等等
ease:元素样式从初始状态过渡到终止状态时速度由快到慢,逐渐变慢(默认值)
linear:元素样式从初始状态过渡到终止状态时恒速(匀速运动)
ease-in:元素样式从初始状态过渡到终止状态时速度越来越快(渐显效果)
ease-out:元素样式从初始状态过渡到终止状态时速度越来越慢(渐隐效果)
ease-in-out : 元素样式从初始状态过渡到终止状态时速度先加速再减速(渐显渐隐效果)
正值:元素过渡效果不会立即触发,当过了设置的时间值后才会被触发
负值:元素过渡效果会从该时间点开始显示,之前的动作被截断(用的少,甚至不用)
0:默认值,元素过渡效果立即执行
伪类触发: :hover、:active、:focus、:checked等
媒体查询:可以通过@media属性判断设备的尺寸、方向等
JavaScript触发:用JavaScript脚本触发
.transition{
width: 500px;
height: 500px;
margin: 20px auto;
border: 1px solid blue;
transition: all 1s linear 0s;
}
.transition:hover{
border-radius: 250px;
background-color: black;
}
使用@keyframes来建立关键帧动画,我们可以通过百分比设置指定关键帧的效果(中间的自动补间动画);也可以使用from-to直接设置(初始和结束的关键帧,中间自动补间动画)
@keyframes IDENT {
from {
/*CSS样式写在这里*/}
percentage {
/*CSS样式写在这里*/}
to {
/*CSS样式写在这里*/}
}
@keyframes IDENT {
0% {
/*CSS样式写在这里*/}
percentage {
/*CSS样式写在这里*/}
100% {
/*CSS样式写在这里*/}
}
IDENT是一个动画名称,可以取一个任意定义的动画名称,当然语义化一点会更好,使用小写,单词之间使用-分割
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title>演示动画的使用title>
<style type="text/css">
.ball {
display: inline-block;
background-image: url("./img/lanqiu.png");
width: 166px;
height: 166px;
animation: ball ease-in-out .5s infinite alternate;
}
@keyframes ball {
from {
transform: translateY(0) rotate(0);
}
to {
transform: translateY(300px) rotate(360deg);
}
}
style>
head>
<body>
<i class="ball">i>
body>
html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title>演示动画的使用title>
<style type="text/css">
.live {
display: inline-block;
width: 36px;
height: 36px;
background: url("./img/zhibo.png");
animation: live-icon .5s linear infinite;
animation-timing-function: steps(1);
}
@keyframes live-icon {
0% {
background-position: 0 0;
}
16% {
background-position-x: -36px;
}
32% {
background-position-x: -72px;
}
48% {
background-position-x: -108px;
}
64% {
background-position-x: -144px;
}
80% {
background-position-x: -180px;
}
96% {
background-position-x: -216px;
}
}
style>
head>
<body>
<i class="live">i>
body>
html>
https://daneden.github.io/animate.css/
选择匹配的F元素,且匹配的F元素被包含在匹配的E元素内
选择匹配的F元素,且匹配的F元素是匹配的E元素的子元素
选择匹配的F元素,且匹配的F元素紧位于匹配的E元素后面
选择匹配的F元素,且位于匹配的E元素后的所有匹配的F元素
<p class="active">1p>
<p>2p>
<p>3p>
<ul>
<li>
<p>4p>
li>
<li>
<p>5p>
li>
<li>
<p>6p>
li>
ul>
选择匹配具有属性attr的E元素
选择匹配具有属性attr的E元素,并且属性值为val(其中val区分大小写)
选择匹配元素E,且E元素定义了属性attr,其属性值包含了“val”,换句话说,字符串val与属性值中的任意位置相匹配(其中val区分大小写)
选择匹配元素E,且E元素定义了属性attr,其属性值是以val开头的任意字符串(其中val区分大小写)
选择匹配元素E,且E元素定义了属性attr,其属性值是以val结尾的任意字符串(其中val区分大小写)
<p class="demo">
<a href="http://www.baidu.com" class="links item first" id="first-test">1a>
<a href="#" class="links active item" title="test website" target="_blank">2a>
<a href="#" class="links item">3a>
<a href="#" class="links item">4a>
<a href="https://study.163.com/provider/1017089528/index.htm" class="links item">5a>
<a href="#" class="links item">6a>
<a href="#" class="links item">7a>
<a href="#" class="links item">8a>
<a href="#" class="links item">9a>
<a href="#" class="links item last" id="last">10a>
p>
选择属于选择器的第一个子元素
选择属于选择器的最后一个子元素
选择属于选择器的指定位置的子元素
选择属于选择器的第一个指定选择器的子元素
选择属于选择器的最后一个指定选择器的子元素
选择属于选择器的指定位置的指定选择器的子元素
<div>
<h1>一级标题h1>
<p>正文内容1p>
<p>正文内容2p>
<h1>一级标题h1>
<p>正文内容3p>
<p>正文内容4p>
<p>正文内容5p>
<h2>一级标题h2>
<p>正文内容6p>
div>
选择器 | 权重值 |
---|---|
行内样式 | 1,0,0,0 |
ID选择器 | 0,1,0,0 |
类选择器 | 0,0,1,0 |
元素和伪元素选择器 | 0,0,0,1 |
通配符、子选择器、相邻选择器等 | 0,0,0,0 |
关系选择器 | 0,0,0,0 |
每个选择器都有自己的权重,级别由加权计算得出
从左往右逐个等级比较,前一等级相等才往后比
权重值相同,那么后者生效,否则权重值高者生效
第一等:代表内联样式,如: style=””,权值为1,0,0,0
第二等:代表ID选择器,如:#content,权值为0,1,0,0
第三等:代表类,伪类和属性选择器,如.content,权值为0,0,1,0
第四等:代表元素和伪元素选择器如div p,权值为0,0,0,1
通配符、子选择器、相邻选择器等如*、>、+,权值为0,0,0,0
继承的样式没有权值
!important为强制优先(破坏权重,慎用)
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title>权重计算title>
<style type="text/css">
#container div#header h2 {
color: red;
}
#container #header>h2 {
color: blue;
}
body #container div[id="header"] h2 {
color: green;
}
#header div.paragraph h2 {
color: orangered;
}
#header[class="paragraph"] h2 {
color: yellow;
}
div#header div.paragraph h2.first {
color: pink;
}
style>
head>
<body>
<div id="container">
<div id="header">
<h2>CSS简介h2>
<p>...p>
<div class="paragraph">
<h2 class="first">使用CSS布局的优点h2>
<p>1、XXX 2、XXX 3、XXX 4、XXXp>
div>
div>
div>
body>
html>
其底层是一个字体,其内部不是英文或者中文,而是一个个小图标
我们可以通过名称,来获取对应的图标
因为其本质是字体,因此我们可以通过font-size控制大小、color控制颜色等
通常我们使用i标签来实现字体图标
常用的字体图标FontAwesome地址:https://fontawesome.dashgame.com/