W3C3剑客—CSS
万维网联盟(外语缩写:W3C)标准不是某一个标准,而是一系列标准的集合。网页主要由三部分组成:结构(Structure)、表现(Presentation)和行为(Behavior)。万维网联盟创建于1994年,是Web技术领域最具权威和影响力的国际中立性技术标准机构。
CSS3 作为变现层,其威力堪比整容。
未加样式和加了样式做对比,淘宝:
Cascading Style Sheets (层叠样式表)
CSS2 W3C组织于1998年推出的技术规范
CSS3 早在2001年W3C就完成了CSS3的草案规范。CSS3规范的一个新特点是被分为若干个相互独立的模块
CSS行内式演示
<style>
/*这是在css中的注释 */
h1{
font-size: 100px;
}
style>
<link rel="stylesheet" href="../CSS/index.css">
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Documenttitle>
<style>
/*这是在css中的注释 内部样式*/
h1{
font-size: 100px;
}
style>
<link rel="stylesheet" href="../CSS/index.css">
head>
<body>
<h1 style="color:rgb(182, 17, 17)">CSS行内式演示h1>
body>
html>
<style>
/*直接以标签名字作为选择器
标签名{
声明1;
声明2;
声明3;
...
}
*/
h1{
font-size: 100px;
}
style>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Documenttitle>
<style>
/*
id 选择器,通过标签的id属性快速定位,一般id就是元素的标识,是唯一的
id 选择器:
#id名{
声明1;
声明2;
声明3;
...
}
*/
#txt{
color: red;
}
style>
head>
<body>
<p id="txt">这是一行文字p>
body>
html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Documenttitle>
<style>
/*
当一个元素有多个class值时用空格隔开,并且后边的样式会覆盖前边的样式
如下,class1中有font-size属性,class2中也有font-size属性,这时同时把
.class1 和 .class1都付给了p ,则class2 会覆盖class1的font-size
.类名{
声明1;
声明2;
声明3;
...
}
*/
.class1{
color: red;
font-size: 14px;
}
.class2{
font-size: 36px;
}
style>
head>
<body>
<p class="class1">我是p1p>
<p class="class1 class2">我是p2p>
body>
html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Documenttitle>
<style>
/* 给ul一个样式,它的子元素都会继承它的样式 */
ul{
color: red;
}
/* 同样的如果想通过父元素来定位子元素,可以通过
父元素 子元素{
声明1;
声明2;
声明3;
声明4;
...
}
的方式进行定位
同时如果子元素有样式跟父元素一样则会覆盖
除此之外还有下一个相邻兄弟选择器
#p1+p 则为#p1的像一个相邻并且为p的元素(了解,一般不用)
下边全部兄弟元素
#p1~p 下方所有为p的兄弟元素(了解,一般不用)
*/
p{
color: red;
}
p span{
font-size: 36px;
color: aqua;
}
style>
head>
<body>
<ul>
<li>1li>
<li>2li>
<li>3li>
<li>4li>
<li>5li>
ul>
<span>这是外边的spanspan>
<p><span>这是p的子元素spanspan>p>
body>
html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Documenttitle>
<style>
/* 伪类选择器的使用
选择器:伪类名{
声明1;
声明2;
声明3;
声明4;
...
}
*/
#u li:first-child{
/* first-child 选择器下边的第一个子元素 */
color: rgb(226, 15, 15);
}
#u li:last-child{
/* last-child 选择器下边最后一个子元素 */
color: aqua;
}
ul li:nth-child(2){
/* nth-child() 选择器下指定子元素 */
color: rgb(13, 238, 99);
}
/* 超链接常用的四个伪类(爱恨原则):link :visited :hover :active */
#u li a:link{/*链接状态*/
color: black;
text-decoration: none;
}
#u li a:visited{/*访问过后*/
color: blue;
text-decoration: none;
}
#u li a:hover{/*当鼠标放上去时*/
color: red;
text-decoration: none;
}
#u li a:active{/*当鼠标点下去还未松开时*/
color: green;
text-decoration: none;
}
style>
head>
<body>
<ul id="u">
<li>1li>
<li>2li>
<li>3li>
<li>4li>
<li><a href="###">这是超链接a>li>
<li>6li>
<li>7li>
<li>8li>
<li>9li>
<li>10li>
ul>
body>
html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Documenttitle>
<style>
ul{
background-color: antiquewhite;
}
/* 属性选择器通过元素的属性或属性值定位
例:我要定位所有具有id这个属性的li标签
li[id]{
声明1;
声明2;
声明3;
声明4;
...
}
例:我要定位所有class为class1的元素
li[class=class1]{
声明1;
声明2;
声明3;
声明4;
...
}
*/
li[id]{
font-size: 36px;
}
li[id=b]{
color: red;
}
li[class]{
color: aquamarine;
}
li[class=class1]{
background-color: brown;
}
style>
head>
<body>
<ul>
<li id="a">1li>
<li id="b">2li>
<li text="自定义">3li>
<li>4li>
<li>5li>
<li>6li>
<li class="class1">7li>
<li class="class2">8li>
<li>9li>
<li>10li>ul>
body>
html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Documenttitle>
<style>
body{
font-size: 18px; /*改变字体大小*/
font-family: 宋体; /*改变字体*/
}
#p1{
color: green; /*调节字体颜色*/
background-color: bisque; /*调节背景颜色*/
}
#p2{
height: 100px; /*调节高度*/
line-height: 50px; /*调节行高*/
background-color: aqua;
}
#p3{
text-align: center; /*调节水平居中*/
text-shadow: aquamarine 5px 15px 1px; /*文字阴影,第一个是水平偏移,第二个是垂直偏移,第三个是模糊*/
}
#p4{
letter-spacing: 1px; /*调节字母距,中文字距*/
text-indent: 2rem; /*缩进2字*/
word-spacing: 1rem; /*词距离*/
}
#p5{
width: 50rem; /*限制宽度可放字数*/
background-color: rgb(184, 115, 12);
}
style>
head>
<body>
<p id="p1">超文本是一种组织信息的方式,它通过超级链接方法将文本中的文字、图表与其他信息媒体相关联。这些相互关联的信息媒体可能在同一文本中,也可能是其他文件,或是地理位置相距遥远的某台计算机上的文件。这种组织信息方式将分布在不同位置的信息资源用随机方式进行连接,为人们查找,检索信息提供方便。p>
<p id="p2">HTML的英文全称是 Hyper Text Markup Language,即超文本标记语言。HTML是由Web的发明者 Tim Berners-Lee和同事 Daniel W. Connolly于1990年创立的一种标记语言,它是标准通用化标记语言SGML的应用。用HTML编写的超文本文档称为HTML文档,它能独立于各种操作系统平台(如UNIX, Windows等)。使用HTML语言,将所需要表达的信息按某种规则写成HTML文件,通过专用的浏览器来识别,并将这些HTML文件“翻译”成可以识别的信息,即现在所见到的网页。p>
<p id="p3">自1990年以来,HTML就一直被用作WWW的信息表示语言,使用HTML语言描述的文件需要通过WWW浏览器显示出效果。HTML是一种建立网页文件的语言,通过标记式的指令(Tag),将影像、声音、图片、文字动画、影视等内容显示出来。事实上,每一个HTML文档都是一种静态的网页文件,这个文件里面包含了HTML指令代码,这些指令代码并不是一种程序语言,只是一种排版网页中资料显示位置的标记结构语言,易学易懂,非常简单。HTML的普遍应用就是带来了超文本的技术―通过单击鼠标从一个主题跳转到另一个主题,从一个页面跳转到另一个页面,与世界各地主机的文件链接超文本传输协议规定了浏览器在运行HTML文档时所遵循的规则和进行的操作。HTTP协议的制定使浏览器在运行超文本时有了统一的规则和标准p>
<p id="p4">超级文本标记语言是标准通用标记语言下的一个应用,也是一种规范,一种标准,它通过标记符号来标记要显示的网页中的各个部分。网页文件本身是一种文本文件,通过在文本文件中添加标记符,可以告诉浏览器如何显示其中的内容(如:文字如何处理,画面如何安排,图片如何显示等)。浏览器按顺序阅读网页文件,然后根据标记符解释和显示其标记的内容,对书写出错的标记将不指出其错误,且不停止其解释执行过程,编制者只能通过显示效果来分析出错原因和出错部位。但需要注意的是,对于不同的浏览器,对同一标记符可能会有不完全相同的解释,因而可能会有不同的显示效果。p>
<p id="p5">HTML是用来标记Web信息如何展示以及其他特性的一种语法规则,它最初于1989年由GERN的Tim Berners-Lee发明。HTML基于更古老一些的语言SGML定义,并简化了其中的语言元素。这些元素用于告诉浏览器如何在用户的屏幕上展示数据,所以很早就得到各个Web浏览器厂商的支持。p>
body>
html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Documenttitle>
<style>
#u li {
margin-top: 10px;/*顶部间距*/
background-color: aquamarine;
width: 6rem;
height:35px;
line-height: 35px;
border-radius: 15px; /*设置圆角*/
border-bottom: 1.5px solid; /*底部边框*/
list-style: none; /*列表取消默认样式*/
text-align: center; /* 设置文本居中 */
}
#u li a{
color: black;
text-decoration: none; /*取消下划线*/
}
#u li a:link{/*未访问时的普通链接*/
color: black;
}
#u li a:visited{/*访问过后*/
color: red;
}
#u li:hover{/*鼠标放上去时*/
background-color: yellowgreen;
}
#u li a:active{/*点击时*/
color: blue;
}
style>
head>
<body>
<ul id="u">
<li><a href="#1">超链接1a>li>
<li><a href="#2">超链接2a>li>
<li><a href="#3">超链接3a>li>
<li><a href="#4">超链接4a>li>
<li><a href="#5">超链接5a>li>
<li><a href="#6">超链接6a>li>
<li><a href="#7">超链接7a>li>
<li><a href="#8">超链接8a>li>
ul>
body>
html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Documenttitle>
<style>
div{
width: 1000px;
height: 800px;
background-image: url("https://tse2-mm.cn.bing.net/th/id/OIP.Y_REHAvabXSUWA_m0yEpKQHaEo?pid=Api&rs=1");
border: 1px solid;
}/* 默认是铺满容器*/
#box1{
background-repeat: repeat-x;
}/* 横向重复*/
#box2{
background-repeat: repeat-y;
}/* 纵向重复*/
#box3{
background-repeat: no-repeat;
}/* 不重复*/
#box4{
background-repeat: no-repeat;
background-size: 100%; /*不重复横向铺满*/
}
style>
head>
<body>
<div id="box1">div>
<div id="box2">div>
<div id="box3">div>
<div id="box4">div>
body>
html>
颜色渐变
专业详细
调色渐变网站效率copy
调色渐变网站效率copy2
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Documenttitle>
<style>
*{ /*初始化,去掉默认盒子模型样式*/
margin: 0;
padding: 0;
}
#box{
border: 1px solid black; /* 边框1px 实线 黑色*/
width: 400px;
font:24px 楷体;
margin: auto; /*快速居中*/
}
#box div{
margin: 20px 75px; /*上下边距20px 左右边距75px*/
}
#box div:last-child{
text-align: center; /*最后一个盒子(按钮)设置文本居中*/
}
#box div input:nth-child(2){
height: 22px; /*输入框高度22px*/
}
input[type="submit"]{
height: 30px; /*按钮高度30px*/
width: 80px; /* 宽度80px*/
}
style>
head>
<body>
<div id="box">
<div>
<span>账号span>
<input type="text">
div>
<div>
<span>密码span>
<input type="password">
div>
<div><span><input type="submit" value="登录">
span>
div>
div>
body>
html>
元素占用宽度 = margin+border+padding+内容宽度
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Documenttitle>
<style>
.app{
border: 1px solid red;
width: 100px;
height: 100px;
margin-left: 20px;
float: left;
}
.app2{
border: 1px solid red;
width: 100px;
height: 50px;
margin-left: 20px;
float: left;
}
.app3{
border: 1px solid red;
height: 100px;
width: 50px;
margin-left: 20px;
float: left;
}
.class1{ /*直接变成一个圆*/
border-radius: 100px;
}
.class2{ /*直接变成一个椭圆*/
border-radius: 100px 0;
}
.class3{ /*直接变成一个门型*/
border-radius: 100px 100px 0 0;
}
.class4{/*圆角矩形*/
border-radius: 10px 10px 10px 10px;
}
.class5{/*半圆*/
border-radius: 50px 50px 0 0;
}
.class6{/*侧边半圆*/
border-radius: 50px 0 0 50px;
}
.class7{/*1/4 圆扇形*/
border-radius: 100px 0 0 0;
}
style>
head>
<body>
<div class=" app class1 ">div>
<div class=" app class2">div>
<div class=" app class3 ">div>
<div class=" app class4 ">div>
<div class=" app2 class5 ">div>
<div class=" app3 class6 ">div>
<div class=" app class7 ">div>
body>
html>
实际应用案例
圆形头像
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Documenttitle>
<style>
img{
width: 100px;
height: 100px;
border-radius:100px ;
}
style>
head>
<body>
<img src="https://i2.hdslb.com/bfs/face/00413d88b0fb54c1681cceb72d11c9ef0ca6a031.jpg_64x64.jpg" alt="">
body>
html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Documenttitle>
<style>
#box{
width: 100px;
height: 100px;
border-radius: 100px;
border: 3px solid rosybrown;
box-shadow:5px 1px 5px rgb(185, 113, 125); /*盒子阴影 右偏移量 下偏移量 模糊度 颜色*/
}
style>
head>
<body>
<div id="box">div>
body>
html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Documenttitle>
<style>
*{
padding: 0;
margin: 0;
}
ul{
margin: 0 auto;
width: 800px;
}
li{
padding: 0 30px;
display: inline-block; /*设置为行内块级元素*/
background-color: antiquewhite;
}
li:hover{
background-color: rgb(238, 12, 12);
}
li a{
text-decoration: none;
color: black;
font-size: 20px;
}
style>
head>
<body>
<ul>
<li><a href="#">首页a>li>
<li><a href="#">新品a>li>
<li><a href="#">热卖a>li>
<li><a href="#">折扣a>li>
<li><a href="#">粉丝精选a>li>
<li><a href="#">关于a>li>
<li><a href="#">退出a>li>
ul>
body>
html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Documenttitle>
<style>
#box{
background-color: rgb(211, 165, 165);
}
#box div:first-child{
float: left; /*左浮动*/
}
#box div:nth-child(2){
float: left; /*左浮动*/
}
#box div:last-child{
float: right;
}
img{
width: 300px;
}
#box div:last-child{
clear: both; 清除两边浮动
}
style>
head>
<body>
<div id="box">
<span>我是box盒子,我是非浮动的span>
<div><img src="https://tse1-mm.cn.bing.net/th/id/OIP.MASmSGUEiRwOc86zsRb1OwHaEK?pid=Api&rs=1" alt="">div>
<div><p>
1、南方的八月间,骄阳似火。中午时分,太阳把树叶都晒得卷缩起来。知了扯着长声聒个不停,给闷热的天气更添上一层烦燥。
p>div>
<div><img src="http://www.08lr.cn/uploads/allimg/170607/1-1F60GA955.jpg" alt="">div>
div>
body>
html>
解决方法:
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Documenttitle>
<style>
p{
float: left;
width: 30px;
padding: 0 20px;
background-color: aquamarine;
}
p:nth-child(4),p:nth-child(7),p:nth-child(10){
clear: both;
}
#box{
border: 1px solid;
}
#clear{
clear: both; /* 通过空盒子清除浮动来保证父盒子不会塌陷*/
margin: 0;
padding: 0;
}
#box2 p{
width: 100px;
height: 100px;
overflow: scroll; /*如果超出边界用增加一个滚动条*/
}
style>
head>
<body>
<div id="box">
<p>1p>
<p>2p>
<p>3p>
<p>4p>
<p>5p>
<p>6p>
<p>7p>
<p>8p>
<p>9p>
<p>10p>
<p>11p>
<p>12p>
<div id="clear">div>
div>
<div id="box2">
<p>1、南方的八月间,骄阳似火。中午时分,太阳把树叶都晒得卷缩起来。知了扯着长声聒个不停,给闷热的天气更添上一层烦燥。
p>
div>
body>
html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Documenttitle>
<style>
div{
width: 1000px;
height: 250px;
margin: auto;
border: 1px solid;
}
.a1{
width: 800px;
height: 50px;
border: 1px solid;
background-color: antiquewhite;
position: relative;
top: -20px;
left: 10px;
}
.a2{
width: 800px;
height: 50px;
border: 1px solid;
background-color: rgb(207, 157, 91);
}
.a3{
width: 800px;
height: 50px;
border: 1px solid;
background-color: rgb(168, 99, 9);
position: relative;
right: 20px;
bottom: -50px;
}
style>
head>
<body>
<div>
<p class="a1">p>
<p class="a2">p>
<p class="a3">p>
div>
body>
html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Documenttitle>
<style>
#app{
width: 500px;
height: 500px;
border: 1px solid red;
padding: 10px;
position: relative;
}
p{
width: 110px;
height: 100px;
background-color: antiquewhite;
}
#app p:first-child{
position: absolute;
background-color: aqua;
left: 400px;
}
style>
head>
<body>
<div id="app">
<p>p>
<p>p>
<p>p>
<p>p>
div>
body>
html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Documenttitle>
<style>
body{
height: 2000px;
}
#app1{
width: 100px;
height: 100px;
background-color: aqua;
position: absolute;/*绝对定位*/
right: 0;
bottom: 0;
}
#app2{
width: 50px;
height: 50px;
background-color: rgb(32, 223, 7);
position: fixed;/*固定定位*/
right: 0;
bottom: 0;
}
style>
head>
<body>
<div id="app1">div>
<div id="app2">div>
body>
html>
越是底层数字越小,层级向上层数字逐次增加
透明度设置(opacity)属性
还可以通过rgb的第四个参数来实现透明度
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Documenttitle>
<style>
*{
padding: 0;
margin: 0;
}
#app{
width: 325px;
height: 200px;
border: 1px solid;
position: relative;
z-index: 1;
}
#app div p{
position: absolute;
bottom: 80px;
font-size: 48px;
padding: 0 113px;
color: white;
background-color: rgba(0, 0, 0, 0.418); /*设置透明度*/
/* opacity: 0.5; 设置透明度 */
z-index: 0; /*设置为最底层*/
}
style>
head>
<body>
<div id="app">
<div><img src="https://tse4-mm.cn.bing.net/th/id/OIP.qrW9tphUIlHLMj4xDop9QAHaEK?w=294&h=180&c=7&o=5&dpr=1.1&pid=1.7" alt="">div>
<div><p>Javap>div>
div>
body>
html>
插好眼了可以传送
CSS原生动画虽然可以实现,但是实现起来比较复杂,我们完全可以用JavaScript代替,但是CSS的效率会更高。
甚至一些3D动画,用JavaScript难以实现。