浏览器 内核css
IE tridenthtml
Firefox Geckochrome
Google chrome Webkit/blink(2014年上市)浏览器
Safari Webkit异步
Opera prestoide
1)行间样式函数
2)页面css布局
3)外部css测试
1)同步的:不一样时执行,与生活中的同步相反字体
2)异步的:同时执行,与生活中的异步相反
如<div class=”demo demo1 demo2”></div>
!important > 行间样式 > id > class | 属性选择器 | 伪类选择器 > 标签选择器 | 伪元素选择器 > 通配符选择器
!important 无穷大
行间样式 1000
Id 100
class | 属性选择器 | 伪类选择器 10
标签选择器 | 伪元素选择器 1
通配符选择器 0
1)父子选择器/派生选择器 所用的选择器之间必须成上下一代的关系,好比父子,爷孙等等 div span em{}
2)直接子元素选择器 后一个选择器必须是前一个选择器的直接子元素,比如真正的父子关系 div > em{}
3)浏览器遍历父子选择器/派生选择器的顺序是自右向左的
4)并列选择器 用多个限制条件选中一个元素,这多个限制条件必须是一个元素上面的 div.demo{} div和.demo中间不能有空格
5)并列选择器当中若是要用标签选择器和class选择器或id选择器并列时,标签选择器必须放在最前面
6)分组选择器 每一个元素之间用逗号隔开 div,span,em{} 为了解决代码冗余
7)伪类选择器 选择器:hover{} 等
1) 颜色名,如red,green,blue
2) 颜色代码,十六进制颜色代码(从00---ff)只有当三种的两位数都重复时才能够简化,如:#000000 --> #000 #00ff44 --> #0f4
3) 颜色函数,rgb(0-255,0-255,0-255)
1) px 一个像素只能表明一个颜色点,像素是一种相对单位
2) em 1em = 1 * font-size 它是一个相对单位,相对font-size来讲
3) 文字的行高是1.2倍行高,就是文字的行高 = 1.2em
1) 图片img在设置宽高时,只设置其中的一个,另外一个就会自动拉伸
2) 块级元素(block),行级元素(Inline),行级块元素(inline-block)
元素 |
行级元素(内联元素) display:inline |
块级元素 display:block |
行级块元素 display:inline-block |
特色 |
内容决定元素所占位置 |
独占一行 |
内容决定大小 |
不能够经过css改变宽高 |
能够经过css改变宽高 |
能够改宽高 |
|
举例 |
Span strong em a del 伪元素 |
Div p ul li ol form address |
img |
3) 凡是带有Inline的元素(如inline,inline-block)都有文字特性,这也是当把四张图片并排放在一块儿时,中间会有间距的缘由;要想去掉这一间距,能够把每一个img标签之间的空格去掉(如:<img src="demo.jpg" alt=""><img src="demo.jpg" alt=""><img src="demo.jpg" alt="">);
在测试时,可使用margi-left设置负值来调,可是当把项目写完后,在上线前记得去掉margi-left,由于上线以后,代码会被压缩,代码之间的空格等会被去掉,若是设置了margin-left为负值,图片就会被挤压
4) 在企业开发中,能够先写css,再写html(先编写功能,再选配功能)
5) 在企业开发中,能够先对一些标签进行初始化,去掉系统对标签的样式,如能够写一个css文档,用标签选择器把ul li 前的小黑点去掉,把a标签系统的蓝色变成黑色,把em标签的斜体样式去掉(font-style:normal);而后把这个css引入html文档
6) 一个html文档中能够引入多个css文档,Js文档
7) 在初始化全部标签时(好比让margin:0;padding:0),建议用通配符选择器(*),由于通配符选择器的权重值为0,不会对后续的选择器形成影响
1) 图解盒子模型
2) 内边距(padding)和外边距(margin)margin/padding:上,右,下,左
3) 计算一个网页中的可视化盒子的真实高度和真实宽度时,不能把外边距(margin)算进去,由于外边距不是可视化的,给元素设置margin和padding值是%,它是相对于其父元素的宽度
4) body元素的默认的margin值是8像素
1)绝对定位(position:absolute)
① 概念:脱离原来的位置进行定位;当一个元素被设置了绝对定位时,它会进入其余层而且该元素的原来位置会被释放掉,位于该元素下面的元素就会上去占据该元素原来的位置(层模型)
② 相对于最近的有定位的父级进行定位,若是没有,那么相对于文档进行定位
2)相对定位(position:relative)
① 概念:保留原来位置进行定位;当一个元素被设置了相对定位时,它会进入其余层可是该元素依然会占据原来的位置,不会将其释放(层模型)
② 相对于它原来的位置进行定位
③ 相对定位最好不要给top和bottom设置百分值,由于浏览器的支持性有问题
3)通常在企业开发时,将相对定位设为参照物,用绝对定位进行定位
4)设置定位值时,通常是由它的上下左右的边线来讲的
5)z-index属性只在position属性上有效
6)固定定位(position:fixed)
1)在文档正中间进行居中的代码
要设置元素的选择器{
Width:元素的宽度;
Height:元素的高度;
position: absolute;
top:50%;
left:50%;
margin-left:-(元素的宽度/2);
Margin-top:-(元素的高度/2);
}
2)在可视区域正中间进行居中的代码
要设置元素的选择器{
Width:元素的宽度;
Height:元素的高度;
position: fixed;
top:50%;
left:50%;
margin-left:-(元素的宽度/2);
Margin-top:-(元素的高度/2);
}
3)图解让元素居于正中间的步骤(以居中五环为例)
① position:定位(absolute/fixed);top:50%;left:50%;
② margin-left:-(元素宽度/2);margin-top:-(元素高度/2);
1) margin塌陷:对于父子嵌套的元素,垂直方向的margin二者会粘合在一块儿,二者之中取最大的那个margin,做用于两个元素
解决方法:① 给父元素的顶部设置一个边框(不能使用)
② BFC(块级格式化上下文)能够改变盒子的语法规则
如何触发一个盒子的bfc:(给父级设)
① position:absolute;
② display:inline-block;
③ float:left/right;
④ overflow:hidden;
2) margin合并:对于兄弟元素来讲,垂直方向上的margin值是合并的,二者之间取最大的margin值,二者相同取其中的一个
解决方法:BFC (给两个元素设置一个父级,在父级的css里面写上触发bfc方法中的其中一种,而后把两个兄弟元素(或其中一个元素)放在父级里面,这样他们垂直方向上的margin值就变成累加的了)
很差处:为了解决这个bug,咱们就要去改动html结构,这在企业开发中是绝对禁止的,因此这个bug能够不解决
1)浮动元素产生了浮动流
① 全部产生了浮动流的元素,块级元素看不到他们(受影响)
② 产生了bfc的元素和文本类属性(inline)的元素以及文本都能看到浮动元素(不受影响)
2)清除浮动(clear:both/left/right)
① 要想让一个浮动元素下面的元素不受浮动流影响,能够给这个元素设置一个清除浮动
② 能清除浮动的元素必须是块级元素
③ 要想用一个盒子包住浮动元素,能够在全部浮动元素的最下面放一个p标签,给这个p标签设置一个清除浮动(开发中不能使用)
④ 要想解决②中的问题,能够给这些浮动元素的父级设置一个后面的伪元素,而且把这个伪元素改成块级元素(display:block),再到里面进行清除浮动操做(clear:both)
⑤ 要想解决②中的问题,还能够给父级元素触发bfc
1)伪元素存在于任意一个元素当中
2)伪元素天生是一个行级元素,能够经过display将其改成块级元素或者行级块元素
3)伪元素示例代码
该元素::before/after{
content:”内容”;
}
1)单行文本
处理方法:给要处理的文字设置三件套代码
white-space:nowrap; 不要让文字换行
overflow:hidden; 隐藏溢出文本
text-overflow:ellipsis; 对溢出的隐藏文本打点处理
2)多行文本
处理方法:对溢出部分作隐藏处理(overflow:hidden)
1)background-image:url(图片位置); //引入图片
2)background-size: 图片宽度,图片高度; //设置图片大小
3)background-repeat: no-repeat; //设置图片是否平铺
4)background-position: x,y; //设置图片位置(像素值,top,left,center,百分值)
1)首先给元素加上被图片代替掉的文字;而后用css把图片引进,设置;接下来对该元素加上的文字设置css:首先设置首行缩进(text-indent),让它的值超过元素的宽度;接下来,给文字设置(white-space:nowrap; ),让文字不要换行;最后,设置(overflow:hidden;)让溢出文字隐藏。这样的话,当网速很差时,css被屏蔽了,文字就会被显示出来,正常状况下文字不会出现,不会影响其基本功能。
2)首先给元素加上被图片代替掉的文字;而后用css把图片引进,设置;接下来对该元素加上的文字设置css:首先把容器的高度设置为0;接下来设置padding-top为容器原高度,这时文字就会被挤到下面去;最后,设置overflow:hidden;将文字隐藏就能够了
1)行级元素只能嵌套行级元素
2)块级元素能够嵌套任何元素,可是p标签里面绝对不能嵌套块级元素
3)a标签里面不能嵌套a标签
持续更新中.........