HTML&CSS
W3School离线手册,进入界面 ctrl+F 搜索功能
记事本可以写文本文件
扩展名:.html
一个页面有且仅有一个根标签:所有内容都应写到里面
子标签: head的内容不会在网页里直接显示,head是帮助浏览器解析网页的
:表示网页的主题,网页中让用户看的东西都写到body里
######
< body > 中一共有六级标签 //但表现一般用css,使用html标签时,关心的是标签的语义
一级标题
//六级标题中h1最重要(只写一个),重要性依次降低,一般使用到h3
. //h3以后不怎么用
.
?
六级标题
//分割线
段落标签 < p> 表示一个自然段
html中字符之间再多的空格,浏览器也会当成一个空格解析,换行也会当成一个空格解析
表示一个段落
< br /> < br> 表示换行
呵呵,
//
也可以
实体 / 转义字符
&实体的名字;
< <
> >
空格
图片标签 < img />
属性: src:设置一个外部图片的路径,目前我们所要使用的路径全部都是相对路径。
src="文件名/子文件名/图片.gif"
// ../ 表示返回上一层目录
alt:可以用来设置在图片不能显示时,对图片的描述
搜索引擎通过alt属性来识别不同的图片
width:可以用来修改图片的宽度,一般用px作为单位(像素)
height:可以用来修改图片的高度,一般用px作为单位
(宽度和高度两个属性如果设置一个,另一个也会同时等比例调整大小 除非同时指定)
一般开发中除了自适应的页面,不建议设置width 和high
图片格式
IPEG(JPG) :支持的颜色比较多可以压缩,但不支持透明
-- 一般用来保存照片等颜色丰富的图片
GIF : 支持的颜色少,只支持简单的透明(直线的),支持动态图
-- 一般图片颜色单一或者动态图时可以使用gif
PNG: 支持的颜色多,支持复杂的透明
-- 可用来显示颜色复杂的透明的图片
图片使用原则:
效果不一致,使用效果好的
效果一致,使用小的
注: 文件资源管理选项,查看中的高级设置,将文件扩展名显示出来
注释
font 属性标签:(在开始标签里添加 color ="颜色" ()相当于一个名值对)
属性名=”属性值“ size color face 都可以同时设置,size属性范围:1-7 //不赞成使用该标签
这是我的第二个
//把“第二个”这三个字单独设置成红色网页
文档声明
//文档前一定要写
乱码问题
中文系统的浏览器中,默认都是使用GB2312进行解码的
notepad++ 要选utf-8 无bom格式
!- 需要告诉网页编码的字符集:
meta标签
搜索引擎在检索页面时,会同时检索页面中的关键词和描述,但是这两个值不会影响搜索引擎中的排名
meta标签还可以用来设置网页的关键字 还可以用来指定网页的描述
使用meta可以用来做请求的重定向
//5秒后页面跳转,重定向到百度
html的语法规范(xhtml)
1.html中不区分大小写,但一般都是用小写
2.注释不能嵌套
3.标签结构必须完整,要么成对出现,要么自结束标签
4.html标签可以嵌套,不可以交叉嵌套
5.标签必须有值,且值必须加引号(双引号单引号都可以)
内联框架(不推荐使用,因为内联框架中的内容不会被搜索引擎所检测)
使用内联框架可以引入一个外部页面;使用iframe创建一个内联框架
属性:
src:指向一个外部页面的路径,可以使用相对路径
width:
height:
name:可以为内联框架指定一个name属性
超链接
可以从一个页面跳转到另一个页面;使用 标签创建超链接
属性:
href:指向链接跳转的目标地址,可以写一个相对路径也可以写一个完整的地址
target:用来指定打开标签的位置
_self,表示在当前窗口打开(默认值)
_blank,在新的窗口打开
可以设置一个内联框架的name属性值,链接将会在指定的内联框架中打开
我是一个超链接
我是一个超链接 我是一个超链接 //当超链接地址不确定时可以用#作为占位符
center 标签中的内容会默认居中显示(表现不推荐使用)
回到顶部 (# 功能)
若将地址设置成#,则点击超链接以后,会自动跳转到当前页面的顶部
去底部
html中有一个属性,每一个元素都可以设置,该属性可以作为标签唯一的标识,这个属性就是id 注: 1.id不可以以数字开头
2.页面同样id只有一个
所以,想跳转到id为某某的元素所在元素的位置,直接在href中写 #id属性值
发送电子邮件的超链接
点击链接以后可以自动打 开计算机中默认的邮件客户端
< a href="mailto:邮件地址">联系我们
CSS
方式一:内联样式(不推荐)
可以将css样式编写到元素的style属性当中,每个样式写完了要分号结尾
-- 将样式编写到style属性中,这种样式我们称为内联样式,内联样式只对当前的元素中的内容起作用
不方便重复使用,结构与表现耦合,不方便后期的维护
呵呵
方式二:内部样式表
将CSS样式编写到head中的style标签里,将样式表编写到style标签中,然后通过css选择器选中指定元素;然后可以同时为这些元素一起设置样式,这样可以使样式进一步复用
该方式使表现和结构进一步分离它是我们推荐的使用方式
type="text/css" 可写可不写,为了兼容一些老的浏览器
方式三:外部的css文件(最推荐)
编写到css外部文件中;(文件后缀 .css);然后通过link标签来讲外部的css文件引入当前文件中
将css样式统一编写到外部的样式表中,完全使结构和表现分离,可以使样式表在不同的页面中使用
最大限度的使样式可以进行复用,将样式统一写在样式表中,然后通过link标签引入,可以利用浏览器缓存加快用户访问的速度,提高了用户体验;
style 里面不能用html的语句
css的注释
快捷注释:选中 ctrl+shift+/
/* */
css的语法
选择器: -通过选择器可有选中页面中的指定元素,并将声明块的样式应用到选择器对应的元素上 声明块: - 声明块紧跟在选择器的后面,使用{}括起来, 声明块中实际上就是一组一组的名值对结构 这一组一组的名值对我们称为声明,一个声明块可使用多个声明,用;隔开, 声明的样式名和样式值之间使用:来连接
####
Hbuilder
新建一个web项目,编写html文件,若没有框架 ->输入!并按tab键->自动生成
ctrl +D 删除一行
标签名+tab键 建立完整标签
查看页面:可以直接往浏览器里拖拽
ctrl +shift+R 复制一行
ctrl+回车 换行
块元素和内联元素
div就是一个块元素,所谓的块元素就是会独占一行的元素,无论他的内容有多少,他都会独占一行,
p h1 h2 h3 ...都独占一行
- div这个标签没有任何语义,就是一个纯粹的块元素,并且不会为它里面的元素设置任何的默认样式
作用:
div元素主要对网页进行布局
内联元素
span是一个内联元素(行内元素)
所谓的行内元素,指的是只占自身大小的元素,而不是一整行
常见的内联元素:
a img iframe span
span没有任何语义,span标签专门用来选中文字,然后为文字来设置样式
作用:
内联元素主要用来选中文本设置样式
一般情况下只使用块元素去包含内联元素,而不会使用内联元素去包含一个块元素
a元素可以包含任何元素,但除了a本身。
p元素不可以包含任何块元素
元素选择器
作用:通过元素选择器可以选择页面中的所有指定元素
语法:标签名{}
id选择器
#id名
#p1{ font-size:20px; }
class属性
class属性和id属性类似,只不过class属性可以重复
可以同时为一个元素设置多个calss属性值,多个值之间用空格隔开
呵呵
类选择器
通过元素的class属性值选中一组元素
语法:.class名
.p2{ color:red; font-size:40px; }
选择器分组(并集选择器)
- 可以同时选中多个选择器对应的元素
- 语法:选择器1,选择器2,选择器N{}
通配选择器
- 用来选中页面中的所有元素 - 语法:*{}
交集选择器
作用:可以选中同时满足多个选择器的元素
语法: 选择器1选择器2选择器N{}
对于id选择器不建议使用复合 选择器
元素之间的关系
父元素:直接包含子元素的元素
子元素:直接被父元素包含的元素
祖先元素:包括父元素
后代元素:
兄弟元素:
后代元素选择器
指定元素的指定后代
语法:
祖先元素 后代元素 后代的后代{}
-- 中间空格隔开,可以是#id,也可以是元素,也可以是* ;尽量不要写长,选择器越短越好
子元素选择器(IE6以下的浏览器不支持)要问清
作用:选中指定父元素的指定子元素
语法:
父元素>子元素{}
兄弟类型选择器
A+B 类型选择器 -------will select all B elements that directly follow A (brother)
仅仅选择后紧挨着的一个兄弟B
A~B 选择器 ----------will select all B that follow A (brother)
选择A后的所有兄弟B
子伪类选择器
:first-child 选择器 ---------selects all first child elements
P:first-child ---- selects all first child elements.
div p:first-child -----selects all first child elements that are in a span:last-child selects all last-child elements. ul li:last-child selects the last elements inside of any div p:nth-child(2) selects the second p in every div 也可以选择even 和 odd .example:nth-of-type(odd) selects all odd instances of a the example class. span:nth-of-type(6n+2) selects every 6th instance of a , starting from (and including) the second instance. p span:only-of-type selects a span within any p if it is the only span in there. div:last-of-type selects the last p span:last-of-type selects the last in every . div:empty selects all empty :not(#fancy) selects all elements that do not have id="fancy". div:not(:first-child) selects every div that is not a first child. :not(.big, .medium) selects all elements that do not have class="big" or class="medium". ##### 专门表示元素的一种状态。比如:访问过的超链接,比如获得焦点链接 a:link{} -表示普通链接(没访问过的链接) a:visited{} -表示访问过的链接 浏览器是通过历史记录来判断一个链接是否访问过 a:hover{} - 鼠标移入的状态 a:active{} - 表示超链接被点击的状态 input:focus{} -输入框的焦点 (IE6不支持 ::selection{} - 选中的内容设置样式 (兼容大部分浏览器) 在火狐中用另一种方式编写 p::-moz-selection{} 使用伪元素来表示元素中的一些特殊的位置 :first-letter :first-line :before{ content:出现在内容前面的; color:red; } 元素的后面(不能选中 :after{} 当鼠标移入到元素上时,元素中的title属性的值将会作为提示文字显示 为所有具有title属性的p元素,设置一个背景颜色 作用:可以根据元素中的属性或者属性值来选取指定元素 语法: [属性名] 选取含有指定属性的元素 [属性名="属性值"] 既有指定属性,还有指定的属性值的元素 [属性名^="属性值"] 选取该属性的属性值以该指定属性值开头的元素 [属性名$="属性值"] 选取以该特定属性值结尾的元素 [属性名*="属性值"] 选取包含属性值的元素 css中祖先元素上的样式,也会被他的后代元素所继承,并不是所有样式都会被继承,比如:背景颜色不会被继承 使用不同的选择器选中同一个元素时,并且设置相同的样式时 优先级规则: 内联样式,优先级 1000 id选择器,优先级 100 类和伪类,优先级10 元素选择器,优先级1 通配* , 优先级0 继承的样式,没有优先级 当选择器中包含多种选择器时,需要将多种选择器的优先级相加然后在比较 但是注意,选择器优先级计算不会超过他的最大的数量级 如果选择器的优先级一样,则使用靠后的样式 并集选择器的优先级是单独计算的 可以在样式的最后,添加一个 !important,则此时该样式将会获得一个最高的优先级,优先于所有的样式显示甚至超过内联样式(不建议使用,不利于后期修改) 涉及到a的伪类一共有四个: :link :visited :hover :active 而这四个选择器的优先级是一样的。 在后面的优先级高;所以hover要写到active的上面, em标签用于表示一段内容中的着重点 strong 标签用于表示一个内容的重要性 这两个标签可以单独使用,也可以一起使用。 通常em显示为斜体,而strong显示为粗体 em主要表示语气上的强调
今天天气真不错
强调重点内容,比em更强烈
h5规范中规定,对于不需要着重的内容而是单纯的加粗或者是斜体就可以用b标签和i标签
斜体
加粗
在h5中使用small标签来表示一些细则一类的内容:比如合同中的小字,网站的版权声明
我是p标签中的内容我是samll标签中的内容
网页中所有的加书名号的内容都可以使用cite标签,表示参考的内容 默认加上引号
子曰: 表示一个长引用(块级引用) sup设置一个上标 赵薇[1] sub 下标 用法和上面相同 del 标签语义:表示一个删除的内容 ----删除线 ins 标签 语义:表示插入的内容;自动添加下划线 pre是一个预格式标签,会将代码中的格式保存,不会忽略多个空格。 专门表示代码 ,但不会保留格式。 HTML中一共有三种列表: 1.无序列表 2.有序列表 3.定义列表 无序列表: 使用ul标签来创建一个无序列表 使用li在ul中创建一个一个的列表项, 一个li就是一个列表项 通过type属性可以修改无序列表的项目符号(不用) 注意:默认的项目符号我们一般都不使用!!(因为不同浏览器效果不同) 如果需要设置项目符号,则可以采用为li设置背景图片的方式来设置 无序列表: 无序列表和有序列表类似,只不过它使用ol来代替ul 有序列表用有序的序号作为项目符号 type属性,可以指定序号的类型 可选值:1.默认值,使用阿拉伯数字 2.a/A采用大写或小写字母作为序号 3.i/I 采用小写或者大写罗马数字作为序号 列表都是可以互相嵌套,自身嵌套的。 定义列表用来对一些词汇或内容进行定义 使用dl来创建一个定义列表,dl中有两个子标签 dt:被定义的内容,dd:对定义内容的描述 ##### hbuilder 技巧 div.box +按tab键 ->快捷建立class=box的div,div#box 同理建立id 长度单位: 像素px - 我们网页中使用最多的一个单位,一个像素就相当于我们屏幕中的一个小点,屏幕上实际就是由这些像素点构成的,但是这些像素点是不能直接看见的 - 不同显示器一个像素的大小不相同,显示越好效果越清晰,像素越小,反之像素越大 百分比% - 也可以将单位设置成一个百分比的形式,这样浏览器会将根据其父元素的样式来计算该值 - 使用百分比的好处是,当父元素的属性值发生变化时,子元素也会按照比例发生改变 - 创建自适应的页面时,经常使用百分比作为单位 em - em和百分比类似,他是相当于当前元素的字体的大小来计算的 - lem = 1font-size,使用em时,当字体大小发生改边时,em也会随之变化 在css可以直接用颜色的单词来表示不同的颜色 也可以使用RGB值来表示不同的颜色 RGB值指的是通过Red,Green,Blue三原色,通过这三种颜色的不同浓度,来表示出不同的颜色 例子: rgb(红色的浓度,绿色的浓度,蓝色的浓度); 颜色的浓度需要用一个0-255之间的值,255表示最大,0表示没有 浓度也可以采用百分数来设置,使用百分数最终也会转化为0-255之间的数 0%表示0,100%表示255 也可以使用十六进制的rgb值来表示颜色,原理和上边RGB原理一样 语法: #红色绿色蓝色 #000000 每组两位,范围00-ff 两两都重复的颜色,可以简写,比如:#ff0000 可以写成#f00 #abc -> #aabbcc 设置的并不是文字本身的大小,在页面中,每个文字都是处在一个看不见的框中的 , font-size实际上是设置格的高度,并不是字体的大小 一般情况下文字都要比这个格要小一些,也有时会比格大,根据字体不同,显示效果也不同。 font-family:微软雅黑; 如果字体不支持,则使用默认字体,该样式可以同时指定多个字体,多个字体之间使用,分开。 采用多个字体时,浏览器会优先使用前面的字体,如果前边字体没有再尝试下一个。 网页中将字体分为5大类: serif(衬线字体) sans-serif(非衬线字体) monospace(等宽字体) cursive(草书字体) fantasy(虚幻字体) 可以将字体设置为这些大类,当设置为大的分类以后,浏览器会自动选择指定的字体并应用样式 font-style 字体样式 font-weight 字体粗度 :可以指定100-900之间的数值;normal 正常;bold加粗 font-variant可以用来设置小型大写字母 可选值:normal,默认值,文字正常显示 small-caps 文本以小型大写字母显示 在css中还为我们提供了一个样式叫font,使用该样式可以同时设置字体相关的所有样式 空格隔开,大小和字体必须写,缺一不可,字体必须是最后一个样式,大小必须是倒数第二个样式 实际上使用简写性能更好一些 CSS中并没有为我们提供一个直接设置行间距的方式,只能通过行高间接的设置行间距,行高越大,行间距越大,使用line-height来设置行高。在style标签中设置 行间距=line-height - font-size line-height可以间接的设置行高 可以接收的值: 1.直接就收一个大小 20px 2.可以指定一个百分数,则会相对于字体去计算行高 200%--就是二倍行高 3.可以直接传一个数值,则行高会设置字体大小相应的倍数 对于单行文本来说,可以将行高设置为和父元素的高度一致,这样可以使单行文本在父元素中垂直居中 字体大小/行高 font:30px/30px "微软雅黑"; text-transform text-decoration属性,用来给文本添加各种修饰。通过它可以为文本的上方,下方或者中间添加线条 letter-spacing用来设置字符之间的间距。 单位px word-spacing用来设置单词之间的间距。 单位px text-align 用于设置文本的对齐方式 -- 通过调整文本之间的空格大小来实现对齐的目的 可选值: left 默认值,文本靠左对齐 right,靠右对齐 center,居中 justify,两端齐 text-indent 单位px 或者 em;--em是字体大小 当给定正值时,会自动向右侧缩进指定的像素。 当给定的是负值时,会向左移动指定的像素,通过这种方式可以将一些不想显示的文字隐藏起来 一般使用em作为单位 一个盒子分为几个部分 - 内容区(content) - 内边距(padding) - 边框(border) - 外边框(margin) 见上段代码 border-width border-xxx-width border-color 与 width同理 border-style 通过border可以同时设置四个边框的样式,宽度,颜色;没有任何顺序要求 border一指定就指定四个边不能分别指定 border-xxx xxx可以是top right bottom left 可以单独设置四个边的样式,规则和border一样,只不过它只对一个边生效; 内边距(padding),指的是盒子的内容区与盒子边框之间的距离 一共有四个方向的内边距 padding-xxx xxx可以是top,right,bottom,left 内边距会影响盒子的可见框的大小,元素的背景会延伸到内边距。 盒子的大小由内容区,内边距和边框共同决定 盒子可见框的宽度 = border-left-width + padding-left + width + padding-right + border-reght-width 使用padding可以同时设置四个边框的样式,规则和border-width一致 ##### 外边距指的是当前盒子与其他盒子之间的距离,他不会影响可见框的大小,而是会影响到盒子的位置 盒子有四个方向的外边距:margin-xxx 单位为px, xxx 是 top,right,left,bottom 由于页面中的元素都是靠左靠上摆放的,所以注意当我们设置上和左外边距时,会导致盒子自身的位置放生改变。 margin还可以设置为auto,auto一般只设置给水平方向的margin。 如果只指定,左外边距或右外边距的margin为auto则会将外边距设置为最大值; 如果都设置成auto,则会将两侧的外边距设置成相同的值,就可以使元素自动在父元素中居中,所以我们经常将左右外边距设置成auto 外边距同样可以用简写属性margin,可以同时设置四个反向的外边距,规则和padding一样。 网页中垂直方向的相邻外边距会发生外边距的重叠 所谓的外边距重叠指兄弟元素之间的相邻外边距会取最大值而不是取和 如果父子元素的垂直外边距相邻了,则子元素的外边距会设置给父元素 如果想父子元素不重叠,可以给父元素设置一个padding-top 或者border-top元素,或者加一个内容 使用padding-top会导致可见框边长,可以从height将padding-top的长度抛去,就可以和原来高度相同 使用空的table标签可以隔离父子元素的外边距,组织外边距的重叠 实现在子元素前添加一个空表格(可以不用添加一个没用的结构) 每个类型都有特定的默认样式;所以我们要清除默认样式
内联元素不能设置width和height 内联元素可以设置水平方向的内边距,会影响布局 内联元素可以设置垂直方向的内边距,但是不会影响布局 支持水平方向边框;支持垂直方向边框,但垂直方向不影响布局 只支持水平方向外边距; 水平方向的相邻外边距不会重叠,而是求和 因为内联元素不支持width和height: 通过display样式可以修改元素的类型 可选值: inline:可以将一个元素作为内联元素显示 block:可以将一个元素设置为块元素显示 inline-block:将一个元素转换为行内块元素 可以使一个元素既有行内元素的特点又有块元素的特点, 既可以设置宽高,又不会独占一行 none:此元素不会被显示,并且元素不会在页面中继续占有位置 可选值: visible 默认值,元素默认会在页面显示 hidden 元素会隐藏不显示;但它的位置会依然保持 如果子元素的大小超过了父元素的内容区,则超过的大小会在父元素以外的位置显示 超出父元素的内容叫溢出内容,父元素默认是将溢出的内容,在父元素外边显示, 通过overflow可以设置父元素如何处理溢出内容: 可选值: visible,默认值,不会对溢出内容做处理,元素会在父元素外呈现 hidden,溢出的内容会被修剪,不会显示 scroll,会为父元素添加滚动条,通过拖动滚动条查看完整内容;无论内容是否溢出都会添加水平和垂直双滚动条。 auto, 会根据需求自动添加滚动条,不需要就不加 一个html页面就是一个文档, 文档流处在网页的最底层,他表示的是一个页面中的位置;我们所创建的元素默认都在文档流中 块元素: 1.块元素在文档流中会独占一行,块元素会自上向下排列(垂直排列) 2.块元素在文档流中默认宽度是父元素的100%。(auto) 3.块元素在文档流中的高度默认被内容撑开 内联元素: 1.内联元素在文档流中只占自身的大小,会默认自左向右排列, 如果一行中不足容纳所有的内联元素,则换到下一行,继续自左向右。 2.内联元素在文档流中的高度和宽度都默认被内容撑开 块元素在文档流中默认垂直排列,如果希望块元素在页面中 水平排列,可以使块元素脱离文档流 使用float来使元素浮动,从而脱离文档流 可选值: none,默认值,元素默认在文档流中排列 left,元素会立即脱离文档流,向页面左侧浮动 right,元素会立即脱离文档流,向页面右侧浮动 当为一个元素设置浮动以后(float属性是一个非none的值) - 元素会立即脱离文档流,元素脱离文档流以后,他下边的元素会立即向上移动 - 元素浮动后,会尽量向页面左上或者右上漂浮,直到遇到父元素的边框或者其他的浮动元素 - 浮动元素不会超过他上边的兄弟元素,最多最多一边齐 浮动的元素不会盖住文字,文字会自动环绕在浮动元素的周围,所以我们可以通过浮动来设置文字环绕图片的效果。 块元素脱离文档流以后,高度和宽度都被内容撑开。 开启span的浮动;内联元素脱离文档流以后会变成块元素 文档流中,父元素的高度默认是被子元素撑开的,也就是子元素多高,父元素就多高。 但是为子元素设置浮动以后,子元素会完全脱离文档流,此时将会导致子元素无法撑起父元素的高度,导致父元素的高度塌陷;由于父元素的高度塌陷了,则父元素下的所有元素都会向上移动,这样将会导致页面布局混乱。 根据W3C的标准,在页面中元素都有一个隐含的属性叫做Block Formatting Context 简称BFC(块级格式化环境),该属性可以设置打开或者关闭,默认是关闭的。 当开启元素的BFC以后,元素将会具有如下的特性: 1.父元素的外边距不会和子元素重叠 2.开启BFC的元素不会被浮动元素所覆盖 3.开启BFC的元素可以包含浮动的子元素 1.设置元素浮动 - 使用这种方式开启,虽然可以撑开父元素,但是会导致父元素的宽度丢失,而且使用这种方式 也会导致下边元素上移。 2.设置元素绝对定位 3.设置元素为inline-block -> display:inline-block - 会导致宽度丢失 以上方式都不推荐 但是在IE6及以下的浏览器不支持BFC,所以使用这种方式不能兼容IE6 在IE6中虽然没有BFC,但是具有另一个隐含的属性叫做Has Layout,该属性作用和BFC类似。 开启hasLayout的方式: 直接将元素的zoom设置为1即可; zoom表示放大的意思,后面跟着一个数值,写几就放大几倍;zoom:1;表示不放大元素; 但这种方式只支持IE6及以下,所以要写两种方式保证全部兼容; 在IE6中,如果为元素制定了一个宽度,则默认开启hasLayout 我们有时希望清除掉其他元素浮动对当前元素产生的影响,这时可以使用clear来完成功能 clear可以用来清除其他浮动元素对当前元素的影响 可选值: none,默认值,不清除浮动元 left,清除左侧浮动元素对当前元素的影响 right,清除右侧浮动元素对当前元素的影响 both,清除两侧浮动元素对当前元素的影响;清楚对他影响最大的那个元素的浮动 回到针对的元素不浮动的那个位置 可以直接在高度塌陷的父元素的最后,添加一个空白的div;由于这个div并没有浮动,所以他是可以撑开父元素的高度的,然后在对其进行清除浮动,这样可以通过空白的div来撑开父元素高度,基本没有副作用 使用这种方式虽然可以解决问题,但是会在页面中添加多余的结构。 可以通过after伪类向元素的最后添加一个空白的块元素,然后对其清除浮动; 这样做和添加一个div的原理一样,可以达到一个相同的效果,而且不会在页面中添加多余的div,目前最优方式。几乎没有副作用 ctrl+R 标尺操作 alt+滚轮 放大缩小 ctrl+1 恢复到100% ctrl+0 适应屏幕大小 选中框 -> F8 选中框信息 裁剪好的图片存储为web所用格式 $表示从1开始变,上句表示创建3个box$类的div 定位: relative:开启元素的相对定位 absolute:开启元素的绝对定位 static:默认值,元素没有开启定位 fixed:开启元素的固定定位(也是绝对定位的一种) 1.position:relative; 开启了元素的相对定位以后,而不设置偏移量时,元素不会发生任何变化 2.相对定位是相对于元素在文档流中原来的位置进行定位 3.相对定位的元素不会脱离文档流 4.相对定位会使元素提升一个层级 5.相对定位不会改变元素的性质,块还是块,内联还是内联 当开启了元素的定位(position属性值是一个非static的值)时,可以通过left right top bottom四个属性来设置元素的偏移量 通常偏移量只需要两个就可以对一个元素进行定位 position:absolute; 开启绝对定位 1.开启绝对定位,会使元素脱离文档流 2.开启绝对定位以后,如果不设置偏移量,则元素的位置不会发生变化 3.绝对定位是相对于离他最近的开启了定位的祖先元素进行定位的(一般情况,开启了子元素的绝对定位都会同时开启父元素的相对定位) 如果所有祖先元素都没有开启定位,则会相对于浏览器窗口开启定位 4.绝对定位会使元素提升一个层级 5.绝对定位会改变元素的性质,内联元素变成块元素,块元素的宽度和高度默认都被内容撑开 position:fixed; 固定定位也是一种绝对定位,大部分特点都和绝对定位一样 不同的是: 1.固定定位永远是相对于浏览器窗口进行定位 2.固定定位会固定在窗口的某个位置,不会随着滚动条滚动 IE6不支持固定定位 如果定位元素的层级是一样的,则下边的元素会盖住上边的 通过z-index属性可以用来设置元素的层级;可以为z-index指定一个正整数作为值,该值将会作为当前元素的层级,层级越高,越优先显示。 对于没有开启定位的元素不能使用z-index 父元素的层级再高也不会盖住子元素 它需要一个0-1之间的值 0表示完全透明 1完全不透明 0.5 表示半透明 opacity属性在IE8及以下的浏览器不支持 IE8及以下的浏览器需要使用如下属性代替 filter:alpha(opacity=透明度); 透明度:需要一个0-100之间的值。 使用back-ground-image设置背景图片 可以同时为一个元素指定背景颜色和背景图片,这样背景颜色将会作为背景图片的一个底色 一般情况下设置背景图片时都会同时指定一个背景颜色 继承性:无 可选值: repeat:默认值,背景图片会双方向重复(平铺) no-repeat:不重复,有多大显示多大 repeat-x:背景图片沿着水平方向重复 repeat-y: 垂直 背景图片默认是贴着元素的左上角显示 可选值: top right left bottom center 中的两个值指定一个背景图片的位置 如果只给出一个值,则第二个值默认是center 也可以直接指定两个偏移量:水平偏移量 垂直偏移量; 用来设置背景图片是否随着页面一起滚动 可选值: scroll:默认值,背景图片随着窗口滚动 fixed:背景图片会固定在某一位置,不随页面滚动。 当背景图片的background-attachment设置为fixed时,背景图片的定位永远相对于浏览器的窗口 不随窗口滚动的图片,我们一般都是设置给body,而不设置给其他元素 做完按钮功能以后,发现在第一次切换图片时,会发现图片有一个非常快的闪烁,用户体验不佳。 产生闪烁问题的原因: 背景图片是以外部资源的形式加载进网页的,浏览器每加载一个外部资源就需要单独的发送一次请求。但是我们外部资源并不是同时加载,浏览器会在资源被使用时才去加载资源。所以伪类hover和active的外部资源请求未被加载;hover和active被触发时才回加载。 为了解决该问题可以将三个图片整合为一个图片,这样三个图片同时加载,再通过background-position来切换要显示的图片的位置,这种技术叫做图片整合技术(CSS-Sprite)雪碧图 - 通过该属性可以同时设置所有背景相关的样式 - 没有顺序要求,也没有数量要求,不写的属性使用默认值 在html中使用table标签来创建一个表格;在table标签中使用tr来表示表格中的一行,有几行就有几个tr;在tr中使用td来创建单元格,有几个单元格就有几个td td下: colspan="单元格个数" 横向合并单元格 rowspan="单元格个数" 纵向合并单元格 table属于块元素 table和td边框之间默认有一个距离,通过border-spacing属性可以设置这个距离 设置border-collapse,则border-spacing自动失效 默认样式:居中,加粗 有一些情况下表格是非常长的,这时就需要将表格分为三个部分:表头,表格的主体,表格底部 在HTML中为我们提供了三个标签: thead 表头 永远显示在头部 tbody 表格主题 永远显示到表格的中间 tfoot 表格底部 永远显示在表格的底部 这三个标签的作用,就是来区分表格的不同的部分,他们都是table的子标签,都需要直接写道table中,tr需要写在这些标签之中 如果表格中没有写tbody,浏览器会自动在表格中添加tbody,并且将所有的tr都放到tbody中 tr是tbody中的直接子元素,不是table的直接子元素(祖先关系) 表单的作用就是用来将用户的信息提交给服务器的 比如:百度的搜索框 注册 登录这些操作都需要填写表单 使用form标签创建表单;form标签中必须指定一个action属性,该属性指向的是一个服务器的地址,当我们提交表单时将会提交到action属性对应的地址 使用form创建的仅仅是一个空白的表单,我们还需要向form中添加不同的表单项:only-child 选择器 ----用法同上,孩子也可用*表示
:last-child 选择器 -----selects all last-child elements.
.
:nth-child(8) 选择器 ----selects every element that is the 8th child of another element.
span:first-of-type 选择器 ---selects the first in any element
div:nth-of-type(2) 选择器 --- selects the second instance of a div.
:nth-of-type(An+B) 选择器 --从第B个开始每间隔n个,包括B
:only-of-type 选择器
:last-of-type 选择器
:empty 选择器
否定伪类
:not(X)
伪类链接
犹豫设计用户隐私问题,所以使用visited伪类只能设置字体的颜色
:hover 和 active 也可以为其他元素设置 (IE6不支持对超链接以外的元素设置:hover和:active
input 创建文本输入框
伪元素
首字母
首行
元素前面的位置(不能选中)
title属性,这个属性可以给任何标签指定
属性选择器
元素的继承
选择器的优先级
.p1{
color:yellow;
background-color:greenyellow !important; //只对这一行有效
}
伪类的顺序
所以写这四个伪类一定要按这个顺序
文本标签样式
< em> 和 < strong>
i标签 斜体
b标签 加粗
small标签 标签内容会比他的父元素中的文字要小一些
cite标签
q标签表示一个短的引用(行内引用)内联元素
学而时习之不亦说乎
blockquote 标签 块元素
p里面不可以有块元素
呵呵
sup 和 sub 标签
ins 和 del
pre标签
code标签
一般结合使用pre和code来表示一段代码
无序列表和有序列表
定义列表
CSS基础_长度单位
.box1{
font-size:50px;
width:1em;
height:50%;
background-color:yellow;
}
颜色单位
字体
font-size
font-family 文字的字体
字体分类
font
font:italic small-caps bold 60px "微软雅黑";
行高
font也可以指定行高
文本样式
文本修饰
字母间距和单词间距
文本的对齐方式
首行缩进
盒子模型(框模型)
设置边框宽度与颜色
设置边框样式
简写样式 border
border:10px red solid;
内边距
padding-top:100px;
padding:100px;
padding:100px 200px 300px;
外边距
垂直外边距的重叠
通过css实现 (最优方案)
.box:before{
content:"";
/*display:table可以将一个元素设置为表格显示,空表格不会占用任何空间
display:table;
}
默认样式
*{
margin:0;
padding:0;
}
内联元素盒子模型
将一个内联元素变成块元素
visibility -- 设置元素显示隐藏的状态
overflow
文档流
元素在文档流中的特点
浮动
高度塌陷
避免高度塌陷
开启元素的BFC
4.将元素的overflow设置为一个非visible的值 -- 设成auto和hidden值
zoom:1;
overflow:hidden;
解决高度塌陷的最终方案
解决高度塌陷方案二:
.clear{
clear:both;
}
通过after伪类实现(最好)
.clearfix:after{
/*添加一个内容*/
content:"";
/*转换为一个块元素*/ /*display:table也可以实现*/
display:block;
/*清除两侧的浮动*/
clear:both;
}
/*在IE6中不支持after伪类,
所以在IE6中还需要使用hasLayout来处理*/
.clearfix{
zoom:1;
}
即解决高度塌陷有解决外边距重叠
.clearfix:before,
.clearfix:after{
content:"";
display:table;
clear:both;
}
.clearfix{
zoom:1;
}
PS基本操作
相对定位
div.box$*3
- 定位指的就是将指定的元素摆放到页面的任意位置
- 通过position设置定位
position 可选值:
position:relative;
/*相对于原来的位置向右移动100px*/
left:100px;
绝对定位
固定定位
元素的层级
设置透明背景 opacity
这种方式支持IE6,但是这种效果在IE Tester中无法测试
背景
- 如果背景图片大于元素,默认会显示图片的左上角
- 如果背景图片和元素一样大,则会将背景图片全部显示
- 如果背景图片小于元素大小,则会默认将背景图片平铺以充满元素
/*相对路径,同一个文件夹下*/
background-image:url(img/1.jpg);
引入外部样式表
background-repeat 属性
background-position 背景图片定位
background-attachment 属性
按钮练习
background
background: #bfa url(img/3.png) center center no-repeat fixed;
表格
/*用css设置其他属性*/
D3
D3
表格的样式
border-spacing属性
table{
width:300px;
margin:0 auto;
border:1px solid black;
border-spaceing:0px;
}
border-collapse可以用来设置表格的边框合并
border-collapse:collapse;
th 标签标识 表头
/*实现隔行变色*/
tr:nth-child(odd){
background-color:#bfa;
}
长表格
日期
收入
表单