超链接

	<a target="页面打开位置" href="链接地址">内容</a>
	target:_blank 重新打开一个页面
	target:_self 当前页面打开

1.页面地址:
基础功能,用于进入该链接的页面;
2.锚点:
需要给标签名定义id,链接地址为#id名,即可在当前页面进行跳转;
3.功能性链接:
打电话打电话
发邮件


文本元素

	- h1-h6:对应一级标题到六级标题,字体大小默认情况下从大到小;
	- p:段落;
	- q:小段引用,一般不超过一行;
	- blockqoute:大段引用;
	- abbr:引用,一般用于英文缩写的全称解释;
	- cite:引用参考文献;
	- b:加粗突出显示的文本。因加粗一般无法量化不利于排版,一般不用;
	- strong:重要的文本;
	- i:应区别对待的文本,斜体;
	- em:强调的文本;

无语义元素

	- div:分区块,便于排版;
	- span:行内元素(不换行),仅用于给一小段文本添加样式;
	- br:空元素,用于在页面中换行,因换行后间距无法量化不利于排版,一般不用;
	- hr:空元素,用于在页面中加入分割符号,一般不用;
	- pre:预格式化元素,页面显示代码格式。

实体字符

	书写格式:&实体名称;或&#实体编号;
	背景:在浏览器中,有些字符会被特殊处理,如<,>会被浏览器认为是标记符号,不会直接显示到页面;空白字符会被浏览器折叠成1个空格。
		空格		&nbsp;		&#160;
	<	小于符号	&lt;		&#60;
	>   大于符号 &gt;       &#62;
	&   并且符号 &&amp;     &#38;
    ©	版权符号 &copy;		&#169;

常见的CSS属性

color:red 	颜色
text-align:center 	对齐方式
font-size:28px 字	体大小
font-weight:bold 	文字粗细
background-color:red	 背景颜色

CSS选择器

基础选择器

  1. 元素

  2. ID(锚点可以使用,一般不推荐使用,预留给JS用)

  3. 通配符选择器

     格式:*+声明块
     例子:*{color:red;}
    
  4. 并集选择器

     h1{color:red;}
     h2{color:red;}
     h3{color:red;}
     格式:元素或类或ID+","+元素或类或ID+声明块
     例子:h1,h2,h3{color:red;}
      p,.container,#box{background-color:deeppink;}
    

层次选择器

  1. 子集选择器

     格式:父级元素名称+">"+子级元素名称+声明块
     例子:div>p{color:red;}
    
  2. 后代选择器

     格式:祖先元素名称+"空格"+后代元素名称+声明块
     例子:div p{color:red;}
    
  3. 兄弟选择器

     格式:兄弟元素A+"+"+兄弟元素B+声明块
     例子:div+p{color:red;}
    
     注:只能选中元素A后面的第一个元素
    
  4. 通用选择器

     格式:兄弟元素A+"~"+兄弟元素B+声明块
     例子:div~p{color:red;}
    
     注:表示可以选择元素A后面任意位置的同级元素
    

伪类选择器

  • 动态伪类选择器
  1. 未访问

     格式:a +":"+"link"+声明块
     例子:a:link{color:black;}
    
  2. 已访问(访问后)

     格式:a +":"+"visited"+声明块
     例子:a:visited{color:green;}
    
  3. 悬停(鼠标停留在链接上时的样式)

     格式:a +":"+"hover"+声明块
     例子:a:hover{color:deeppink;}
    
  4. 点击时

     格式:a +":"+"active"+声明块
     例子:a:active{color:deeppink;}
    
  5. 焦点框(多用于输入框肯链接)

     格式:a +":"+"focus"+声明块
     a:focus{color:五光十色;}
    
     以上伪类书写顺序
     A方案:
     link,visited,focus,hover,active
     B方案:
     visited,link,focus,hover,active
     注:IE7以前是不支持:focus
     注:IE6以前是不支持:hover,active
    
  • 结构伪类选择器

      1.格式:元素名称+":nth-child(n)"+{声明块}
      例子: h1:nth-child(5){color:gray;}
      表示选中第5个h1元素,颜色为灰色
      表示选中第5个元素,并且满足是h1的情况,才会应用样式
    
      注:(n)中的n表示元素的位置
      :nth-child(n) 选择器匹配属于其父元素的第 N 个子元素,不论元素的类型。
    
    
      2.格式:元素名称+":nth-of-type(n)"+{声明块}
      例子: h1:nth-of-type(5){color:gray;}
    
      表示选中类别为h1的第5个h1
      表示先筛选出所有的h1标签,然后在结果里选中第5个h1
      :nth-of-type(n) 选择器匹配属于父元素的特定类型的第 N 个子元素的每个元素。
    
    
      3.格式:元素名称+":first-child"+{声明块}
      例子: h1:fist-child{color:gray;}
      表示选中第1个h1元素
    
      4.格式:元素名称+":last-child"+{声明块}
      例子: h1:last-child{color:gray;}
      表示选中最后1个h1元素
    
    
      5.格式:元素名称+":nth-child(odd)"+{声明块}
      例子: h1:nth-child(odd){color:gray;}
      表示选中奇数项
    
      6.格式:元素名称+":nth-child(even)"+{声明块}
      例子: h1:nth-child(even){color:gray;}
      表示选中偶数项
    
  • 否定伪类选择器

      格式:元素名称+":not(相应的选择条件)"+{声明块}
      例子: h1:not(:nth-child(3)){color:gray;}
      表示除第3个h1元素,都应用样式
    

伪元素选择器

	1.格式:元素名称+":"+"before"+{content:"加的内容"}

	例子:h1:before{
	content: "F51";
	}
	表示在元素前面加内容

	2.格式:元素名称+":"+"after"+{content:"加的内容"}

	例子:h1:before{
	content: "F51";
	}
	表示在元素后面加内容

	3.格式:元素名称+":"+"first-line"+{声明块}
	例子:p:first-line{color:green}
	表示选中第一行
	
	4.格式:元素名称+":"+"first-letter"+{声明块}
	例子:p:first-letter{color:red}
	表示选中第一个字母

	5.格式:元素名称+"::"+"selection"+{声明块}
	例子:p::selection{background-color:green;color:chocolate}
	表示设置选中内容的背景色和字体色

层叠

层叠机制

当发生声明冲突(同一个样式的不同值应用到同一个标签上)时浏览器会触发层叠机制。

层叠过程

  1. 比较优先级

     重要性:属性值+!important;
     来源:用户>开发者>浏览器
    
  2. 比较特殊性(特指值或特指度)
    每个声明都有一个特殊性(specificity)
    选择器规则适用范围越大,特殊性越小。
    行内样式>ID选择器>类选择器>元素选择器>通配符选择器

     a:声明是行内样式则为1,否则为0;
     b:规则中ID选择器的个数;
     c:规则中类选择器,伪类选择器,属性选择器个数;
     d:规则中元素选择器,伪元素选择器的个数
     通配符选择器的特殊性为0。
    
     a, b, c, d依次比较只要对应位相同进入下一位比较,否则停止比较,该位上数值大的胜出。
    
     选择器分组时(并集选择器)要分开计算
     h1,h2,h3{color:red;}
     h1{color:blue;} 胜出
    
  3. 比较源次序

     最后出现的声明胜出,其他的全部淘汰。
     该规则的实际应用:
     CSS Reset代码前置 解决兼容性问题;
     a元素的伪类书写顺序。
    

继承(inherit)

	是指子元素会自动拥有父元素的某些属性

可被继承的属性:color,font-size,font-weight,text-align等
基本上文本类的样式都可以被继承。
不可被继承的属性:background-color。
继承的场景:

	该属性是可继承属性;
	该属性在样式表中没有声明。

强制继承

	也叫显示继承,是指将css属性值设置为inherit。
	为了继承某些不可继承属性或已声明属性。

盒子模型

	每个元素都在页面中形成一个矩形区域,CSS称该区域为盒子(box)
  1. 盒模型 单个盒子组成
  2. 视觉格式化模型 多个盒子的排列(相互作用,影响)
  3. 布局 实际应用

margin

	外边框,与其他盒子之间的距离。
	指盒模型可见部分之外的透明区域空间,让我们可以控制页面元素之间的距离,帮助将元素定位到页面上的一个特定位置上,或者给元素提供呼吸的空间,让他与其他元素保持一个安全的距离。

padding

	内边距,边框和内容之间的可选距离。
	他会应用到内容和内边距组成的区域。因此,内边距常被用于在内容周围创建一个隔离带,这样内容就会与背景混在一起。

content

	内容的高度和宽度。

overflow

	超出内容的展示方式。

1.overflow:hidden 表示超出内容隐藏;
2.overflow:auto 表示哪个方向的内容超出,该方向出现滚动条;
3.overflow:visible 默认值,溢出部分显示;
4.overflow:scroll 表示垂直和水平方向上都出现滚动条,但只有超出的方向滚动条可用。

	全屏显示时页面紧张出现横向滚动条。

盒模型padding

	类似于箱子和内部物品之间的填充物。
	padding-top:上内边框,不可继承,默认值为0px,其他取值单位em、%。

padding:取1,2,3,4,个值分别对应不同的意义。
上,右,下,左对应top,right,bottom,left方向。

  • 取1个值时,4个方向相同;
  • 取2个值时,上下相同对应第一个值,右左相同对应第二个值;
  • 取3个值时,第一个值对应上,第三个值对应下,第二个值对应相同的右左;
  • 取4个值时,分别对应上右下左。

border-radius

  • 取1个值时,4个角的弧度半径;
  • 取2个值时,第一个是左上和右下的弧度半径;第二个是右上和左下的弧度半径。
    设置某一个角的圆角:
    border-bottom-right-radius:30px(对应x轴半径) 20px(对应y轴半径);
    border的默认颜色是当前标签的字体颜色。
    取transparent值 表示透明色。

盒子模型补充

子盒子

边框盒(border-box)

	背景色默认渲染区域,可通过设置background-clip: 调节。

填充盒(padding-box)

	严格意义上overflow溢出是指溢出填充盒。

内容盒(content-box)

	默认情况下width和height属性是指内容盒的宽度和高度。

盒子尺寸的计算

	box-sizing:设置元素的尺寸范围。
	content-box(默认值)
	border-box表示元素的width和height设置区域是边框盒。
	可以解决页面横向滚动条的问题。

注:width:100%的基础上加margin,设置box-sizing:border-box也无效。
outline:外边框,用法和border完全一致。不占尺寸显示,可辅助布局。

视觉格式化模型(visual formatting model)

	css的一种机制,规定了页面中多个盒子如何相互影响,如何布局。

视口(viewport)

	可视窗口,通常指浏览器的可视区域。视口的尺寸仅受到浏览器可视窗口大小的影响,和内容无关。
	当内容超出视口时,浏览器会出现滚动条。

包含块(contianing block)

	每个元素都有一个包含块,他是指元素在页面中的摆放区域,通常情况下元素的包含块是他父元素的内容盒。
	html根元素的包含块是:初始化包含块(initial containing block)

定位体系

视觉格式化模型的基础,一共有3种:

  1. 常规流 (normal flow) 又叫文档流或常规文档流
  2. 浮动(float)默认值为none
  3. 绝对定位 (absolute positioned)默认值为static
    每一个元素都属于其中一个定位体系。
    先判断绝对定位,如果position属性值为absolute或fixed则为绝对定位,否则进入浮动判断,如果float值为left或right,则为浮动定位,否则为常规流。

盒模型和定位体系

盒模型 = 盒子尺寸 定位体系 = 盒子位置
定位体系会影响盒模型。(width和height值为auto时)

  1. margin px, em, %, auto(可为负值)
  2. border px, em
  3. padding px, em, %
  4. width px, em, %, auto
  5. height px, em, %, auto

px和em是固定单位,固定值或者绝对值;

	1em是指当前标签font-size的一倍。
	注:当前标签没有font-size时注意继承关系。

%和auto是相对单位,相对值。

	常规流中width取值为%,是指相对父级元素(包含块)width的百分比。
	margin,padding,width的百分比是包含块宽度的百分比。

三角形的绘制方法

将一个块级元素的border设置合适宽度,width和height设置为0.只设置一边的颜色,另外三边颜色设置为透明即可。通过调整每个边的border值调整三角形形状。
将width或者height设置合适的值可绘制梯形。

块级元素水平方向居中方法

该元素:margin-left:-50%;
包含块:padding-left:50%;

盒模型padding

	类似于箱子和内部物品之间的填充物。
	padding-top:上内边框,不可继承,默认值为0px,其他取值单位em、%。

padding:取1,2,3,4,个值分别对应不同的意义。
上,右,下,左对应top,right,bottom,left方向。

  • 取1个值时,4个方向相同;
  • 取2个值时,上下相同对应第一个值,右左相同对应第二个值;
  • 取3个值时,第一个值对应上,第三个值对应下,第二个值对应相同的右左;
  • 取4个值时,分别对应上右下左。

border-radius

  • 取1个值时,4个角的弧度半径;
  • 取2个值时,第一个是左上和右下的弧度半径;第二个是右上和左下的弧度半径。
    设置某一个角的圆角:
    border-bottom-right-radius:30px(对应x轴半径) 20px(对应y轴半径);
    border的默认颜色是当前标签的字体颜色。
    取transparent值 表示透明色。

盒子模型补充

子盒子

边框盒(border-box)

	背景色默认渲染区域,可通过设置background-clip: 调节。

填充盒(padding-box)

	严格意义上overflow溢出是指溢出填充盒。

内容盒(content-box)

	默认情况下width和height属性是指内容盒的宽度和高度。

盒子尺寸的计算

	box-sizing:设置元素的尺寸范围。
	content-box(默认值)
	border-box表示元素的width和height设置区域是边框盒。
	可以解决页面横向滚动条的问题。

注:width:100%的基础上加margin,设置box-sizing:border-box也无效。
outline:外边框,用法和border完全一致。不占尺寸显示,可辅助布局。

视觉格式化模型(visual formatting model)

	css的一种机制,规定了页面中多个盒子如何相互影响,如何布局。

视口(viewport)

	可视窗口,通常指浏览器的可视区域。视口的尺寸仅受到浏览器可视窗口大小的影响,和内容无关。
	当内容超出视口时,浏览器会出现滚动条。

包含块(contianing block)

	每个元素都有一个包含块,他是指元素在页面中的摆放区域,通常情况下元素的包含块是他父元素的内容盒。
	html根元素的包含块是:初始化包含块(initial containing block)

定位体系

视觉格式化模型的基础,一共有3种:

  1. 常规流 (normal flow) 又叫文档流或常规文档流
  2. 浮动(float)默认值为none
  3. 绝对定位 (absolute positioned)默认值为static
    每一个元素都属于其中一个定位体系。
    先判断绝对定位,如果position属性值为absolute或fixed则为绝对定位,否则进入浮动判断,如果float值为left或right,则为浮动定位,否则为常规流。

盒模型和定位体系

盒模型 = 盒子尺寸 定位体系 = 盒子位置
定位体系会影响盒模型。(width和height值为auto时)

  1. margin px, em, %, auto(可为负值)
  2. border px, em
  3. padding px, em, %
  4. width px, em, %, auto
  5. height px, em, %, auto

px和em是固定单位,固定值或者绝对值;

	1em是指当前标签font-size的一倍。
	注:当前标签没有font-size时注意继承关系。

%和auto是相对单位,相对值。

	常规流中width取值为%,是指相对父级元素(包含块)width的百分比。
	margin,padding,width的百分比是包含块宽度的百分比。

三角形的绘制方法

将一个块级元素的border设置合适宽度,width和height设置为0.只设置一边的颜色,另外三边颜色设置为透明即可。通过调整每个边的border值调整三角形形状。
将width或者height设置合适的值可绘制梯形。

块级元素水平方向居中方法

该元素:margin-left:-50%;
包含块:padding-left:50%;

盒模型padding

	类似于箱子和内部物品之间的填充物。
	padding-top:上内边框,不可继承,默认值为0px,其他取值单位em、%。

padding:取1,2,3,4,个值分别对应不同的意义。
上,右,下,左对应top,right,bottom,left方向。

  • 取1个值时,4个方向相同;
  • 取2个值时,上下相同对应第一个值,右左相同对应第二个值;
  • 取3个值时,第一个值对应上,第三个值对应下,第二个值对应相同的右左;
  • 取4个值时,分别对应上右下左。

border-radius

  • 取1个值时,4个角的弧度半径;
  • 取2个值时,第一个是左上和右下的弧度半径;第二个是右上和左下的弧度半径。
    设置某一个角的圆角:
    border-bottom-right-radius:30px(对应x轴半径) 20px(对应y轴半径);
    border的默认颜色是当前标签的字体颜色。
    取transparent值 表示透明色。

盒子模型补充

子盒子

边框盒(border-box)

	背景色默认渲染区域,可通过设置background-clip: 调节。

填充盒(padding-box)

	严格意义上overflow溢出是指溢出填充盒。

内容盒(content-box)

	默认情况下width和height属性是指内容盒的宽度和高度。

盒子尺寸的计算

	box-sizing:设置元素的尺寸范围。
	content-box(默认值)
	border-box表示元素的width和height设置区域是边框盒。
	可以解决页面横向滚动条的问题。

注:width:100%的基础上加margin,设置box-sizing:border-box也无效。
outline:外边框,用法和border完全一致。不占尺寸显示,可辅助布局。

视觉格式化模型(visual formatting model)

	css的一种机制,规定了页面中多个盒子如何相互影响,如何布局。

视口(viewport)

	可视窗口,通常指浏览器的可视区域。视口的尺寸仅受到浏览器可视窗口大小的影响,和内容无关。
	当内容超出视口时,浏览器会出现滚动条。

包含块(contianing block)

	每个元素都有一个包含块,他是指元素在页面中的摆放区域,通常情况下元素的包含块是他父元素的内容盒。
	html根元素的包含块是:初始化包含块(initial containing block)

定位体系

视觉格式化模型的基础,一共有3种:

  1. 常规流 (normal flow) 又叫文档流或常规文档流
  2. 浮动(float)默认值为none
  3. 绝对定位 (absolute positioned)默认值为static
    每一个元素都属于其中一个定位体系。
    先判断绝对定位,如果position属性值为absolute或fixed则为绝对定位,否则进入浮动判断,如果float值为left或right,则为浮动定位,否则为常规流。

盒模型和定位体系

盒模型 = 盒子尺寸 定位体系 = 盒子位置
定位体系会影响盒模型。(width和height值为auto时)

  1. margin px, em, %, auto(可为负值)
  2. border px, em
  3. padding px, em, %
  4. width px, em, %, auto
  5. height px, em, %, auto

px和em是固定单位,固定值或者绝对值;

	1em是指当前标签font-size的一倍。
	注:当前标签没有font-size时注意继承关系。

%和auto是相对单位,相对值。

	常规流中width取值为%,是指相对父级元素(包含块)width的百分比。
	margin,padding,width的百分比是包含块宽度的百分比。

三角形的绘制方法

将一个块级元素的border设置合适宽度,width和height设置为0.只设置一边的颜色,另外三边颜色设置为透明即可。通过调整每个边的border值调整三角形形状。
将width或者height设置合适的值可绘制梯形。

块级元素水平方向居中方法

该元素:margin-left:-50%;
包含块:padding-left:50%;

盒模型padding

	类似于箱子和内部物品之间的填充物。
	padding-top:上内边框,不可继承,默认值为0px,其他取值单位em、%。

padding:取1,2,3,4,个值分别对应不同的意义。
上,右,下,左对应top,right,bottom,left方向。

  • 取1个值时,4个方向相同;
  • 取2个值时,上下相同对应第一个值,右左相同对应第二个值;
  • 取3个值时,第一个值对应上,第三个值对应下,第二个值对应相同的右左;
  • 取4个值时,分别对应上右下左。

border-radius

  • 取1个值时,4个角的弧度半径;
  • 取2个值时,第一个是左上和右下的弧度半径;第二个是右上和左下的弧度半径。
    设置某一个角的圆角:
    border-bottom-right-radius:30px(对应x轴半径) 20px(对应y轴半径);
    border的默认颜色是当前标签的字体颜色。
    取transparent值 表示透明色。

盒子模型补充

子盒子

边框盒(border-box)

	背景色默认渲染区域,可通过设置background-clip: 调节。

填充盒(padding-box)

	严格意义上overflow溢出是指溢出填充盒。

内容盒(content-box)

	默认情况下width和height属性是指内容盒的宽度和高度。

盒子尺寸的计算

	box-sizing:设置元素的尺寸范围。
	content-box(默认值)
	border-box表示元素的width和height设置区域是边框盒。
	可以解决页面横向滚动条的问题。

注:width:100%的基础上加margin,设置box-sizing:border-box也无效。
outline:外边框,用法和border完全一致。不占尺寸显示,可辅助布局。

视觉格式化模型(visual formatting model)

	css的一种机制,规定了页面中多个盒子如何相互影响,如何布局。

视口(viewport)

	可视窗口,通常指浏览器的可视区域。视口的尺寸仅受到浏览器可视窗口大小的影响,和内容无关。
	当内容超出视口时,浏览器会出现滚动条。

包含块(contianing block)

	每个元素都有一个包含块,他是指元素在页面中的摆放区域,通常情况下元素的包含块是他父元素的内容盒。
	html根元素的包含块是:初始化包含块(initial containing block)

定位体系

视觉格式化模型的基础,一共有3种:

  1. 常规流 (normal flow) 又叫文档流或常规文档流
  2. 浮动(float)默认值为none
  3. 绝对定位 (absolute positioned)默认值为static
    每一个元素都属于其中一个定位体系。
    先判断绝对定位,如果position属性值为absolute或fixed则为绝对定位,否则进入浮动判断,如果float值为left或right,则为浮动定位,否则为常规流。

盒模型和定位体系

盒模型 = 盒子尺寸 定位体系 = 盒子位置
定位体系会影响盒模型。(width和height值为auto时)

  1. margin px, em, %, auto(可为负值)
  2. border px, em
  3. padding px, em, %
  4. width px, em, %, auto
  5. height px, em, %, auto

px和em是固定单位,固定值或者绝对值;

	1em是指当前标签font-size的一倍。
	注:当前标签没有font-size时注意继承关系。

%和auto是相对单位,相对值。

	常规流中width取值为%,是指相对父级元素(包含块)width的百分比。
	margin,padding,width的百分比是包含块宽度的百分比。

三角形的绘制方法

将一个块级元素的border设置合适宽度,width和height设置为0.只设置一边的颜色,另外三边颜色设置为透明即可。通过调整每个边的border值调整三角形形状。
将width或者height设置合适的值可绘制梯形。

块级元素水平方向居中方法

该元素:margin-left:-50%;
包含块:padding-left:50%;

块盒在常规流下的位置

	盒子在包含块的content垂直方向上依次摆放;
	依次摆放:按照HTML元素的书写顺序从上到下摆放;
	盒子在包含块中的尺寸是整个盒子的尺寸。

垂直方向上

若两个盒子外边距相邻(margin),则进行合并(折叠)。水平方向上不会。

	外边距相邻:两个元素的外边距之间没有padding,border,content。

兄弟元素合并:margin都为正值取最大,都为负值取最小,一正一负相加。

快盒常规流盒模型的auto值

水平方向

常规流盒子水平方向上的尺寸,必须等于包含块的尺寸。如果该盒子的width+margin小于包含块的width,不足部分有该元素的margin补齐。

	margin-left:auto && margin-right:auto 居中
	margin-left:定值 && margin-right:auto  右边补齐
	margin-left:定值 && margin-right:定值 仍不足,同margin-right:auto 的情况。

想要一个块级元素居中的方法:
给固定宽度,左右margin值设置为auto。

垂直方向

margin-top || margin-bottom:auto = 0。
height:auto = 适应内容的高度。

浮动

当元素的float属性取值为left和right时,元素属于浮动定位。
float:不可继承;
取值:none(默认取值)= 不浮动;
left = 左浮动;
right = 右浮动;
浮动时: margin:auto = 0;
width:auto = 适应内容宽度;
height:auto = 适应内容高度。

浮动规则

  1. 左浮动的盒子向左、向上排列;
  2. 右浮动的盒子向右、向上排列;
  3. 浮动盒子的顶边不得高于上一个盒子的顶边;
  4. 若剩余的空间无法放下浮动的盒子,则该盒子向下移动,知道具备足够的空间容纳盒子,然后再向左或向右移动。

当常规流遇上浮动
常规流盒子和浮动盒子混合摆放;
浮动盒子在摆放时避开常规流盒子;
常规流盒子在摆放时无视浮动盒子。

posted on 2018-06-24 22:49  CodingFiend  阅读(246)  评论(0编辑  收藏  举报