CSS3


HTML+CSS+JavaScript

结构 + 表现 + 交互

什么是CSS

如何学习

  1. CSS是什么
  2. CSS怎么样(快速入门)
  3. CSS选择器(重点 + 难点)
  4. 美化网页(文字,阴影,超链接,列表,渐变...)
  5. 盒子模型
  6. 浮动
  7. 定位
  8. 网页动画(特效效果)

什么是CSS

Cascading Style Sheet层叠级联样式表

CSS:表现(美化网页)

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

发展史

CSS1.0

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

CSS2.1 浮动,定位

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

快速入门

style

基本入门




    
    Title

    
    




我是标题

建议使用这种规范

CSS的优势:

  1. 内容和表现分离
  2. 网页结构表现统一,可以实现复用
  3. 样式十分的丰富
  4. 建议使用独立于html的css文件
  5. 利于SEO,容易被搜索引擎收录!

CSS的三种导入方式




    
    Title

    
    

    







我是标题

================================== /* 外部样式 */ h1{ color: yellow; }

拓展:外部样式两种写法

  • 链接式

    
    
    
  • 导入式

    @import是CSS2.1特有的

    
        
    

选择器

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

基本选择器

1、标签选择器:选择一类标签




    
    Title

    




学Java

学Java

听狂神说

2、类 选择器 class:选择所有class属性一致的标签,跨标签 .类名()




    
    Title

    




标题1

标题2

标题3

P标签

3、id 选择器:全局唯一! #id名{}




    
    Title

    




标题1

标题2

标题3

标题4

标题5

优先级:id > class > 标签

层次选择器

1、后代选择器:在某个元素的后面 祖爷爷 爷爷 爸爸 你

/* 后代选择器 */
body p{
	background: red;
}

2、子选择器,一代,儿子 shift+tab(多行缩进)

/* 子选择器 */
body>p{
	background: #3cbda6;
}

3、相邻兄弟选择器 同辈

/* 相邻兄弟选择器,只有一个,相邻(向下) */
.active + p{
    background: #a13d30;
}

4、通用选择器

/* 通用兄弟选择器,当前选中元素的向下的所有兄弟元素 */
.active~p{
    background: #02ff00;
}

结构伪类选择器

伪类: 条件

/*ul的第一个子元素*/
ul li:first-child{
    background: #02ff00;
}

/*ul的第一个子元素*/
ul li:last-child{
    background: red;
}
/* 选中 p1 : 定位到父元素,选择当前的第一个元素
选择当前p元素的父级元素,选中父级元素的第一个,并且是当前元素才生效!
*/
p:nth-child(1){
    background: blue;
}

/*选中父元素,下的p元素的第二个,类型*/
p:nth-of-type(2){
    background: yellow;
}



    
    Title

    
    




    
    
    

p1

p2

p3

  • li1
  • li2
  • li3

属性选择器(常用)

id + class 结合~




    
    Title

    




1 2 3 4 5 6 7 8 9 10

=
*=
^=
$=

CSS,JS,JQuery,Vue常用

美化网页元素

为什么要美化网页

1、有效的传递页面信息

2、美化网页,页面漂亮才能吸引用户

3、凸显页面的主题

4、提高用户的体验

span标签:重点要突出的字,使用span标签套起来




    
    Title

    




欢迎学习 Java



字体样式




文本样式

1、颜色 color rgb rgba

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

3、首行缩进 text-indent: 2em

4、行高 line-height: 单行文字上下居中! line-height = height

5、装饰 text-decoration

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




    
    Title

    

    




123

1231231

1231231

1231231

故事介绍

这个世界名为元泱境界,脉(本质为振动)是构成万物的基础。每隔333年,会有一个神秘而强大的异常生物重生,它就是魁拔!魁拔的每一次出现,都会给元泱境界带来巨大的灾难!即便是天界的神族,也在劫难逃。在天地两界各种力量的全力打击下,魁拔一次次被消灭,但又总是按333年的周期重新出现。魁拔纪元1664年,天神经过精确测算后,在魁拔苏醒前一刻对其进行毁灭性打击。但谁都没有想到,由于一个差错导致新一代魁拔成功地逃脱了致命一击。很快,天界魁拔司和地界神圣联盟均探测到了魁拔依然生还的迹象。因此,找到魁拔,彻底消灭魁拔,再一次成了各地热血勇士的终极目标。

在偏远的兽国窝窝乡,蛮大人和蛮吉每天为取得象征成功和光荣的妖侠纹耀而刻苦修炼,却把他们生活的村庄搅得鸡犬不宁。村民们绞尽脑汁把他们赶走。一天,消灭魁拔的征兵令突然传到窝窝乡,村长趁机怂恿蛮大人和蛮吉从军参战。然而,在这个一切都凭纹耀说话的世界,仅凭蛮大人现有的一块冒牌纹耀,不要说参军,就连住店的资格都没有。受尽歧视的蛮吉和蛮大人决定,混上那艘即将启程去消灭魁拔的巨型战舰,直接挑战魁拔,用热血换取至高的荣誉。

Since there’s no help, come let us kiss and part;Nay, I have done, you get no more of me,And I am glad, yea glad with all my heartThat thus so cleanly I myself can free;Shake hands forever, cancel all our vows,And when we meet at any time again,Be it not seen in either of our browsThat we one jot of former love retain.Now at the last gasp of Love’s latest breath,When, his pulse failing, Passion speechless lies,When Faith is kneeling by his bed of death,And Innocence is closing up his eyes,Now if thou wouldst, when all have given him over,From death to life thou mightst him yet recover.

dsjlfajdlsahgs

阴影

/*text-shadow:阴影颜色,水平偏移,垂直偏移,阴影半径*/
#price{
    text-shadow: #00eaff 10px 10px 2px;

}

超链接伪类

正常情况下,a,a: hover

/*默认的颜色*/
a{
    text-decoration: none;
    color: black;
}
/*鼠标悬浮的颜色 (只需要记住:hover)*/
a:hover{
    color: orange;
    font-size: 50px;
}

列表

#nav{
    width: 300px;
}
h2{
    font-size: 18px;
    font-weight:bold;
    text-indent: 1em;
    line-height: 30px;
    background: red;
}
/*ul li*/
/*
list-style:
none  去掉圆点
circle  空心圆
decimal  数字
square  正方形
*/
ul{
    background: grey;
}
ul li{
    height: 30px;
    list-style: none;
    text-indent: 1em;
}
a{
    text-decoration: none;
    font-size: 14px;
    color: black;
}
a:hover{
    color: orange;
    text-decoration: underline;
}



    
    列表样式
    







背景

背景颜色

背景图片


练习:

#nav{
    width: 300px;
}
h2{
    font-size: 18px;
    font-weight:bold;
    text-indent: 1em;
    line-height: 30px;
    /* 颜色,图片,图片位置,平铺方式 */
    background: red url("../images/d.jpg") 260px 10px no-repeat;
}
/*ul li*/
/*
list-style:
none  去掉圆点
circle  空心圆
decimal  数字
square  正方形
*/
ul{
    background: grey;
}
ul li{
    height: 30px;
    list-style: none;
    text-indent: 1em;
    background-image: url("../images/r.jpg");
    background-repeat: no-repeat;
    background-position: 225px 2px;
}
a{
    text-decoration: none;
    font-size: 14px;
    color: black;
}
a:hover{
    color: orange;
    text-decoration: underline;
}

渐变

background-color: #4158D0;
background-image: linear-gradient(43deg, #4158D0 0%, #C850C0 46%, #FFCC70 100%);

盒子模型

什么是盒子模型

margin:外边距

padding:内边距

border:边框

边框

1、边框的粗细

2、边框的样式

3、边框的颜色




    
    Title

    




会员登录

用户名:
密码:
邮箱:

内外边距




  
  Title

  
  




会员登录

用户名:
密码:
邮箱:

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

margin + border + padding + 内容宽度

圆角边框

4个角


阴影




    
    Title




    




浮动

标准文档流

快级元素:独占一行

h1~h6    p    div    列表...

行内元素:不独占一行

span    a    img    strong...

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

display




1、这个也是一种实现行内元素排列的方式,但是我们很多情况都是用float

float

1、左右浮动 float

div {
    margin: 10px;
    padding: 5px;
}
#father {
    border:1px #000 solid;
}
.layer01 {
    border:1px #F00 dashed;
    display: inline-block;
    float: right;
}
.layer02 {
    border:1px #00F dashed;
    display: inline-block;
    float: right;
}
.layer03 {
    border:1px #060 dashed;
    display: inline-block;
    float: right;
}
.layer04 {
    border:1px #666 dashed;
    font-size: 12px;
    line-height: 23px;
    display: inline-block;
    float: right;
}

父级边框塌陷的问题

clear

/*
clear: right; 右侧不允许有浮动元素
clear: left; 左侧不允许有浮动元素
clear: both; 两侧不允许有浮动元素
clear: none;
*/

解决方案:

1、增加父级元素的高度~

#father {
    border:1px #000 solid;
    height: 800px;
}

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

.clear{ clear: both; margin: 0; padding: 0; }

3、overflow hidden、scroll

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

4、父类添加一个伪类:after

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

小结:

  1. 浮动元素后面增加空的div

    简单,代码中尽量避免空div

  2. 设置父元素的高度

    简单,元素假设有了固定的高度,就会被限制

  3. overflow

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

  4. 父类添加一个伪类:after(推荐)

    写法稍微复杂一点,但是没有副作用,推荐使用!

对比

  • display

    方向不可以控制

  • float

    浮动起来的话会脱离标准文档流,所以要解决父级边框塌陷的问题~

定位

相对定位




  
  Title

  
  
  




第一个盒子
第二个盒子
第三个盒子

相对定位:position:relative;

相对于原来的位置,进行指定的偏移,相对定位的话,它仍然在标准文档流中,原来的位置会被保留

top: -20px;
left: 20px;
bottom: -10px;
right: 20px;

练习

使用CSS绘制如下图形




    
    Title

    








绝对定位

定位:基于xxx定位,上下左右

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

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

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

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




  
  Title

  




第一个盒子
第二个盒子
第三个盒子

固定定位 fixed




    
    Title

    




div1
div2

z-index

图层~

z-index:默认是0,最高无限~ 999

值越大,越靠前




    
    Title

    




  • 学习微服务,找狂神
  • 时间:2099-01-01
  • 地点:月球一号基地

opacity:0.5;/背景透明度/

#content{
    width: 640px;
    padding: 0;
    margin: 0;
    overflow: hidden;
    font-size: 12px;
    line-height: 25px;
    border: 1px #000000 solid;
}
ul,li{
    padding: 0px;
    margin: 0px;
    list-style: none;
}
/*父级元素相对定位*/
#content ul{
    position: relative;
}
.tipText,.tipBg{
    position: absolute;
    width: 640px;
    height: 25px;
    top: 375px;
}
.tipText{
    color: white;
    z-index: 0;
}
.tipBg{
    background-color: black;
    opacity: 0.5; /*背景透明度*/
    /*filter: alpha(opacity=50); IE8之前使用*/
}

总结