zoukankan      html  css  js  c++  java
  • 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等工具
     
     
     
     
     
    有志者,事竟成,破釜沉舟,百二秦关终属楚;苦心人,天不负,卧薪尝胆,三千越甲可吞吴。
  • 相关阅读:
    CentOS更改yum源与更新系统
    JQ兼容各种JS库的写法
    虚拟主机
    SSH安全登录(远程管理)22端口
    Samba服务器
    VSFTP服务
    网络配置和文件服务器
    服务和进程管理(二)
    攻防世界XCTF--一个登录验证页面(第六题)
    攻防世界XCTF--一个不能按的按钮(第五题)
  • 原文地址:https://www.cnblogs.com/1989guojie/p/6905096.html
Copyright © 2011-2022 走看看