怎样修改网页滚动条颜色_Part 1 · HTML5 网页开发-02

Part 1 · HTML5 网页开发-02

第二章 CSS 核心样式、H5 + C3 新特性

第一节 CSS核心样式

1、CSS核心样式 font-weight

  • CSS常用样式属性: font-weight
  • 作用:font-weight 设置字体的粗细
属性值说明
normal默认字体大小,标准版
bold粗体字,b、strong的默认值
bolder定义更粗的字体
lighter定义更细的字体
100定义由细到粗的字符
200
300
400400等同于normal
500
600
700700等同于bold
800
900
inherit规定应该从父元素继承字体粗细

2、CSS常用样式 font-style

  • 作用:设置文字的风格
属性值说明
normal正规字体
italic设置斜体文字,主要用于英文
oblique设置倾斜文字,只是将文字倾斜,和字体无关

3、CSS常用样式 line-height

  • 作用:line-height设置行高,font-size设置字体大小之后,有默认的行高,如果改变默认行高,需要line-height来修改
属性值说明
px像素值设置行高具体的像素值
百分比数值设置本身字体的百分比值,100%就是原本大小,200%就是2倍字体大小

行高是文字的真正占有的高度 内部文字是垂直居中在行高中显示的

4、font综合属性

  • 回忆5个字体单一属性: font-family 、font-size 、font-weight、 font-style 、line-height
  • 为了减省代码量,提高书写效率,如果某字体被定义多个属性,可以采用综合属性写法

硬性记忆3种写法:

  1. 同时设置字号、字体 (字号必须在前面,字体在后面,不能颠倒)

例:p{font: 14px "宋体"; }

  1. 同时设置字号、字体、行高(书写顺序必须是行高、字号、字体,且行高和字体之间用/隔开)

例:p{font: 14px/28px "宋体"; } 字体14px,行高28px,字体为宋体

  1. 同时设置字号、字体、行高、加粗、斜体(书写顺序必须是行高、字号、字体在后面,且行高和字体之间用/隔开,加粗、斜体写在前面,加粗、斜体可以换顺序

例:p{font:hold italic 14px/28px "宋体"; } 或 p{font: italic hold 14px/28px "宋体"; }

5、css文本样式 text-align

  • text-align 文本对齐
属性值说明
left整个文本向左对齐
right整个文本向右对齐
center整个文本居中

6、css文本样式 text-decoration

  • text-decoration 文本装饰(加或不加线条)
属性值说明
onoe没有修饰
overline上划线
line-through中划线,删除线,del标签的默认值
underline下划线

7、css文本样式 text-indent

  • 文本缩进text-indent
属性值说明
px单位表示首行缩进多少px单位像素(按像素值缩进平时不太常用)
em单位倍数,自动参考一个文字的大小宽度,以文字大小宽度为字符来缩进,好处:根据文字变大而变大,文字变小而变小,2em实现首行缩进2个字符
百分比单位不太常用,参考的盒子width宽度,按盒子宽度的百分度来缩进

属性值分正负值,正值向右缩进,负值向左缩进

8、盒模型

  • 盒模型
  1. 概述:盒模型也称为框模型,包含5个属性: width 宽 height 高 border 边框 padding 内边距 margin 外边距 (盒子跟外部盒子之间的边距)
  2. 常见盒模型区域 :
  • 书写元素内容区域:width+height
  • 盒子实体化区域:width+height+padding+border
  • 盒子实际占的位置:width+height+padding+border+margin

注:margin是盒子跟盒子之间的距离,就像是人与人之间的距离,不属于盒子实体化区域

9、CSS常用样式-盒模型属性 width

属性值说明
auto默认值,浏览器根据实际情况计算宽度
px像素值定义的宽度(固定值)
%参考父元素宽度width的百分比来定义的宽度

注:如果元素不加width属性,默认就是auto,浏览器会根据不同元素的特点来自动计算实际的宽度,自动适应不同的浏览器 例如:

  1. <div>等需要独占一行的元素,不设置width时,它的宽度值会自动撑满父元素的width区域
  2. <span>等不需要独占一行的元素,不设置width时,它的宽度根据元素内部的内容来决定,内容撑开有多宽,就是多宽
  3. <body>元素比较特殊。不需要设置width属性,宽度会自动适应浏览器的宽度

10、CSS常用样式-盒模型属性 height

属性值说明
auto默认值,浏览器根据实际情况计算高度
px像素值定义的高度(固定值)
%参考父元素宽度height的百分比来定义的高度

注:如果元素不加height属性,默认就是auto,浏览器会自动计算出高度(元素内部内容实际撑开的高度,元素的高度自适应内部内容撑开的高度)

11、CSS常用样式-盒模型属性 padding

  • 作用:设置元素的内边框,就是边框内部到宽高区域之间的距离
  • 特点:能渲染背景
属性值说明
px像素值定义的距离

padding 是复合属性,可以把上、下、左、右四个方向混合着写,也可以根据内边距的方向不同分为四个方向的单一属性 如(单一属性的写法):

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

复合型写法(定义顺序:逆时针):

padding:10px 20px 30px 40px;  //(上边距10px,右边距20px, 下边距30px, 左边距40px)
padding:10px 20px 30px;       //(上边距10px,右边距20px, 下边距30px, 左边距20px)
padding:10px 20px;            //(上边距10px,右边距20px, 下边距10px, 左边距20px)
padding:10px;                 //(上边距10px,右边距10px, 下边距10px, 左边距10px)

复合属性和单一属性可以叠加书写 如:

padding:10px;
padding-left:20px;

意思为:左边距20px,其他所有边距10px. 注:单一属性必须写在复合属性后面,才能层叠掉复合属性中重复的部分

12、CSS常用样式-盒模型属性 border

  • border盒模的边框
属性值说明
width线的宽度
style线的形状
color线的颜色

写法:属性值之间用空格分开 例:border:10px solid red;

一、border(按属性类型划分)可以分成三个单一属性

  1. border-width 定义 边框四边的宽度,四值写法类似padding
  2. border-style (属性值:实线solid 虚线dashed 无边框none 凹陷槽3D效果groove3D效果 ridge 等等)3D效果容易出现兼容问题,四值写法类似padding,每条边可以设置不同属性值,中间用空格
  3. border-color 四值写法类似padding,四边可以设置不同颜色

二、border(按方向划分)可以分成四个单一属性

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

三、border(按照方向+类型进一步细分)

书写方法: border-方向+类型(必须是方向写在前面) border-left-color:10px red;

13、CSS常用样式-盒模型属性 margin

  • 作用:设置盒子与盒子之间的距离
  • 特点:不能渲染背景
  • 属性值:px 应用书写方式和padding一样

14、盒模型扩展属性-清除默认样式

  • 举例:删除默认的内外边距
  1. 标签选择器并集方式
div,p,h1,h2,h3{
           margin:0px;
           padding:0px;
}

2. 通配符方式

*{
       margin:0px;
       padding:0px;
}

遇到不同的标签文字样式,清除的属性值会不同,根据实际情况来

15、盒模型扩展属性-height的应用

  • 盒子高度的应用 根据不同的需求,盒子的高度可以设置也可以不设置(实际工作中,根据项目设计来定) 如果不设置,会根据标签内部内容高度自动撑开 如果设置,盒子高度就固定死了,后面同级元素会紧挨着加载 在设置了盒子固定高度的情况下,里面的文字太多的时候,盒子是装不下的,就会出现文字溢出现象

可以通过overflow属性,对溢出的文字部分进行显示效果的设置

属性值说明
visible默认值,溢出部分可见的(全部溢出在页面)
hidden把溢出的文字部分进行隐藏,超过盒子边框的全部被隐藏
scroll水平+垂直方向加滚动条,隐藏溢出部分,可以拖动滚动条查看
auto自动的,如果没有溢出就正常显示,如果溢出,溢出的方向就自动出现滚动条

16、盒模型扩展属性-居中

  • 文本居中:text-align:center; (无论单行或多行都可以设置)

一、盒子内的文本居中:

  1. 单行文本垂直居中:让文字行高line-height等于盒子的高度
  2. 多行文本垂直居中:设置元素高度自适应或者高度正好等于多行文字撑起来的行高,然后设置盒子上下内边距padding为相同值,实现多行文本垂直居中

二、元素垂直居中

  1. 让父元素内嵌套的元素垂直居中,和多行文本垂直居中的方式类似,设置父元素高度自适应,子元素高度自动撑开父元素高度,给父元素设置上下内边距padding为相同值

三、元素水平居中:

  1. 针对类似于<div>样式上必须独占一行的盒子,如果子盒子低于父盒子的宽度,可以设置子盒子的margin值,水平方向的值都设置成auto,自动撑满整个父元素除了子元素宽度外的剩余区域

注:auto只有在水平方向有作用,靠左右两边撑满剩余区域,达到水平居中效果

实际工作中,可以有多种方法可以达到效果

17、盒模型扩展属性-父子盒模型

  • 父子盒模型:父子盒子里面可以装一个或者多个儿子盒子
  • 条件:父元素的width≥所有子元素的width+padding+margin+border 注意: 如果不满足条件,父盒子里面多余的子元素要么溢出父盒子,要么跟其他的儿子不在一行,会掉到下一行

18、盒模型扩展属性-margin塌陷

  • 垂直方向的margin,两个元素的margin边相遇时,数值小的塌陷到数值大的那一边,不是两个margin值相加 水平方向的margin,不会有塌陷 父子元素也会出现塌陷现象,同理,小的值塌陷到大的值那边

解决margin塌陷的方法:

  1. 同级元素:2个元素遇到塌陷问题,只需要设置其中一边的margin值就可以了,不用两边都设置
  2. 父子元素:让父子的两边不要相遇,用其中一个padding或者border将间距隔开

19、标准文档流、显示模式display

  • HTML(是一种标准的文档流文件)
  • 标准的文档流特点有2种方式体现:微观现象+元素等级 微观现象:空白折叠现象、自动换行现象、文字类元素若排在一行,会出现高低不齐,底边对齐现象 元素等级: 标准流中,大部分元素是区分等级的,几种常见的加载级别: 块级元素、行内元素、行内块元素
  1. 块级元素:大部分容器级标签包括p标签都是块级元素,比如<div><h1>
  2. 行内元素:大部分文本级标签,比如<span> <a> <b>标签
  3. 行内块元素:比如<img><input>
  • 标准文档流:指元素在排版布局过程中,元素默认自动从左至右,从上至下的流式排列方式。 前面内容发生变化,后面内容的位置也发现变化 标准文档流中,大部分元素是区分等级的,几种常见的加载级别: 块级元素、行内元素、行内块元素 块级元素: 可以设置长宽高,并且独占一行,不能与其他标签并列一行,如果块级元素不设置宽度,会自动撑满夫级的width区域,不设置高度,会被内容自动撑开 行内元素: 行内元素不能正常加载高度和宽度,行内元素可以跟其他行内或者行内块元素拍成一行显示 行内块元素: 可以设置宽度和高度,可以与行内的块元素拍成一排显示

20、显示模式属性display

属性作用
block把元素设置成块级元素加载
inline把元素设置成行内元素加载
inline-block把元素设置成行内块模式加载
none表示隐藏标签内的内容以及标签,让出原有标准流的位置

注意: display更改显示模式并没有改变标准流本质性质,页面还是从上往下加, 为了实现更多的界面布局效果,需要脱离标准流的限制

脱离标准流的方法:浮动、绝对定位、固定定位

21、浮动的定义

  • 浮动(一种非常重要的布局属性)
属性名属性值
floatleft
floatright

22、浮动依次贴边

(父元素足够宽,所有子元素会按照HTML书写顺序,依次向右或者向左贴边展示,当子元素总宽大于父元素时,多余的子元素会向下一排掉,然后贴上下一排最近的边)

23-25、浮动的性质-margin塌陷现象

  • 浮动的性质(浮动元素没有margin塌陷,margin塌陷现象出现在标准流中,因为浮动元素已经脱离了标准流,所以不会有margin塌陷现象) 浮动的元素会让出标准流的位置,留给下一个同级元素占位
  • 字围现象:同级元素中,前面元素浮动,后面元素不浮动且元素内有很多文字,这种情况会出现字围现象。(后面元素内的位置围绕前面元素显示)

浮动依次贴边的应用以及问题 实际应用中,浮动会存在一些显示问题

26-27、清除浮动的方法

  • 解决浮动存在的问题的方法:
  1. 设置父元素高度和子元素一样高(方法有局限性,治标不治本)
  2. 清除浮动影响,clear属性,作用(清除标签元素自身受到的前面浮动元素的影响)
属性名属性值作用
clearleft清除前面元素左边浮动带来的影响
clearright清除前面元素右边浮动带来的影响
clearboth清除前面所以浮动带来的影响

缺点: 解决不了父元素高度自适应

3. 隔墙法

  • 外墙法:在两个父级元素之间加个<div> 例如:
.clear{
    clear:both;
<div class="clear"></div> 
}

缺点: 解决不了父元素高度自适应

  • 内墙法:在父元素内部,所以浮动子元素后加个空的<div>,标签高度设置为0,添加clear属性 能解决父元素高度自适应

缺点: 浮动是CSS里面的样式属性,用HTML标签来辅助解决,会造成HTML结构冗余

  1. 伪类清除浮动影响法 伪类法清除浮动的本质和内墙法一致,只是把HTML标签的书写改成了CSS代码书写内墙 书写方法: 伪类选择器:通过选中的标签添加伪类,去选择标签的某个状态或者位置 :after 此伪类表示选中的标签内部的最后的位置 注意(:after的前面要紧跟着7类选择器)

通常情况: 将伪类添加给一个选中父盒子的选择器后面,一般给需要给清除浮动的父盒子设置一个clearfix的类名

例:(可以强行记忆)

.clearfix:after {
               content: "1";       添加一个文字内容
               display: block;     将文字转化为块元素
               height: 0;          将盒子高度固定为0,避免影响父盒子的高度
               clear: both;        清除前面浮动的影响
               visibility: hidden; 将创建的元素隐藏并继续占有位置
}
  1. 溢出隐藏,overflow属性 这是一个小偏方,和清除浮动没啥关系,但是很好用,不添加任何清除浮动属性的情况下,就在父盒子里面加一条overflow:hidden,就解决了浮动影响问题 例如:
.box {
         width: 800px;
         margin-bottom: 10px;
         border: 10px solid rgb(220, 243, 15);
         overflow: hidden;
   }

总结: 如果父元素的高度是固定的,建议用height属性解决 如果父元素高度需要自适应,建议使用overflow属性解决浮动问题

28、a标签伪类

  • 伪类的概念: 伪类和类的权重是一样的 伪类和类有一定的相似处,也存在明显的区别 写法不同 只有用户触发了对应的行为,伪类的样式才会立即记载 例如a标签的伪类状态,书写顺序如下(改顺序会影响加载效果)
a:link{
   color:gray;            访问前的状态,a标签内容显示为灰色
}
a:visited{                 
   color:pink;             访问后的状态,a标签内容显示为粉色
}
a:hover{
   color:red               鼠标悬浮状态,a标签内容显示为红色
}
a:active{
   color:yellow;          鼠标点击的状态,a标签内容显示为黄色
}

实际应用中,一般把访问前和访问后的状态设置成一样的效果(保证页面的统一性) 例如:

a:link,a:visited{
   color:#666;
}
a:hover{
   color:#333;
}

29、CSS常用属性-背景样式属性

  • 背景样式属性为综合属性,和font类似的,也可拆分成单一属性
属性名作用属性值
background-color背景颜色,border及border以内加载
background-image背景图片,border及border以内加载url()
background-repeat背景重复设置成no-repeat时,border以内加载图片
background-position背景定位单次表示法、像素表示法、百分比表示法,属性值中间用空格分隔
background-attachment背景附着,设置背景图片是否随着页面或者盒子滚动而滚动scroll(滚动的)、fixed(固定的,固定在浏览器窗口的某个位置)

综合写法: 例:(五个属性可以颠倒顺序)

body{
background:url(image/图片.jpg) no-repeat center top scroll #333;
}

注意:

  1. 如果属性值没有设置完全,没有设置的单一属性会按照默认值加载
  2. 如果想层叠综合属性的一部分,其他属性保持不变,最好使用单一属性进行层叠

背景样式的场景应用

  1. 背景图替换标签的插入图,用css的background-image 替换html中的<img>
  2. padding区域背景图(根据实际情况灵活应用)
  3. 精灵图(又称CSS雪碧、css SpritesS),网上自行制作 将网页中所有需要到的小图片放在一张图里面.png 再根据背景定位选择需要记载的一部分进行定位

36、CSS3新增背景样式属性-透明度

属性名属性值
background-colorrgba,在rgb基础上增加了alpha(透明属性,取值范围在0-1之间)
background-sizepx值、百分比、cover、contain

多背景添加,background-image 写两个url中间用逗号隔开

37、定位属性position

属性名属性值
positionralative 相对定位
positionobsolute 绝对定位
positionfixed 固定定位

作用:设置定位元素,它需要根据某个参考元素发生位置的偏移

38、相对定位:

  • 不会脱离标准流,不会让出自己原来的坑位给其他元素 参考元素是自己,通常按left top 来书写定位
  • 场景应用: 导航条应用

39-41、绝对定位:

  • 会脱离标准流,设置了绝对定位的元素,会让出自己原来占的坑给其他元素使用 参考元素是距离最近的有定位的祖先元素,如果祖先元素没有定位,参考<body>
  • 参考<body>时 如果top参与定位,参考点是body页面的左上角left和右上角right 如果buttom参与定位,参考点是body页面首屏的左下角left顶点或右下角顶点right

注意: 实际工作中,尽量不以<body>为参考元素,因为不同浏览器中,绝对定位的元素位置是不同的 通常使用子绝父相

42、固定定位:

  • 会脱离标准流,让出自己的坑位 参考元素为浏览器窗口(浏览器窗口的四个顶点)

43、定位的实际应用-压盖效果

  • 所有的定位类型都可以实现压盖效果,常用绝对定位制作压盖效果
  • 定位的实际应用---居中效果 用百分比写法 例:
        a {
            display: block;         
            width: 50px;
            height: 20px;
            background-color: pink;
            position: absolute;
            left: 50%;  距离左边50%距离
            top: 50%;  距离上边50%距离
            margin-left: -25px; 往回拽元素宽度的一半
            margin-top: -10px;往回拽元素宽度的一半
        }

44、定位压盖顺序

  • z-index属性 定位的元素不区分定位类型,都会去压盖标准流或浮动元素 如果都是定位元素,在HTML中后写的定位压盖先写的定位 自定义压盖顺序z-index属性,属性值:数字 属性值大的会压盖属性值小的,设置了属性值的会压盖没设属性值的 z-index属性只能设置给定位的元素才能生效,如果给没有定位的元素设置,不会生效

注意: 子级盒子,“从父效应”

静态轮播图布局

  • 代码练习

第二节、HTML5

1、HTML5概念

  • 狭义概念:HTML的修改升级版,增加了很多新的语义特性
  • 广义概念:CSS+javascript+html总称 优势很多 缺点:IE9以下的浏览器不兼容

2、HTML5新增语义化标签

  • 把网页划分成几块有更对语义化的模块
  1. <header> 头部标签
  2. <nav> 导航标签
  3. article> <aside> 主体标签
  4. <section>
  5. <footer> 尾部标签

注意:

  • 这种语义化标签主要针对搜索引擎的
  • 这些新的标签在页面中可以使用多次
  • 在IE9中,需要把这些元素转换为块级元素

移动端更喜欢这些标签

3、HTML5中的<audio>音频标签

属性名属性值说明
autoplayautoplay自动播放
controlscontrol向用户显示控件,比如播放按钮(需要设置才会显示)
looploop音频结束时,重新开始播放
preloadpreload随着页面加载同时加载音频(若用了autoplay,则忽略该属性
srcurl要播放的音频的url

注意(音频格式)存在浏览器兼容性问题

格式MIME-typeIEFirefox3.0Opera10.0Chrome3.0Safari3.0
Oggaudio/mpeg
MP3audio/ogg
Wavaudio/wav

实际应用中,考虑到兼容问题,需要多些几个格式,提高用户体验 例如:

<audio controls>
     <source src="media/song.mp3" type="audio/mpeg">
     <source src="media/song.ogg" type="audio/ogg">
     您的浏览器版本过低,不支持音频播放,建议升级
</audio>

4、HTML5中的<video>视频标签

属性名属性值说明
autoplayautoplay自动播放
controlscontrol向用户显示控件,比如播放按钮(需要设置才会显示)
looploop音频结束时,重新开始播放
preloadpreload随着页面加载同时加载音频(若用了autoplay,则忽略该属性
srcurl要播放的音频的url
width像素值设置播放器宽度
height像素值设置播放器高度
posterimgurl加载等待的画面图片
mutedmuted静音播放

注意(视频格式)存在浏览器兼容性问题

格式MIME-typeIEFirefoxOperaChromeSafari
Oggvideo/ogg3.5+10.5+5.0+
MP4video/mp49.0+5.0 +3.0+
webmvideo/webm4.0+10.6+6.0+

5、HTML中的<input输入标签

例:

<form>
        请输入邮箱:<input type="emal"><br/>
        请输入url地址:<input type="url"><br/>
        请输入日期: <input type="date"><br/>
        请输入时间:<input type="time"><br/>
        请输入月份:<input type="month"><br/>
        请输入周数:<input type="week"><br/>
        请输入数字:<input type="number"><br/>
        滑动条<input type="range"><br/>
        请输入手机:<input type="tel"><br/>
        搜索框:<input type="search"><br/>
        颜色:<input type="color"><br/>

        <input type="submit">
    </form>

6、HTML5中新增可输入标签 <datalist>

城市:<input type="text" list="guanlian">
        <datalist id="guanlian">
            <option value="重庆">重庆.渝中区</option>
            <option value="重庆">重庆.永川区</option>
            <option value="成都">成都.武侯区</option>
            <option value="成都">成都.锦江区</option>
            <option value="上海">上海.黄浦区</option>
            <option value="上海">上海.浦东区</option>
            <option value="北京">北京.海定区</option>
        </datalist> 

7、HTML5中新增表单属性

属性名属性值描述
requiredrequired定义了某属性的表单控件内的内容必须填写
placeholder提示文本设置表单的提示信息(如果之前有设置默认值,就不显示,不存在默认值,就显示该属性设置的提示信息
autofocusautofocus自动聚焦属性,常用在搜索框里面(自动闪烁的光标),通常一个页面放一个
autocompleteoff/on根据历史搜索记录,在输入框输入首字母,会自动显示历史相关联的记录,提高用户体验,打开成功的条件:需要在表单内同时加上name属性,同时提交成功
multiplemultiple可以选择多文件提交

例:

<input type="text" autocomplate="off" name="lishijilu"> autocomplete搜索历史记录

<input type="file"> 只能上传单个文件

<input type="file" multiple="multiple"> multiple 可以上传多个文件

第三节 CSS3

1、子级选择器

  • 跟后代选择器区别:子集选择器只能选儿子,不能隔代选 书写方式: .fuqin > son 例:
    .fuqin>p {
            background-color: pink;
        }

     <div class="fuqin">
        <p>这是fuqin里面的p标签</p>
        <p>这是fuqin里面的p标签</p>
        <div class="mama">
            <p>这是mama里面的p标签</p>
        </div>
    </div>

2、兄弟选择器

  • 同级之间的选择 书写方式:
  1. 元素1+元素2 同级元素中,元素1紧跟着后面的那一个元素2 选择结果:只会作用于紧跟元素1后面的元素2
  2. 元素1~元素2 同级元素中,元素1后面的所有元素2 例如:
.fuqin h2+h3 {
    background-color: pink;     /三级标签被选中/
 }

.fuqin h2~p {
    background-color: yellow;    /所有p标签被选中/
}
<div class="fuqin">
    <h2>二级标签</h2>
    <h3>三级标签</h3>
    <h4>四级标题</h4>
    <p>段落1</p>
    <p>段落2</p>
    <p>段落3</p>
</div>

3-4、结构伪类选择器

写法:

.fuqin :first-child {              /父亲元素里面的所有儿子的第一个/
            background-color: red;
        }

        .fuqin :last-child {              /父亲元素里面的所有儿子的最后一个/
            background-color:gray;
        }

        .fuqin :nth-child(4) {            /父亲元素里面的所有儿子的第n个/
            background-color: yellow;
        }
        .fuqin p:first-of-type{           /父亲元素里面同类型儿子的第一个/
            background-color: blue;
        }
        .fuqin p:last-of-type{           /父亲元素里面同类型儿子的最后一个/
            background-color: green;
        }
        .fuqin p:nth-of-type(3){         /父亲元素里面同类型儿子的第n个/
            background-color:pink;
        }
    <div class="fuqin">
        <h1>标题一 颜色:红色</h1>
        <p>段落1 颜色:蓝色</p>
        <h2>标题二</h2>
        <p>段落2 颜色:黄色</p>
        <h2></h2>
        <p>段落3 颜色:粉色</p>
        <p>段落4</p>
        <p>段落5</p>
        <p>段落6</p>
        <p>段落7</p>
        <p>段落8 颜色:绿色</p>
        <h3>标题三 颜色:灰色</h3>
    </div>

5、新增伪元素选择器

  • 写法:在选择器后面用双冒号::(这是HTML5中的规范,传统写法是单冒号:)
  • 注意:伪元素只能给双标签添加,不能给单标签添加 伪元素内部必须加conten:"";
  • 为什么叫伪元素?因为确实创建了元素,在HTML结构中能看到这个元素,但是后面JS的DOM里面看不见创建的这个元素

例:盒子里面装几个元素,给盒子内部不同位置添加伪元素

  .fuqin {
            width: 400px;
            border: 2px solid pink;
        }

        .fuqin p:nth-of-type(n+1) {
            display: block;
            width: 100px;
            height: 100px;
            background-color: yellow;
            margin: 10px;
        }

        .fuqin::before {               /在父亲盒子内的第一个元素前面加伪元素/
            content: "这是一段话";
            display: block;
            background-color: red;
        }

        .fuqin::after {                /在父亲盒子内的最后个元素后面加伪元素/
            content: "1";
            display: block;
            background-color: red;
        }

        .d::first-letter {           /选择了class="d"这个容器里面的第一个字/     
            color: red;
        }

        .d::first-line {               /选择了class="d"这个容器里面的第一行/
            color: red;
        }
 <div class="fuqin">
        <p class="d">这是一个段落,还是一句话,还是一段文字</p>
        <p></p>
        <p></p>
        <p></p>
    </div>

6、新增属性选择器

写法:选择一个元素,然后加[]符号 例如:

        input[class]{              /选择元素中class这个类//
            height: 20px;
        }
        input[type=week]{         /选择元素中type这个类里面属性值为week这个标签/
            height: 100px;
        }
        input[type^=e]{            /选择元素中type这个类里面属性值有e开头的这个标签/
            height: 150px;
        }
        input[type$=h]{            /选择元素type这个类里面属性值有h结尾的这个标签/
            width: 400px;
        }
        input[class*=o]{          /选择元素class这个类里面属性值中只有包含着有o这个字母的标签
            background-color: pink;
        }
   <form>
        <input type="email"   class="you">
        <input type="search"  class="sou">
        <input type="number"  class="shu">
        <input type="week"    class="zhou">
    </form>

7、盒模型

  • 新增属性:box-sizing
  • 属性值:content-box(标准模式) boder-box(怪异模式) 例:
     div{
         width: 300px;
         height: 300px;
         background-color: pink;
         padding: 10px;
         border: 2px solid yellow;
         box-sizing: content-box;   /按照标准模式加载,除了内容区300*300以外的区域都外扩,这个模式下,修改border、padding值时,占据的数字都往外扩/
         box-sizing: border-box;   /按照怪异模式加载,包含border及以内的区域总共宽高为300*300,这个模式下,修改border、padding值时,占据的数字都往内减/
     }

8、CSS3中边框圆角属性

  • border-radius
  • 两种写法:单一属性写法、综合写法(类似padding的写法)
属性名属性值
border-radius像素值, 横纵轴写法,x轴和y轴之间用/符号划分开
border-radius百分比, 横纵轴写法,x轴和y轴之间用/符号划分开

例如:

  div{
            width: 300px;
            height: 300px;
            background-color: pink;
            border: 10px solid red;
            border-radius: 100px/100px;            /x轴为100px,y轴为100,如果只写一个数字,那么x轴=y轴/
            border-bottom-left-radius: 50px;
            border-bottom-right-radius: 50px;
            border-top-right-radius: 50px;
            border-top-left-radius: 50px;
            border-radius: 10px 20px 30px 40px ;    /综合写法:4值法/
            border-radius: 20px 50px 80px ;         /综合写法:3值法/
            border-radius: 20px 80px ;              /综合写法:2值法/
            border-radius: 20px 80px /30px 60px;    /综合写法:x轴/y轴法/
        } 

9、CSS3中的文字阴影

  • 属性名:text-shadow
属性值描述
x轴像素值水平阴影的位置,可以为负值
y轴像素值垂直阴影的位置,可以为负值
blur模糊的距离(用像素值表示)
color阴影的颜色

文字阴影综合写法: text-shadow: 20px 20px 10px red; 模糊的距离为10px

如果要写多层阴影

   p{
            font: 100px "微软雅黑";
            text-shadow: 20px 20px 10px red ,40px 40px 10px yellow,60px 60px 10px pink;                 
           /20px 20px 10px red 一轮四个属性值写完后,用逗号隔开,继续写下一轮/
        }

10、CSS3中的盒子阴影

  • 属性名box-shadow
属性值描述
x轴像素值水平阴影的位置,可以为负值
y轴像素值垂直阴影的位置,可以为负值
blur模糊的距离(用像素值表示)
spread阴影的尺寸
color阴影的颜色
inset将外部阴影改为内部阴影

盒子阴影综合写法: /边框阴影:水平位置、垂直位置、模糊程度、扩展大小、颜色、是否内边框阴影 box-shadow: 20px 20px 10px 40px red inset; 如果要写多层阴影,跟文字阴影的写法一样

11、CSS3的过渡属性

  • 动画效果 属性名:transition 作用:用transition属性可以实现补间动画(过渡效果,只要当前元素有“属性”发生变化即存在两种状态时(A状态、B状态),那么A和B之间可以实现平滑过渡的动画效果,为了方便看效果,使用:hover切换状态
  • 综合属性写法,语法格式: transition:过渡的属性 过渡的时间 运动曲线 延时时间; 例:
     div {
            width: 300px;
            height: 300px;
            background-color: pink;
            transition: all 2s cubic-bezier(0.66, 0.27, 0.22, 1) 0s;
        }
        div:hover{
            width: 800px;
        }
  • 单一属性写法
属性属性值描述
transition简写属性,用于在一个属性中设置4个过渡属性
transitoin-propertynone 、all 、属性名(使用具体的属性,多个属性名中间用逗号分隔规定应用过渡的CSS属性的名称
transition-duration以秒s为单位定义过渡效果花费的时间,默认值是0
transition-timing-functionlinear(匀速过渡)、ease(慢-快-慢)、ease-in(慢速开始过渡)、ease-out(以慢速结束过渡效果)、ease-in-out(慢速开始,慢速结束、cubic-bezier(x1,y1,x2,y2),函数自己取值)规定过渡效果的时间曲线,默认值是ease(慢速开始,然后变快,慢速结束的过渡效果)
transition-deay以秒s为单位规定过渡效果延时时间,什么时候开始,默认是0

12、2D转换-位移

  • 属性名:transform
  • 作用:对元素进行移动、缩放、转动、拉长或拉伸 位移效果和(绝对-相对路径)可以一样
位移属性值说明
translate(x,y)x.y分别为水平和垂直方向位移的距离,px像素值或者百分比(区分正负)
translane(x)只设置一个值的时候,表示水平方向位移

13、2D转换-缩放

  • 属性名:transform
  • 作用:对元素进行移动、缩放、转动、拉长或拉伸
缩放属性值说明
scale(x,y)x.y分别为改变元素高度和宽度的倍数
scale(n)只设置一个值的时候,表示宽度和高度同时缩放n倍
scaleX(n)改变元素的宽度
scaleY(n)改变元素的高度

14、2D转换-旋转

  • 属性名:transform
  • 作用:对元素进行移动、缩放、转动、拉长或拉伸
旋转属性值说明
rotate()括号里面写 数字+deg 正数表示顺时针旋转,负数表示逆时针旋转

书写语法:transform: rotate(30deg);

例:

综合写法(先旋转后位移) transform: rotate(30deg) translate(100px);

综合写法(先位移后旋转) transform: translate(100px) rotate(30deg) ;

注意: 两个先后顺序不同,加载结果会不同

15、2D转换-倾斜

  • 属性名:transform
  • 作用:对元素进行移动、缩放、转动、拉长或拉伸
倾斜属性值说明
skew()括号里面写 数字+deg,数字+deg,表示水平和垂直方向倾斜的角度

16-17、2D转换-基准点

  • 属性:transform-origin
  • 作用:设置调整元素的水平和垂直方向原点的位置 属性值有2个,中间用空格分隔
基准点属性值说明
x定义x抽的原点在何处,leftcenterright,像素值、百分比
y定义Y轴的原点在何处,topcnterbottom、像素值、百分比

18、3D转换-透视属性perspective

  • 可以理解为x,y,z轴的z轴方向,设置视觉远近
  • 透视特点:近大远小
属性名属性值说明
perspective像素值像素值越大,透视距离越远

注意:透视属性需要设置给3D变化元素的父级

19、3D转换-旋转

属性和2D一样,transform,不同于2D旋转的是,3D增加了一条Z轴,空间轴

属性值说明
rotateX(angle)沿着X抽的3D旋转
rotateY(angle)沿着Y抽的3D旋转
rotateZ(angle)沿着Z抽的3D旋转

注意:属性值角度区分正负,正数(顺时针)负数(逆时针)

20、3D转换-位移

  • 属性和2D一样,transform,不同于2D旋转的是,3D增加了一条Z轴,空间轴
属性值说明
translataX(x)沿着X轴的3D位移值
translataY(y)沿着Y轴的3D位移值
translataZ(z)沿着Z轴的3D位移值

21、CSS3制作动画

  • 用 @keyframes 创建动画,用animation属性绑定动画 语法: 如果 @keyframes 创建的动画作用于<div> div{ animation:动画名称 过渡时间 速度曲线 延时时间 动画次数 ; } 注意 必须设置动画名称和过渡时间,其他属性值根据实际情况而定

用关键词 "from" "to" 或者百分比来规定变化发生的时间,0%为动画开始,100%为动画完成一个周期

例如:

.box div:nth-child(8) {
            animation: move 4s linear 3.5s infinite;
        }

        @keyframes move {
            0% {
                transform: rotate(0deg);
            }

            100% {
                transform: rotate(360deg);
            }
        }
  • animation单一属性列表
属性说明
animation-name规定@keyframes 创建的动画名称
animation-duration规定动画完成一个周期需要的时间。默认是0
animation-timing-function规定动画的速度曲线,和过渡属性transition,设置方式一样,默认是ease(慢-快-慢)
animation-delay规定动画什么时候开始(设置延时时间)
animation-iteration-count规定动画播放的次数,默认是1,无限循环是infinite

注意 @keyframes 规则存在浏览器兼容性问题 IE10.0、 firefox、 Oprea支持 @keyframes 规则和animation属性 Chrome和Safari需要加前缀-webkit- IE9.0以及更早的版本不支持 @keyframes 规则和animation属性

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值