1.CSS

一、CSS简介

网页 = 内容(HTML)+ 样式(CSS)

CSS 层叠样式表,是对HTML进行样式修饰语言,内容和表现分离

样式:字体、前景色、背景色、背景图、间距、边框

层叠:层层覆盖叠加,如果不同的CSS样式对同一HTML标签进行修饰,样式有冲突的部分应用优先级高的,不冲突的部分共同作用

样式表:CSS属性样式的集合

1、作用:

(1)修饰HTML的使其HTML样式更加好看
(2)提高样式代码的复用性
(3)HTML的内容与样式相分离 便于后期维护

2、CSS的引入方式和书写规范

2.1 内联样式inline
内联样式是把css的代码嵌入到HTML标签中

<div style="color:red;font-size: 100px;">你好</div>

语法:
  (1)使用style属性将样式嵌入到HTML标签中
    (2)属性的写法:属性:属性值
    (3)多个属性之间使用分号;隔开
不建议使用

2.2 内部样式inner
在head标签中使用style标签进行css的引入

<style type="text/css">
  div{color:red;font-size: 100px;}
</style>

语法:
  (1)使用style标签进行css的引入
  <style type="text/css">
属性:type:告知浏览器使用css解析器去解析
  (2)属性的写法:属性:属性值
  (3)多个属性之间使用分号;隔开

2.3 外部样式outer

将css样式抽取成一个单独css文件 谁去使用谁就引用

<link rel="stylesheet" type="text/css" href="demo1.css"/>

语法:

(1)创建css文件 将css属性写在css文件中

(2)在head中使用link标签进行引入

<link rel="stylesheet" type="text/css" href="css文件地址"/>

rel:代表要引入的文件与html的关系

type:告知浏览器使用css解析器去解析

href:css文件地址

(3)属性的写法:属性:属性值

(4)多个属性之间使用分号;隔开

2.4 @import方式

<style type="text/css">
  @import url("css地址");
</style>

link与@import方式的区别:

(1)link所有浏览器都支持 import部分低版本IE不支持

(2)import方式是等待html加载完毕之后在加载

(3)import方式不支持js的动态修改

使用原则:
1、内联样式只对当前元素有效;内部样式对整个页面有效;外部样式所有引用它的页面都有效,可用于控制全站的风格
2、内联样式少用;内部样式可以适当使用,全站中只有一个页面中使用的样式;推荐用外部样式,但外部文件不要太多
 
!important可以调整样式规则的优先级,将important添加在样式规则之后
选择器{属性:属性值 !important ;},谨慎使用

二、css选择器(重点)

JS/JQuery也有类似于CSS的选择器进行元素的选择

1、通用选择器:*{...}     选择页面中的所有元素,常用于清空所有的间距margin,padding
1 <style>
2    *{
3       margin:0
4     }
5 <style>

2、元素选择器

语法:html标签名{css属性}

1 <span>hello css!!!</span>
2 <style type="text/css">
3   span{color:red;font-size:100px; }
4 </style>

3、ID选择器     ID唯一性

语法:#id的值{css属性}

1 <div id="div1">hello css1!!!</div>
2 <div id="div2">hello css2!!!</div>
3 <style type="text/css">
4   #div1{background-color: red;}
5   #div2{background-color: pink;}
6 </style>

4、类别class选择器

语法:.class的值{css属性}

1 <div class="style1">div1</div>
2 <div class="style1">div2</div>
3 <div class="style2">div3</div>
4 <style type="text/css">
5   .style1{background-color: red}
6   .style2{background-color: pink}
7 </style>

选择器的优先级:id>class>元素

5、并列/过滤选择器:选择器1选择器2{...} 选择可被两个选择器同时选定的元素 p.mark{...}或.product.mark{...},注意.mark是一个选择器

6、子元素选择器:选择器1 选择器2{...} 选择可以被选择器1选择的元素下的所有子元素中可以被选择器2选中的元素 div span{...} .product .mark{...}

7、直接子元素选择器:选择器1>选择器2{...} 选择器1中的直接子元素中可被选择器2选中的 div>span{...} IE6不支持

8、多选/群组选择器:选择器1,选择器2,...,选择器n{...}选择可被任一选择器选中的元素 h2,#main,.mark{...}

9、属性选择器

语法:基本选择器[属性=‘属性值’]{css属性}

1 <form action="">
2   name:<input type="text" /><br/>
3   pass:<input type="password" /><br/>
4 </form>
5 <style type="text/css">
6   input[type='text']{background-color: yellow}
7   input[type='password']{background-color: pink}
8 </style>

10、伪元素(伪类)选择器

a标签的伪元素选择器

语法:

 链接伪类:
     a:link{...} 选择所有未访问过的超链接
     a:visited{...} 选择所有访问过的超链接
动态伪类
     元素:hover{...} 当鼠标悬停在元素上方时 IE6只支持a:hover
     元素:active{...} 当元素被激活时
     input:focus{...} 当元素获得输入焦点   IE7之前都不支持
1 <a href="#">点击我吧</a>
2 <style type="text/css">
3 a:link{color:blue}
4 a:hover{color:red}
5 a:active{color:yellow}
6 a:visited{color:green}
7 </style>
 

11、层级选择器

语法:父级选择器 子级选择器 .....

 1 <div id="d1">
 2     <div class="dd1">
 3         <span>span1-1</span>
 4     </div>
 5     <div class="dd2">
 6         <span>span1-2</span>
 7         </div>
 8 </div>
 9 <div id="d2">
10     <div class="dd1">
11         <span>span1-1</span>
12     </div>
13     <div class="dd2">
14         <span>span1-2</span>
15     </div>
16 </div>
17             
18 <style type="text/css">
19     #d1 .dd2 span{color:red}
20 </style>    
CSS样式的优先级:
!important > 内联样式 > #ID选择器 > 类选择器/伪类选择器 > 元素选择器 > 浏览器预定义样式
 
CSS中的尺寸
     相对尺寸:
                    %,所占父元素的百分比 div{50%;},相对布局
                    px:像素,屏幕上的一个点,常用,图片,绝对布局
                    em:倍率,标准字体大小的倍率 div{3em},字体大小的三倍,常用在段落中
     绝对尺寸(很少用,涉及到分辨率大小的问题):
                    cm
                    mm
                    in:英寸
                    pt:磅(72磅=1英寸)
 
float:left  向左浮动,有多大空间放多少个
CSS中的颜色
   英文:red green sivler
     RGB:三位整数rgb(xxx,xxx,xxx) span{color:rgb(255, 0, 0)}
            三位百分比span{color:rgb(50%, 0 ,0)}
     六位的十六进制数:#xxxxxx  span{color:#ffffff};
     三位的十六进制数:span{color:#ff0}
 
色彩理论:
     原色:能够以一定比例调配出其他颜色的颜色
     加色系:以红绿蓝为原色的色彩体系主动发光的物体的颜色使用加色系,颜色越多越白,如太阳
     减色系:以CyneMegatonYellow为原色的色彩体系,不主动发光,反射其他光线的物体,颜色越多越黑,如月亮
 
计算机是加色系
     32位真彩色:使用8bit(0~255/00~FF)来描述一个元素的配比量
     64位真彩色:使用16bit(0~65535/0000~FFFF)来描述一个原色的配比量

三、css属性(重点

1、文字属性
  font-size:大小
  font-family:字体类型
2、文本属性
  color:颜色
  text-decoration:下划线
  属性值:none underline
  text-align:对齐方式
  属性值:left center right

1 <div>hello css!!!</div>
2 <a href="#">click me!!!</a>
3 <style type="text/css">
4     div{color:red;text-decoration: underline;text-align: right }
5     a{text-decoration: none;}
6 </style>

3、背景属性
background-color:背景颜色
background-image:背景图片
  属性值:url("图片地址");
background-repeat:平铺方式
  属性值:默认横向纵向平铺
    repeat:横向纵向平铺
    no-repeat:不平铺
    repeat-y:纵向
    repeat-x:横向

1 body{
2   background-color: black;
3   background-image: url("images/dog.gif");
4   background-repeat: repeat-y;
5 }

4、列表属性
list-style-type:列表项前的小标志
  属性值:
list-style-image:列表项前的小图片
  属性值:url("图片地址");

 1 <ul>
 2   <li>黑马程序员</li>
 3   <li>黑马程序员</li>
 4   <li>黑马程序员</li>
 5   <li>黑马程序员</li>
 6 </ul>
 7 <style type="text/css">
 8   /* ul{list-style-type: decimal-leading-zero;} */
 9   ul{list-style-image: url("images/forward.gif");}
10 </style>

5、尺寸属性
width 指定元素的宽,block元素才能指定/img/table,可取值% px em
height 元素的高,block元素才能指定/img/table ,可取值% px em

1 <div id="d1">div1</div>
2 <div id="d2">div2</div>
3 <style type="text/css">
4   #d1{background-color: red;width: 200px;height: 200px;}
5   #d2{background-color: pink;width: 200px;height: 200px;}
6 </style>

 overflow:处理溢出内容 hidden visible scroll auto 

6、显示属性
display:
属性值:none:隐藏
block:块级显示
inline:行级显示

<form action="">
  name:<input id="name" type="text" /><span id="span">对不起 输入不符合要求</span>
  <br>
  pass:<input id="pass" type="password" />
  <br>
  <input id="btn" type="button" value="button" />
</form>
<style type="text/css">
  span{color:red;display: none}
</style>
<script type="text/javascript">
  document.getElementById("btn").onclick = function(){
  document.getElementById("span").style.display = "inline";
};
</script>


7、浮动属性
float:
属性值:left right
  clear:清除浮动 left right both
缺点:

(1)影响相邻元素不能正常显示
(2)影响父元素不能正常显示

8、边框
border-width:要同时指定样式才能显示出来,可上右下左来顺序设置
            style : solid double dotted dashed groove ridge inset outset
           color:可用trnasparent表示透明色
border 占用元素空间,也可以一起指定三个的效果 border:1px solid #fffff,此时必须按顺序写 (宽度 样式 颜色) 
 
class和id不能以数字开头
 
outline:轮廓,不占元素空间,常用与统一输入框
outline-color
outline-style
outline-width
 
border-radius:边框半径,用于绘制圆角边框,CSS3/IE9+,半径越大越圆,需先设置border,用绝对值或者百分比(半径的)
 
box-shadow:边框阴影,阴影不占页面空间 CSS3/IE9+
                         h-shadow:必须
                         v-shadow:必须
                         blur 模糊半径
                         spread 阴影半径
                         color 阴影颜色
                         inset 将外部阴影改为内部阴影
border-image 使用图片做边框,九宫格,CSS3/Safari兼容性问题,用的少
                    source  url(xxx.png)
                    width:边框宽度、九宫格宽
                    repeat/stretch/round:平铺拉伸四舍五入
 
padding-left
               right
               top
               buttom
padding 主要用复合属性
 

四、CSS盒子模型(重点

定义了元素盒处理元素内容(width、height)、填充padding(像素、%)、边框border和外间距margin(px,%,auto,负值)的方式
 
1、 区块div     无浮动:竖直方向上排布,相邻的margin会合并;padding各自独立
                       浮动:竖直/水平方向上都各自独立;padding各自独立
     内联span   水平方向上排布,一行不够自动布到下一行
                       margin 水平水平方向上的不合并;竖直方向上无效
                       padding 水平方向上各自独立;竖直方向上有效但不占用页面空间(上下两行的padding可能会重叠)

display:inline-block;

2、outline、box-shadow不占页面,不计入盒子模型的计算
3、float会对margin的合并产生影响
4、区块元素想在父元素中居中,想让div元素在父元素中居中用margin:0 auto;
父元素body的text-align:center;只能让文字居中
5、为了避免浏览器兼容性的问题
默认情况下区块元素(body、h1、p)都存在margin,声明margin属性
*{
     margin:0;
     padding:0
}


border:
  border-边框的宽度
  border-color:边框的颜色
  border-style:边框的线型

  border-top:上边框
  border-bottom:下边框
  border-left:左边框
  border-right:右边框

padding:
代表边框内壁与内部元素之间的距离
  padding:10px;代表上下左右都是10px
  padding:1px 2px 3px 4px;上右下左
  padding:1px 2px;上下/左右
  padding:1px 2px 3px;
  padding-top:单独设置


margin:
代表边框外壁与其他元素之间的距离
  margin:10px;代表上下左右都是10px
  margin:1px 2px 3px 4px;上右下左
  margin:1px 2px;上下/左右
  margin:1px 2px 3px;
  margin-top:单独设置

背景
background-color 为元素设置背景色,可取值为transparent透明  内容+填充+边框,不会占据边距
background-image:默认值为none,设置用url附带一个图像的URL值,url(image/bg_01.gif)
background-repeat:背景平铺,可取值repeat no-repeat  repeat-x repeat-y
background-position:背景位置,left center,right buttom
background-attachment:背景滚动方式,scroll fixed(实现水印效果)
background-clip:背景绘制区域
                         border-box 背景被裁剪到边框盒
                         padding-box 背景被裁剪到填充框
                         content-box 背景被裁剪到内容框
background-origin 背景图片定位区域
                              border-box 背景图像相对于边框来定位
                              padding-box 图像相对于填充框来定位,默认
                              content-box 相对于内容框来定位
background 设置所有背景属性
                    background:color url(图像URL) repeat attachment position不设置其中的某个值则为默认值
 
渐变
CSS3才有,浏览器兼容性不好
两种或多种颜色之间的平滑过渡,可以指定多个颜色值(色标包含一种颜色和一个位置),从每个色标的颜色淡出到下一个,以创建平滑的渐变,凡是能使用背景图片的地方都可以用渐变做背景
 
background-image : liner-gradient()
 
liner-gradient(angel, color-point1, color-point2...) 线性渐变
      angel:渐变的方向,可以是角度值,也可以是是关键值 to top(0deg)
     color-point:颜色的起始点,中间点,结束点 red %0, green 50%
 
radial-gradient([size at position], color-point, color-point2...) 径向渐变
     size 半径
     position 位置
     position 渐变的圆心位置,默认为center 可取值为数值、百分比或者关键字
 
repeating-liner-gradient 重复线性渐变
repeating-radical-gradient  重复径向渐变
 
浏览器兼容性问题
对于不支持的版本
Firefox前面需要前缀 -moz-
Chrome和Safari   -webkit-
Opera -o-
文本相关的CSS属性
推荐:使用CSS文本代替HTML中涉及样式的标签,如b i center pre u s sub sup等
注意:CSS中的字体系统的指定就是让客户端使用本地的某种字体--服务器根本客户端有无某种字体
 
User-Agent:用户代理,一般指浏览器
字符编码方式:UTF-8 GBK Latin-1,指的是字符在计算机中保存时对应的数字、编码方式,GBK中汉字编码为2字节的二进制,而UTF-8则为3字节的二进制
字体:Arial Times 宋体 黑体 
 
font-family:字体系列,可指定用分割的多个值
font-size:字号,px在老版本中无法缩放  %  em
font-weight 字体粗细,代替B标签  thicker  thick  normal bold bolder  100~900
font-style 字体样式,代替B标签,normal italic斜体 oblique斜体
font-variant 字体变化,normal small-caps小写字母会转换为小号大写字母
font 集合属性 style variant weight size family         font:2em,"Arial";
color 文本颜色、前景色
text-align 文本水平对齐方式,只对block元素有效,left center right
text-decoration 文本的修饰方式,none(取消<a>的下划线) underline line-though overline
text-indent 文本缩进 em px
text-shadow 文本阴影 x y blur color,CSS3/IE9不支持
line-height:定义行高,em定义多行内容的行间距,px定义行高与区块的高一样,实现单行文本的竖直居中
text-overflow 处理文本溢出,要配合overflow:hidden,clip剪断不可见文本,ellipsis若有不可见文本则显示为......
word-wrap:单词包裹方式,break-word只打断实在放不下的长单词,CSS3/都支持
word-break 单词打断方式,break-all一行中放尽可能多的字母,即使很短的单词也可能被打断
white-space:如何处理页面中的空白(换行、制表符、空格),pre直接显示所有的空白字符,用于代替<pre>标签
vertical-align :垂直对齐方式
border-collapse 表格边框合并/崩塌方式,用于table,separate 分隔,collapse 崩塌
border-spacing 表格单元格间距,用于table,边框分隔时采用
table-layout 如何处理单元格的宽度 auto 若内容都不溢出则使用指定的单元格宽度;若发生溢出则不够的单元格会扩展宽度  fixed使用固定的单元格宽度
float   none left right
clear 清除之前的元素由于浮动对当前元素造成的影响--当前元素向前补位,none left清除之前元素向左浮动对自己造成的影响,right清除之前元素向右浮动对自己造成的影响,both清除之前元素向左或向右浮动对自己造成的影响  
 
元素的定位
 
1、流/静态定位 默认流 ,postion:static;不能指定位置,区块元素从上到下一个挨一个紧密排布、内联元素从左到右一个挨一个紧密排布,                     流定位中的元素不能通过left/top属性指定其X/Y坐标,上下排布的区块元素的纵向距离会合并;左右排布的内联元素的横向距离不会合 并,需各自独立计算
2、浮动定位 float:left/right; 实现飘起来的效果,从原始元素流中脱离,从原始元素流中脱离,飘到父元素的左/右边框或之前一个飘起来的元素;其他元素填上空缺,浮动起来的元素不占用页面布局空间
3、相对定位 position:relative;使用left/top/right/bottom进行定位
                    仍占用页面空间,元素可以指定“相对于其自己作为静态元素时所处位置”的偏移位置;
4、绝对定位 postion:absolute;使用left/top/right/bottom进行定位
                    不占用页面空间,元素可以指定“相对于已定位最近的祖先元素的paddding位置作为原点“的偏移,且随着页面的滚动而滚动
5、固定定位 position:fixed;使用left/top/right/bottom进行定位
                    不占用页面空间,元素可以指定“相对于最祖先元素 (body)的位置作为原点”的偏移位置,且不随着页面的滚动而滚动
注意:static/float定位的元素无法修改z-index(默认是auto,实际值为);relative/absolute/fixed定位的元素可以修改z-index,值越大越靠近观众,可以为负值。
 
 
元素的显示方式
常用的元素默认有三种显示display方式
block   如div,独自占一整行,可以指定width/height
inline     如span,可与其他元素同处一行,不能指定width/height
inline-block     如img,可与其他元素共处一行,能指定width/height
none     元素消失,且不占用页面流布局空间
table/table-cell 可以像td一样使用vetical-align属性,IE6不支持
 
元素可见性
visibility属性指定元素是否可见,取值visible元素可见,hidden元素隐藏,但不释放所占的页面空间
与display:none相比,display释放页面空间
 
 
元素的不透明度
opacity:0.0~1.0之间的小数,0隐藏,1可见
 
vertical-align应用的两种场合
用在td/th或display:table-cell元素中,让当前元素中的文本内容在竖直方向上居中
用在img/textarea等inline-block元素中,让当前元素同一行中的其他元素与自己的竖直方向上对齐
 
设定光标效果
cursor
pointer小手
move可移动指示
text可在此处进行文本输入
crosshair 显示为十字
 
列表相关的属性
list-style-type: 列表项前的提示符号
         none / disc / circle / square / decimal / lower-alpha / upper-alpha / lower-roman / upper-roman
  list-style-image: 使用图片来代替默认列表项提示符号
  list-style-position: outside/inside ,列表项的标号处于 li外部还是内部
  list-style: type image position 集合属性
 
基本选择器:
*{}
div{}
#main{}
.product{}
div,#main,.product{}
span.title{}
div span{}
div>span{}
 
复杂选择器
复杂选择器的使用可以减少页面中id class的出现频率
使用jQuery兼容下述所有复杂选择器

:xxx为伪类选择器
::xxx伪元素选择器
内容生成选择器
XTHML中规定:页面内容由标签处理,页面表现交给CSS处理
CSS3有些“内容生成”选择器不单单可以呈现样式,还可以向页面中添加内容
选择器:before{
     content:纯文本/图像/计数器
}
选择器:after{
     content:纯文本/图像/计数器
}
content选择器必须配合:before/:after选择器使用
 
body{
          /*初始化计数器*/
         counter-reset: myCounter;
}
p:before{
          /* 使用计数器的当前值*/
     content:'<' counter(myCounter)'>';
}
p{
     /*让计数器的值增加*/
     counter-increment:myCounter;
}
 
与内容多列显示相关的CSS样式
column-count:竖直方向上列的数量
column-gap:内容列与列间距
 
列规则
column-rule 集合属性,width style color
浏览器兼容性:
IE11直接使用
Firefox:-moz-
Chrome/Safafi/Opera添加 webkit属性
 
 
变形 /转换相关的CSS 属性
transform:  none / 2d-3d-func;
  transform:  func1()  func2()  func3(); // 就是下面的函数
  transform-origin: left/center/right  top/center/bottom;  指定变形的原点
注意: (1)所有的变形效果都不会释放或改变原始占用的空间!——与相对定位有点类似。 (2)注意Safari 的兼容性问题。
1)常见的2D 变形函数:
          ·translate(x)/translate(x,y)位移函数,参数是px
          ·translateX(x) / translateY(y)
          ·scale(x) / scale(x, y)  缩放函数,参数是一个表示百分比的小数,如 1100% 0.5 50%2 200%
          ·scaleX(x) / scaleY(y)
          ·rotate(deg)  旋转变形,参数是角度值deg
          ·skew(x) / skew(x,y)倾斜,参数是角度值deg
          ·skewX(x) / skewY(y)
 
2)常见的3D变形函数:
    •rotateX(deg) / rotateY(deg) / rotateZ(deg)沿轴旋转
    •translateZ(z)  Z轴位移
    •scaleZ(z)  Z轴上进行缩放,需配合X/Y旋转

 

过渡效果  hover active focus三个伪类选择区触发 
使CSS属性在一段时间内平滑的过渡,四要素:过渡属性、所需时间、函数、延迟时间
transition: property  duration  timing-function  delay ;
  (1)transition-property: none  |  all  |  p1 p2 ; 针对属性
  (2)transition-duration 100ms | 3s; 持续时间
  (3)transition-timing-function: linear | ease | ease-in | ease-out
  (4)transition-delay 100ms | 3s;  延迟时间
 
  
帧(frame)动画
属性过渡只能模拟动画效果,animation可以制作补间动画效果
帧动画:每张图片是一桢
补间动画:只需要指定动画过程中的“关键帧”,两个关键帧中间的过渡动画由系统自动来填补若干个补间帧
<style>
     @keyframes  Name{ /*定义关键帧集合*/
    0%{  /*关键起始帧*/
     }
     ......
     100%{  /*关键结束帧*/
     }
     
     div{
          animation: Name 3s;
     }
}
</style>
浏览器兼容性必须在keyframs和animation前加-webkit-等
 
与动画调用相关的 CSS属性:
animation-name:动画的名称,即某个@keyframes后声明的动画名。
animation-duration:动画的持续时间
animation-timing-function :动画播放速度函数 linear / ease-in / ease-out / ease-in-out
animation-delay: 播放的延时时间
animation-iteration-count: 动画播放次数,如 310 infinite
animation-direction: 播放方向 normal(第二次播放时从第一帧重新开始 )alternate( 第偶数次播放时从最后一帧倒序播放 )
 
animation:集合属性,按顺序指定 name duration timing-function delay count direction
 
animation-fill-mode:动画在播放之前或者之后其效果是否可见
                    -backwards: 动画尚未开始时即处于第一帧的状态
                   -forwards: 动画完后后保持最后一帧的状态
                   -both: 上述二者的效果都要
animation-play-state: paused( 动画处于暂停状态 ) running(动画处于运行状态),和js配合使用
 
说明:过渡(transition)可以看做一种特殊的动画(animation)——只有开始和结束两个关键帧。
CSS Hack
浏览器对CSS属性的支持不同,未来屏蔽浏览器这种方面的不同实现统一的显示效果;或专门利用这种不同显示效果,在针对特定的浏览器或者特定的版本写特别的代码
 
实现方法
1、IE条件语句
<! - -[IF IE]> 或 <!- -[IF IE 8]>或<!- -[IF lt IE 8]>或<!- -[IF lte IE 8]>
特殊代码HTMLCSSJS
<! [END IF- -]>
在body和head中又可以,只在IE9和IE9-有效
 
2、选择器前缀
<style>
           .content{ }         所有浏览器都能理解的选择器
            *html  .content{}                         只有IE6能理解的选择器
            *+html     .content{}                    只有IE7能理解的选择器
</style>
 
3、属性前缀
<style>
         .content{
         -webkit-animation: anim1  3s;          
         -moz-animation: anim1  3s;
         -o-animation: anim1  3s;
          background: red;               /* 所有浏览器都能识别 */
          *background:green;         /*IE6/IE7能识别*/
          _background:blue;            /*IE6/IE7 能识别*/
          +background:yellow;        /*IE能识别*/
          background: yellow 9;  /*IE9+能识别 */
          background: pink !important;  /*IE6无法识别 */
          }
</style>
注意:选择器前缀和属性前缀不要搞混了
 
页面访问速度优化
1、数据库优化
2、服务器优化
3、前端优化:HTML、CSS、JS
 
CSS优化方案:
80%的用户响应时间花在前段程序上,其中大部分时间花在各种页面元素、如图像、CSS、脚本和Flash的下载
减轻服务器压力、缩短服务器响应时间、提高用户体验
 
优化原则:尽量减少HTTP请求数量;尽可能减小每次请求的数据大小
 
优化方法
1、CSS sprites
背景图滑动门,把很多个小背景图拼接为一张大图,background-image和background-position调整--百度“CSS sprites 在线”找工具
2、把CSS放在头部,尽可能多用<link href="x.css"/>代替@import url(x.css)
3、避免使用CSS表达式
4、避免空的scr和href
5、巧用浏览器缓存,把CSS放到尽可能少的二级页面HTML外部文件
6、首页中尽量不用外部CSS
7、不要再HTML中缩放图像
8、对JS和CSS文件进行压缩,可使用YUI Compressor等工具
 
 
 
 
 
有志者,事竟成,破釜沉舟,百二秦关终属楚;苦心人,天不负,卧薪尝胆,三千越甲可吞吴。
原文地址:https://www.cnblogs.com/1989guojie/p/6905096.html