,用来将网页分割成独立的、不同的部分,来实现网页的规划和布局。
span(内联):对文字进行修饰,内联
用来修饰文字的,div和span都是没有任何默认格式的,需要配合CSS才行。
CSS
CSS基础语法
格式:
选择器{属性1:值1;属性2:值2}
单位:
1、px ->像素(pixel)
2、% -> 百分比
外容器 -> 600px 当前容器 50% -> 300px
基本样式:
width(宽)、height(高)、background-color(背景色)
CSS 注释:
/" CSS注释的内容 "/
CSS样式的引入方式
1、内联样式
style属性
2、内部样式
style标签
注:内部样式的优点在于可以复用代码
区别:内部样式的代码可以复用、复合W3C的规范标准,尽量让结构和样式分开处理。
3、外部方式
引入一个单独的CSS文件,name.css
1、标签(引入外部资源)
rel:rel属性 指定资源跟页面的关系
href:href属性 引入外部资源的地址
2、@import(了解)
这种方式有很多问题,不建议使用
CSS中的颜色表示法
1、单词表示法:red , blue , green , yellow
2、十六进制表示法:#000000 #ffffff
0 1 2 3 4 5 6 7 8 9
0 1 10 11
0 1 2 3 4 5 6 7 8 9 a b c d e f
3、RGB三原色表示法(red green blue):
rgb(255,255,255)
取值范围0-255
获取颜色的工具
提取颜色的下载地址:"http://www.baidufe.com/fehelper"
photoshop取色
CSS背景样式
background-color 背景色
background-image 背景图
url(背景地址)
默认:会水平垂直铺满背景图
background-repeat 平铺方式
repeat-x(x轴平铺)
repeat-y(y轴平铺)
repeat(x,y都进行平铺,默认值)
no-repeat(都不平铺)
background-position:背景位置
x,y:number(px,%)|单词
x:left、center、right
y:top、center、bottom
background-attachment:背景图随滚动条移动的方式
scroll:默认值(背景位置是按照当前元素进行偏移的)背景图像会随着页面其余部分的滚动而移动
fixed:(背景位置是按照浏览器偏移的)当页面的其余部分滚动时,背景图像不会移动。
用背景图fixed方法造成视觉差的原因是两个背景图是有一部分重叠,在我们向下滑动浏览器的时候,背景图相对浏览器向上运动,我们看到浏览器的div块也在相对运动,所以会显示上一张图的下半部分慢慢隐没,下张图的从下到上依次显现。
相当于是用两个摄像机分别相对于两张图片向上运动,两个摄像机获取的图像的两部分拼凑成了视觉差效果
CSS边框样式
border-style:边框样式
solid:实现
dashed:虚线
dotted:点线
border-width:边框大小
border-color:边框颜色
red #foo...
边框也可以针对某一条边进行单独设置:border-left-style:中间是left,right,top,bottom
练习:利用边框实现三角形
颜色:透明颜色 transparent
CSS文字类型
font-family:字体类型
英文字体:Arial,'Times New Roman'
中文字体:微软雅黑(Microsoft TaHei)、宋体(SimSun)
衬线体与非衬线体
注意点:
1. 多个字体类型的设置目的(依次兼容)
2. 引号添加的目的(有些字体名称带空格的就要加引号)
font-size:字体大小(一般设置偶数像素)
默认值(16px)
写法:number(px)|单词(small large 不推荐使用)
属性取值 |
字体大小 |
xx-small |
最小 |
x-sm |
较小 |
small |
小 |
medium |
正常(默认值) |
large |
大 |
x-large |
较大 |
xx-large |
最大 |
font-weight:字体粗细
模式:正常(normal) 加粗(bold)
写法: 单词(normal、bold) | 数值(100-900,100-500都是normal,500-900都是bold)
font-style:字体样式
模式:正常(normal) | 斜体(italic)
写法:单词(bold、italic)
注:oblique也是表示斜体,用的比较少,一般了解即可
区别:
1、italic 带有倾斜属性的字体可以设置
2、oblique 没有倾斜属性的字体也可以设置倾斜操作
color:字体颜色
text-align: 字体居中
CSS段落样式
text-decoration:文本装饰
下划线:underline
删除线:line-through
上划线:overline
不添加任何装饰:none
注:添加多个文本修饰:line-through underline overline
text-transform:文本大小写(针对英文段落)
小写:lowercase
大小:uppercase
只针对首字母大写:capitalize
text-indent:文本缩进
首行缩进
em单位:相对单位,1em永远都是跟字体相同
text-indent:2em
text-align:文本对齐方式
对齐方式:left、right、center、justify(两端点对齐)
line-height:定义行高
什么是行高,一行文字的高度,上边距和下边距的等价关系
默认行高:不是固定值,而是变化的。根据当前字体的大小在不断的变化
取值:1.number(px) | scale(比例值,跟文字大小成比例的)
line-height:20px/200%
letter-spacing:字之间的间距,英文单词每个字母的间距
letter-spacing:10px
word-spacing:词之间的间距(只针对英文段落间距,中文没关系)
word-spacing:10px
强制折行:(针对英文和数字不自动折行的问题)
1、word-break:break-all(非常强烈的折行)
word-break:break-all
2、word-wrap:break-word(不是非常强烈的折行,会产生一些空白区域)
word-wrap:break-word
CSS复合样式
一个CSS属性只控制一种样式叫做单一样式
一个CSS属性控制多种样式,叫做复合样式
复合的写法,是通过空格的方式实现的。复合写法有的是不需要关心顺序的,例如background、border;有的是需要关心顺序的,例如font。
- background:red url() repeat 0 0;
- border:1px red solid;
- font:
- 注:最少有两个值size family且这两个值的顺序不能改变
- weight style size family √
- style weight size family √
- weight style size/line-height family √
- 注:尽量不要混写,如果非要混写,那么一定要先写复合样式,再写单一样式,这样样式才不会被覆盖掉。
CSS选择器
-
ID选择器
#elem{} id ="elem"
快捷方式:div#id_name + tab
注意:
- ID是唯一值,在一个页面中只能出现一次,出现多次是不规范的写法。
- 命名的规范,由字母、下划线、中划线、字母(并且第一个不能是数字)
- 写法
- 驼峰写法:searchButton(小驼峰) SearchButton(大驼峰)
- 下划线写法:search_small_SearchButton
- 短线写法:search-small-SearchButton
CSS_id的命名:
(1)页面结构
容器:container
页头:header
内容:content/container
页面主题:main
页尾:footer
导航:nav
侧栏:sidebar
栏目:column
页面外围控制整体布局宽度:wrapper
左右中:left right center
(2)导航
导航:nav
主导航:mainbav
子导航:subnav
顶导航:topnav
边导航:sidebar
左导航: leftbar
右导航: rightsidebar
菜单:menu
子菜单:submenu
标题:title
摘要:summary
(3)功能
标志:logo
广告:banner
登录:login
登录条:loginbar
注册:register
搜索:search
功能区:shop
标题:title
加入:joinus
状态:status
按钮:btn
滚动:scoll
标签页:tab
文章列表:list
提示信息:msg
当前的:current
小技巧:tips
图标:icon
注释:note
指南:guild
服务:service
热点:hot
新闻:news
下载:download
投票:vote
合作伙伴:partner
友情链接:link
-
CLASS选择器
.elem{} class="elem"
快捷方式:div.class_name + tab
注:
- class选择器是可以复用的。
- 可以添加多个class样式。
- 多个样式的时候,样式的优先级根据CSS决定,而不是根据class属性中的顺序。
- 标签+类的写法。 p.box{background:red;}只把p标签的box类的背景改成了红色。
-
标签选择器(TAG选择器)
css:div{}
html:
使用的场景:
- 去掉某些标签的默认样式时。
- 复杂的选择器中,如:层次选择器。
群组选择器(分组选择器)
可以通过逗号的方式,给多个不同的选择器添加CSS样式,来达到代码的复用。
语法:选择器1,选择器2,选择器n{}
-
复合选择器(交集选择器)
作用:选择更准确更精细的目标元素并为其设置属性
语法:选择器1选择器2选择器n{}
Document
yellow
yellow
yellow
我的字体大小为20px,我的背景也是黄色的
-
通配选择器
作用:用来选择页面中所有的元素
语法:*{}
注:尽量避免使用通配选择器,因为会给所有的标签添加样式,慎用
使用的场景:去掉所有标签的默认样式时
-
后代元素选择器
作用;选中指定元素的指定后代元素
语法:祖先元素 后代元素{}
-
子元素选择器
作用:选中指定父元素的子元素
语法:父元素>子元素
-
伪类选择器
伪类表示元素的一种特殊状态
常用的伪类选择器:
:link 访问前的样式
:hover 鼠标移入时元素的状态
:visited 已被访问过后的元素的状态
:active 被鼠标点击时元素的状态
注:
- link、visited只能给a标签加状态,hover、active可以添加给所有标签样式。
- 如果四个伪类都生效,一定要注意顺序:L V H A。
- 一般网站只设置:a{}(link visited active) a:hover{}
鼠标移入我时,我的背景颜色变为粉色
after等伪类选择器:
:after,:before通过伪类的方式给元素添加一个文本内容。
:checked :disabled :focus都是针对表单元素的
结构性伪类选择器:
nth-of-type() nth-child()
角标是从1开始的,1表示第一项,2表示第二项| n值 表示0从无穷大
first-of-type() last-of-type() only-of-type()
nth-of-type()和nth-child的区别
-
属性选择器
作用:根据元素中的属性或者属性值来选取指定元素
语法:
[属性名]选取含有指定属性的元素
[属性名^="属性值"]选取属性值以指定内容开头的元素
[属性名$="属性值"]选取属性值以指定内容结尾的元素
[属性名*="属性值"]选取属性值包含指定内容的元素
我是红色的,背景为黄色
我是红色的
-
兄弟元素选择器
+选择器
作用:选中一个元素后紧挨着的指定的兄弟元素
语法:前一个+后一个(作用在后一个)
~选择器
作用:选中后边所有的指定兄弟元素
语法:前一个~后边所有
单纯的p标签
单纯的p标签
单纯的p标签
单纯的span
我是粉色的,背景是灰色的
我的背景是灰色的
我的背景是灰色的
CSS样式继承
文字相关的样式可以被继承。
布局相关的样式不能被继承。(默认是不能继承的,但是可以设置继承属性)
CSS优先级
相同样式优先级:
当设置相同样式时,后面的优先级较高,但不建议出现重复设置样式的情况。
内部样式和外部样式:
内部样式和外部样式优先级相同,如果都设置了相同样式,那么后写的引入方式优先级高.
-
单一样式优先级:
style行间>id>class>tag>*>继承
注:
style行间 权重 1000
id 权重 100
class 权重 10
tag 权重 1
-
嵌套排列
固定宽高:不推荐,不能把高度固定死,不适合做自适应的效果
父元素浮动:不推荐,因为父容器浮动也会影响到后面的元素
overflow:hidden(BFC规范),如果有子元素想溢出,那么会受到影响。
display:inline-block(BFC)规范,不推荐,父容器会影响到后面的元素。
设置空标签:不推荐,会多添加一个标签。
after伪类:推荐,是空标签的加强版,目前各大公司的做法。
注意:(clear)属性只会操作块标签,对内联标签不起作用
position定位
position特性:CSS position属性用于指定一个元素在文档中的定位方式。top、right、bottom、left属性则决定了该元素的最终位置。
position取值
static
-
relative
相对定位:
- 如果没有定位偏移量,对元素本身没有任何影响
- 不使元素脱离文档流
- 不影响其他元素布局
- left、top、right、bottom是相对于当前元素自身进行偏移的
-
absolute
绝对定位:
- 使元素完全脱离文档流;
- 使内联元素支持宽高(让内联具备块特性);
- 使块元素默认宽根据内容决定(让块具备内联的特性)
- 如果有定位祖先元素相对于定位祖先元素发生偏移,没有定位祖先元素相对于整个文档发生偏移(绝对、相对、固定)
-
fixed
固定定位:
- 使元素完全脱离文档流
- 使内联元素支持宽高(让内联具备块特性)
- 使块元素默认宽根据内容决定(让块具备内联的特性)
- 相对整个浏览器窗口进行偏移,不受浏览器滚动条的影响
-
sticky
黏性定位:在指定的位置,进行黏性操作。
z-index定位层级
CSS添加省略号
width 必须有一个固定的宽
white-space 不让内容折行
overflow:hidden 隐藏溢出的内容
text-overflow:ellipsis 添加省略号
CSS Sprite
特性:CSS雪碧也叫作CSS精灵,是一种网页图片应用处理方式。它允许你将一个页面涉及到的所有零星图片都包含到一张大图中去加载。
优点:可以减少图片的质量,网页的图片加载速度快;可以减少图片的请求的次数,加快网页的打开
CSS圆角
border-radius:给标签添加圆角
PC端的布局
通栏:自适应浏览器的宽度
版心:固定一个宽度,并且让容器居中
PC端网页(游戏)制作(92-109)
pass
HTML和CSS发展历史(110)
pass
HTML和XHTML区别(111)
pass
引用标签(112)
pass
iframe嵌套页面
iframe元素会创建包含另外一个文档的内联框架(即行内框架)
表头 |
含义 |
frameborder |
规定是否显示框架周围的边框 |
width |
定义iframe的高度 |
scrolling |
规定是否在iframe中显示滚动条 |
src |
规定在iframe中引入的url |
srcdoc |
规定在iframe中显示的页面内容 |
应用场景:数据传输(JS)、共享代码(页面局部共享,只更改需要改变的部分)、局部刷新(利用JS只刷新iframe)、第三方介入(广告)等
br标签与wbr标签
br表示换行,wbr表示软换行(挤一部分下来进行换行)
pre与code标签
pre元素可定义预格式化的文本。被包围在pre元素中的文本通常会保留空格和换行符。
只应该在表示计算机程序源代码或者其他机器可以阅读的文本内容上使用code标签。虽然code标签通常只是把文本变成等宽字体,但是它暗示着这段文本是源程序代码。
map与area
给特殊图形添加连接,area能添加的区域的形状:矩形、图形、多边形。
定义一个客户端图像映射。图像映射(image-map)指带有可点击区域的一幅图像。area元素永远嵌套在map元素内部。area元素可定义图像映射中的区域。
area元素的href属性定义区域的url,shape属性来定义区域的形状,coords属性定义热区的坐标。
embed和object
embed和object都表示能够嵌入一些多媒体,如flash动画、插件等。基本使用没有太多差别,主要是为了兼容不同的浏览器而已。
audio和video
引入音频与视频的标签,属于h5的新功能
文字注解与文字方向
ruby标签定义ruby注释(中文注音或字符),rt标签定义字符(中文注音或字符)的解释或者发音。
寒冬
bdo标签可覆盖默认的文本方向
爱神的箭是是是是sadajdp
爱神的箭是是是是sadajdp
思考题:古诗句排列
思路:每一列浮动靠右、宽度只能容纳一个字。就可以达到古诗从右向左一列一列排列的效果。
扩展link标签
meta标签
meta:添加一些辅助信息。
META标签是HTML标记HEAD区的一个关键标签,它位于HTML文档的
和
之间(有些也不是在和之间)。它提供的信息虽然用户不可见,但却是文档的最基本的元信息。除了提供文档字符集、使用语言、作者等基本信息外,还涉及对关键词和网页等级的设定。
html5新语义化标签
可以用来提升网站的搜索引擎曝光度
header:页眉
footer:页脚
main:主体
hgroup:标题组合
-
nav:导航
注:header、footer、main在一个网页中只能出现一次
article:独立的内容
aside:辅助信息的内容
section:区域
figure:描述图像或者视频
figcaption:描述图像或视频的标题部分
datalist:选项列表
details/summary:文档细节、文档标题
progress/meter:定义进度条/定义度量范围
time:定义日期或者时间
mark:带有记号的文本
-
今天是,街上人很多
今天是情人节,街上人很多
表格扩展
- 添加单线-> border-collapse:collapse
- 隐藏空单元-> empty-cells:hide
- 斜线分类-> border/rotate
- 列分组-> colgroup/col
表单扩展之美化控件
-
label + :checked
-
position + opacity(障眼法)
表单扩展之新input控件
新的input控件:
- email ->电子邮件地址输入框
- url ->网址输入框
- number ->数值输入框
- range ->滑动条
- date/month/week ->日期控件
- search ->搜索框
- color ->颜色控件
- tel ->电话号码输入框
- time ->时间控件
表单扩展之——新的表单属性
- autocomplete:自动完成
- autofocus:获取焦点
- required:不能为空
- pattern:正则验证
- method:数据传输方式
- enctype:数据传输类型(enctype="application/x-www-form-urlencoded"——字符串;enctype="multipart/form-data"——文件类型)
- name/value:数据的键值对
表格扩展之标签
扩展标签:
- fieldset ->表单内元素分组
- legend ->为fieldset元素定义标题
- optgroup ->定义选项组
BFC规范
触发BFC规范的元素,可以形成一个独立的容器,不受到外界的影响,从而解决一些布局问题。
触发BFC的样式:
- 浮动元素:float除none以外的值
- 绝对定位元素:position(absolute、fixed)
- display为inline-block、table-cells、flex
- overflow除了visible意外的值(hidden、auto、scroll)
BFC特性及应用
- 解决margin叠加问题
- 解决margin传递问题
- 解决浮动问题
- 解决覆盖问题
aadasdas
浏览器前缀
浏览器 |
内核 |
前缀 |
IE |
Trident |
-ms- |
Firefox |
Gecko |
-moz- |
Opera |
Presto |
-o- |
Chorme |
Webkit |
-webkit- |
Sarify |
Webkit |
-webkit- |
Opera、Chrome |
Blink |
CSS3去兼容不同的浏览器,针对旧的浏览器做兼容,新浏览器基本不需要添加前缀。
transition过渡基础语法
- transition-property:规定设置过渡效果的CSS属性的名称。
- transition-duration:规定完成过渡效果需要多少秒或者毫秒。
- transition-delay:定义过渡效果何时开始
- transition-timing-function:规定速度效果的速度曲线。
transition实例之过渡导航
transform变形
-
translate:位移
- translateX
- translateY
- translateZ
-
scale:缩放(值是一个比例值,正常大小就是1,会以当前元素中心点进行缩放)
- scaleX
- scaleY
- scaleZ
-
rotate:旋转(旋转的值,单位是角度deg,弧度rad)
- rotatex(3d)
- rotatex(3d)
- rotatez(和rotate是等价关系,正值按顺时针旋转,负值按逆时针旋转)
-
skew:斜切
- skewX:单位也是角度,正值向左倾斜,负值向右倾斜
- skewY
transform的注意事项:
变形操作不会影响到其他元素。
变形操作只能添加给块元素,但是不能添加给内联元素。
-
复合写法,可以同时添加多个变形操作。
执行时有顺序的,先执行后面的操作,再执行前面的操作。
translate会受到rotate、scale、skew的影响