CSS小结

239 阅读5分钟

CSS基础

CSS 引入方式

内联样式表

  • 位置: 标签内部
  • 优点: 优先级非常高
  • 缺点: 冗余代码非常多,维护非常困难
  • 使用场景: 针对个别特殊的样式进行修饰 内部样式表
  • 位置: head 标签的内部 <style></style>
  • 优点: 一定程度上实现代码和样式的分离 ,速度快,没有额外的服务器的请求压力
  • 缺点: 造成单个页面体积过大, 代码较乱,前后端沟通困难
  • 使用场景: 大型网站的首页 外部样式表
  • 位置: head 标签的内部 <link rel="stylesheet" type="text/css" href ="文件路径" >
  • 优点: 复用性强,一个样式表可用于多个页面.维护方便,易于改变,代码简洁,易于分工协作
  • 缺点: 容易混淆,会有垃圾代码,会造成服务器请求压力
  • 使用场景: 公共样式的设计,大型网站的二三级页面. 引入方式的优先级问题
  • 内联 > 内部 ?外部
  • 如果优先级相同,谁后加载谁生效,如果优先级不同,谁优先级高的生效

CSS 选择器

选择器优先级问题

内联样式表 > ID 选择器 > 类选择器 > 标签名选择器

CSS 选择器(重要)

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style type="text/css">
    /*标签选择器*/
    div {
        color: red;
    }

    /*类选择器*/
    .i1 {
        color: red;
    }

    /*ID选择器*/
    #id {
        color: red;
    }

    /*通配符选择器:不推荐使用,因为通配符需要检索的是全部的标签设置这一个内容,会将所有标签更改,非常影响效率*/
    * {
        margin: 0;
        padding: 0;
    }

    /*相邻兄弟选择器:紧挨着`选择器1`的`选择器2`,CSS样式作用在`选择器2`*/
    .i1+.i2 {
        color: blue;
    }

    /*同级元素通用选择器:紧挨着`选择器1`的`选择器2`,CSS样式作用在`选择器2`*/
    .i1~.i2 {
        color: blue;
    }

    /*群组选择器*/
    .i1,
    .i2 {
        color: red;
    }

    /*后代选择器:控制这连个需要是父子元素;后代同一选择器均会受影响*/
    body .i2 {
        color: red;
    }

    /*子代选择器:只选择儿子,而不选择孙子*/
    body>.i2 {
        color: red;
    }

    /*属性选择器*/
    [class='i3'] {
        color: red;
    }

    /*伪元素选择器*/
    /*用于选取指定选择器的首行*/
    .i3:first-line {
        color: blue;
    }

    /*用于选取指定选择器的首字母。*/
    .i3:first-letter {
        color: green;
    }

    /*伪类的顺序应为:`link`->`visited`->`hover`->`focus`->`active`。*/
    /*当鼠标悬停在某一内容之上触发;*/
    .i3:hover {
        color: orange;
    }

    /*未被访问的链接*/
    .i3:link {
        color: orange;
    }

    /*已被访问过的链接*/
    .i3:visited {
        color: orange;
    }

    /*鼠标点击的时候出发,按住时*/
    .i3:active {
        color: orange;
    }

    /*当获取焦点是触发  如果需要给`div`获取焦点,可以给`div`设置`<div tabindex='0'></div>`*/
    .i3:focus {
        color: orange;
    }

    /*在某一元素之前添加内容*/
    .i3:before {
        content: '添加内容A';
    }

    /*在某一元素之后添加内容*/
    .i3:after {
        content: '添加内容B';
    }

    /*选择器匹配父元素中的偶数个子元素*/
    li:nth-child(2n) {
        color: red;
    }

    /*选择器匹配父元素中的奇数个子元素*/
    li:nth-child(2n-1) {
        color: blue;
    }

    /*计数从最后一个开始*/
    li:nth-last-child(1) {
        color: orange;
    }

    /*匹配同类型中的第`2`个同级兄弟元素*/
    li:nth-of-type(2) {
        color: orange;
    }

    /*父元素标签内的第3个元素,其次这个元素必须是选中的`li`标签,否则无效*/
    li:nth-child(3) {
        color: orange;
    }

    /*选择父元素的第一个孩子*/
    li:first-child {
        color: orange;
    }

    /*选择父元素的最后一个孩子*/
    li:last-child {
        color: green;
    }
    </style>
</head>

<body>
    <div id='i1' class='i1'>demo1</div>
    <div class='i2'>demo2</div>
    <div class="i3" tabindex='0'>demo3</div>
    <ul>
        <li>1</li>
        <li>2</li>
        <li>3</li>
        <li>4</li>
    </ul>
</body>

</html>

CSS 常用样式属性

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style type="text/css">
    .i1 {
        /*设置文字字号 font-size:x-large,xx-large,x-small,xx-small, medium(默认文字大小16px文本如果不进行特殊设置默认16px,font-size是继承的属性*/
        font-size: x-large;
        /*设置文字颜色 color*/
        color: orange;
        /*
        设置文字的修饰线 text-decoration
        * underline下划线
        * overline上划线
        * line-through删除线
        * none无—给超链接取消默认样式
        * 闪烁线blink
    	*/
        text-decoration: underline;
        /*设置文字间距 letter-spacing*/
        letter-spacing: 2em;
        /*
        设置文字首行缩进 text-indent;
        * px 单位是像素,相对长度单位相对于显示器屏幕分辨率而言
        * em 也是单位名称也是相对长度单位,相对于当前对象内的文本尺寸而言
        * rem 相对长度单位 相对于根元素的文本字体尺寸大小
        */
        text-indent: 1em;
        /*
        设置文字的大小写转换 text-transform
        * uppercase 他将全部单词大写 
        * lowercase 他将全部单词小写 
        * capitalize 所有单词首字母大写
        */
        text-transform: capitalize;
        /*    
        设置水平对齐方式 text-align 
        * center left right
        * text-align 针对的不是他本身而是针对具有内联元素特征的元素生效 (内联,内敛块)
        */
        text-align: center;
        /*设置文字行高 line-height*/
        line-height: 70px;
        /*
        设置文字样式 font-style
        * normal 正常 
        * italic 斜体字 
        * oblique 倾斜的文字 
        * italic失效的时候需要使用oblique替代,平时尽量使用italic
        */
        font-style: oblique;
        /*设置文字加粗 font-weight normal 正常 bold 加粗 bolder 更粗*/
        font-weight: bold;
        /*
        设置字体样式 font-family 
        * 定义 用于某个元素的字体族的名称或者类族的名称的一个优先表 浏览器会使用他可识别的第一个值,每一个值使用,分割始终需要提供一个类族名称作为最后选择
        * 黑体 SimHei 宋体 SimSun 华文行楷 STKaiti 微软雅黑 Mircosoft YaHei
        * 最后填写一个通用字体 Helvetica
        */
        font-family: SimHei SimSun;
        /*
        设置文字当中:英文:的显示方式 font-variant 
        * normal 普通 
        * small-caps; 英文全部变成大写并且以小字号显示
        */
        font-variant: small-caps;
        /*
        visibility:规定元素内容是否可见    
        * 属性:hidden会让元素隐藏,会占据空间
        * 属性:visible元素显示(默认)
        */
        visibility: visible;
        /*
        overflow规定当内容超出conten时我们如何处理
        * auto 超出滚动条显示,当内容超出元素区域的时候会出现滚动条(如果超出才会触发)
        * scroll超出滚动条显示,当内容超出元素区域的时候会出现滚动条
        * hidden超出内容,隐藏
            * overflow:使用的时候需要注意两个问题
            * 不同浏览器之间显示时可能存在差异,
            * overflow兼容性很差,低版本内容可能不支持
        */
        overflow: :auto;
        /*
        cursor:用于设置鼠标样式的属性
        * text  文本输入
        * move  移动光标  
        * pointer  手掌
        * url()  自定义图片;推荐图片格式--.cur--图片分辨率需要在128*128之内
        */
        cursor: pointer;
        /*   
        让一个元素消失
        * height: 0; 让元素消失,不会占据文档流空间
        * display: none;让元素消失,不会占据文档流空间
        * margin-left: -999999px;让元素消失,依旧占据文档流空间
        * visibility:hidden;  让元素消失,依旧占据文档流空间布局是依旧会考虑该空间
      	*/
    }
    </style>
</head>

<body>
    <div id='i1' class='i1'>demo1</div>
</body>

</html>

CSS 浮动

浮动:float:left/right/none;

特性:

  • 会使元素脱离文档流(布局的时候不会再考虑);
  • 提升层级半级;
  • 如果没有宽度,浮动元素的内容会去撑开宽度;
  • 浮动元速度会使不支持宽高的元素,支持宽高;
  • 浮动元素对后面与之相邻的下一个元素产生影响

浮动元素什么时候停止呢?

  • 遇到父级的边框的时候
  • 遇到另一个浮动元素的边框的时候
  • 当一行内容放不下时,该元素会参考上一个元素的高另起一行;

如何清除浮动:高度塌陷问题;

  • 给父级设置高度,hight=300px缺点:拓展性太差;
  • 给父级设置浮动float=left缺点:拓展性太差,本末倒置;
  • 给父级overflow:hidden缺点:超出部分会被隐藏,兼容性差;
  • 给父级display:inline-block缺点再次引发其他问题;
  • 使用clear清除浮动clear:left/right/both/none缺点每一次都要确认清除的元素位置(找后一个)
  • 使用:after伪类内部使用需要注意:1.content:'';2.clear:both;3.display:block;
封装:
<style>
  .clearFIX:after{content:'';clear:both;display:block;}//清除浮动
  .clearFIX{zoom:1;/倍率/}//触发IE6的hasLayout
<style>
<div style='width: 300px;background-color: green;' class='clearFIX'>
    <div style='width: 30px;height: 30px;float: left;background-color: yellow;'   ></div>
</div>

CSS 定位

position:static:默认,不定位

relative:相对定位top/left/right/bottom

  • 特性:
  • 对定位数值可以设为负数
  • 设置偏移量为正值,则向相反方向移动;
  • 同时设置top&bottom bottom生效 left&right right生效
  • 相对定位的位移参考自身原始位置移动;
  • 相对定位不会使元素脱离文档流(布局是还是需要考虑)
  • 相对定位偏移的时候,属性会保留在初始位置,内容会进行偏移;
  • 如果只设置相对定位,而不进行偏移的话,对当前元素本身没有任何影响

absolute:绝对定位top/left/right/bottom/z-index;

  • 特性:
  • 绝对定位会使元素脱离文档流;
  • 提升层级一级;会同时压住属性和内容;
  • 会使不支持宽高的元素从新支持宽高;
  • 没有设置宽度的元素,会由内容撑开宽度;
  • 我的绝对定位的位移实际上是参考与离它最近的设置了定位的父级;(static无效)

fixed:固定定位top/left/right/bottom/z-index;

  • 特征:
  • 绝对定位的特性基本一致,区别:位移始终参考与浏览器界面的位置;
  • 固定位置:position:fixed;top:0;left:0;

z-index:专门用于控制层级的属性;

  • 可以设置为负数—但是假如设为负数,无法响应任何点击事件;
  • 透明度:
  • opacity透明度为:0-1描述上是不可继承的,实际测试是可继承的。
  • 替代透明度的方法,可以通过设置rgba()来进行更替;
  • 阐述:
  • position:relativeposition:absolute都可以改变元素在文档流中的位置,
  • 同时也会激活top、right,bottom、left。 在未激活之前是可以设置的,但是界面无效果的,
  • z-index未设置之 前,默认是auto网页看起来是二维的结构,但是实际上是存在一个Z轴的,Z轴的大小由z-index来决定。默认情况下,所有的元素都是处于z-index=0这一层的。内部元素去根据元素类 型(block、inline...)长宽,内边距外边距等内容来去排列在z-index=0这一层,但是绝对定位,能够使元素完全脱离文档流,不会在z-index=0这一层保留位置,但是相对定位不会使元素 脱离文档流,布局的时候依旧需要考虑。浮动不会让元素“上浮”到另一层,它实际上还是处于z-index=0这一层,但是它会改变正常的文档流的布局z-index=0这一层,也就是我们俗称的 文档流

定位的兼容性问题:

  • 固定定位在IE6中是不生效的
  • position:relative;IE6,7下,父级的overflow包不住子级的relative处理方法,父级添加relative;
  • position:absolute;IE6下,定位元素的宽和高都是为奇数,在IE6下,定位元素的rightbottom会有1px的偏差;无法解决

CSS 盒模型详解

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style type="text/css">
    .i1 {
      /*
      盒模型  
      盒模型划分:内容:content ;内边距: padding ;边框: border ;外边距: margin ;

      盒模型:内容参数
      基础属性:width:height
      background-color 背景颜色 
          颜色的写法 英文单词 透明 transparent rgb(red,green,blue) 取值范围 0 - 255 rgba(red,green,blue,alpha) alpha 取值范围 0 ~ 1 .4 -> 0.4 
          常用的颜色简写: #ffffff -> #fff -> white #cccccc -> #ccc -> gray
      background-image 设置背景图片 url(“ 图片的路径 ”)
      background-repeat 背景图片的重复方式:repeat 横向纵向全平铺repeat-x横向平铺repeat-y纵向平铺no-repeat 不平铺;
      background-position 背景图片的定位,值得书写方式: 数值 100px 100px 百分比30%30% 英文单词(常用) top上 right右 bottom下 left左 center居中
          当只设置一个定位方向时另外一个数值默认center
      background复合写法: 1.颜色 2.图片路径 3.定位 4.重复方式 :background:red url("img/1.png") bottom no-repeat;
      background-attachment: 设置背景图片是否随着界面滚动而滚动 属性 scroll滚动 默认值 fixed固定的 可能造成偏移
      background-size 设置背景图片大小 background-size: 600px 300px;
          背景尺寸:数值的填写:具体尺寸,百分比,英文,auto 默认尺寸;
          cover等比例的覆盖,直至完全覆盖,背景图片可能超出容器
          contain会将背景图片等比例缩放,宽度或者高度和父容器相等的时候停止背景图片不会超过父容器
      background-clip:指定背景的绘制区域,将背景图片适当裁剪
          border-box 	背景被裁剪到边框盒。 
          padding-box 背景被裁剪到内边距框。 
          content-box	背景被裁剪到内容框。
          决定背景图片的剪切范围
          border-box:border+padding+content
          padding-box:padding+content
          content-box:content
      background-origin:决定背景图片的填充的初始位置
          border-box:以border作为起始位置
          padding-box:以padding作为起始位置
          content-box:以content作为起始位置

      盒模型:边框参数
      border-style:边框常用的样式 solid 实线: 四个方向  top  right  bottom  left
          * dashed(虚线—在大多数浏览器里面为实线)
          * dotted(点线—在大多数浏览器里面为实线)  
          * solid (实线)double双实线(如果为1px为实线)
          * none无边框
          * hidden  隐藏(效果与“none”相同--样式冲突时使用隐藏)
          * groove  3D凹槽边框  
          * ridge  垄状边框
          * inset  内陷  
          * outset  外凸
      border-width:thin medium  thick  像素(px)
          * border-width: 10px; 上右下左
          * border-width: 10px 20px;上下左右
          * border-width: 10px 20px 30px;  上 左右  下
          * border-width: 10px 20px 30px 40px; 上 右  下  左
      border-style: 边框颜色取决于border-color
      border-color: color
      border复合写法 宽度 样式 颜色border:1px dotted blue;
      border-radius:设置圆角边框
          * 数值1,数值2,数值3,数值4 前四个横向距离 数值5,数值6,数值7,数值8 后四个纵向距离
          * 数值1,数值2,数值3,数值4 左上,右上,右下,左下
          * 数值1,数值2,数值3 左上,右上左下,右下
          * 数值1,数值2 左上右下,右上左下
          * 数值1 左上右上右下左下

      盒模型:margin和padding的特性
      padding注:两个元素是父子关系,你需调整内容的位置的时候去使用paddiing,可以填充背景图片;
          * 特性:
          * padding 会撑大盒模型
          * pddding 不能为负数
          * padding 会显示背景图片
      背景时期填充范围是整个盒模型的实际范围:content+padding+border
      margin注:当两个元素是兄弟关系的时候推荐使用 margin;
          * 特性:
          * margin 不会占我们的盒子空间,他只会影响盒子的位置
          * margin 不会填充背景图片
          * margin 可以设置负数

      盒模型:盒子阴影
      E{box-shadow:inset x-offset y-offset blur-radius spread-radius color}
          * box-shadow:inset 0px 15px 10px -15px #000;
      换句说: 对象选择器 {box-shadow:投影方式 X轴偏移量 Y轴偏移量 阴影模糊半径 阴影扩展半径 阴影颜色}
          * 投影方式: 唯一值“inset"
          * X轴偏移量 Y轴偏移量:偏移量可为负
          * 阴影模糊半径:此参数是可选,,但其值只能是为正值,如果其值为0时,表示阴影不具有模糊效果,其值越大阴影的边缘就越模糊;
          * 阴影扩展半径:此参数可选,其值可以是正负值,如果值为正,则整个阴影都延展扩大,反之值为负值是,则缩小
          * 阴影颜色:此参数可选,如果不设定任何颜色时,浏览器会取默认色,但各浏览器默认色不一样,特别是在webkit内核下的safari和chrome浏览器将无色,也就是透明,建议不要省略此参数。
      多重阴影
          * 用它的好处是它支持逗号分隔语法,我们可以创建任意数量的投影
          * box-shadow:0px 0px 0px 3px #bb0a0a,0px 0px 0px 6px #2e56bf, 0px 0px 0px 9px #ea982e;

      盒模型:字体阴影:
      text-shadow:10px 10px 50px black:X轴偏移量 Y轴偏移量  阴影模糊半径 阴影颜色
          * X轴偏移量 Y轴偏移量:偏移量可为负
          * 阴影模糊半径:此参数是可选,,但其值只能是为正值,如果其值为0时,表示阴影不具有模糊效果,其值越大阴影的边缘就越模糊;
          * 阴影颜色:此参数可选,如果不设定任何颜色时,浏览器会取默认色,但各浏览器默认色不一样,特别是在webkit内核下的safari和chrome浏览器将无色,也就是透明,建议不要省略此参数。

      盒模型问题:
      background-color: red;background: url("img/1.jpg") no-repeat;当我设置 background-color 之后,在下面使用 background 的时候background 的背景颜色会失效、
      background-origin失效问题:background-origin,设置背景图片初始位置;background-position;设置相对于初始位置的偏移量如果背景图片设置了background-attachment:fixed的时候background-origin:就会失效;
      问题:边框数值的缺失 :
          * border-width: 如果缺失,可以显示属性 thin 细的边框 1px, medium 默认值 中等的边框 3px, thick 粗的边框 5px
          * border-style:如果省略,无法显示
          * border-color:如果省略,可以显示 显示的颜色是黑色
      利用padding让div居中:
          * 让子元素居中div_1{width:100px;height:100px;background:red;padding:100px;}:父级div_2{width:100px;height:100px;background:yellow;}
          * 子级padding 可以撑大盒子的空间 四个方向 top right bottom left padding 不能为负数!
      问题:当两个元素是兄弟是关系的时候:第一个元素的 margin-bottom 和第二个元素的 margin-top 会产生叠压(两者取最大值)
      问题:当两个元素是父子关系的时候,子级元素的第一个元素的margin-top会传递给父级
          * 解决方法:
          * 给父级元素设置 border
          * 给父级元素设置 overflow:hidden;
          * 不要使用margin,而去使用padding注意盒子空间
      */
    }
    </style>
</head>

<body>
    <div id='i1' class='i1'>demo1</div>
</body>

</html>

CSS ICE优先级计算原则

/*
* 继承权重0.001通配符
* 权重  0.1

* 标签选择器   
* 权重1

* 类选择器     
* 权重10   

* ID选择器  
* 权重100 

* 内联样式表   
* 权重1000

* 群组选择器与权重没关系
* 后代选择器权重相加(子代选择器)
* 注意:同级选择器的权重现价存在极限,不能越过更高级别的权重。

CSS DOM操作CSS样式

<!doctype html>
<html lang="en">
   <head>
      <meta charset="UTF-8">
      <title>DOM操作CSS样式</title>
      <style type="text/css">
         #div1{
            width: 300px;
            height: 300px;
            background: yellow;
         }
   
      </style>
   </head>
   <body>
      <div id="div1">div1</div>
      <div id="div2" style="width:200px;height:200px;background:red;">div2</div>
      <script type="text/javascript">
         /*
            通过JS的DOM来动态的操作CSS样式
            1、操作行内样式的属性
               获得:元素.style.样式属性名 或 元素.style[样式属性名]
               设置:元素.style.样式属性名 = 值
            2、操作内部样式和外部样式
               设置:元素.style.样式属性名 = 值
               获得:
                 -- IE中:元素.currentStyle.样式属性名
                 -- 其他:window.getComputedStyle("元素", "伪类").属性名
                    不过一般伪类我们写成 null 即可。 只读的方式
         */
         var div1 = document.getElementById("div1");
         //获得内部样式的样式属性值
         console.log(div1.style.width); //得不到
         console.log(window.getComputedStyle(div1, null).width); //300px
         //如果非要用style来获得内部样式或外部样式的属性值怎么办?
         //先通过style去设值,在通过它就可以取了
         div1.style.width = "100px";
         console.log(div1.style.width);
         // //获得行内样式
         var div2 = document.getElementById("div2");
         console.log(div2.style.width); // 200px
         //遇到样式为 : font-size 这种,在style的属性中变成 fontSize
         div1.style.fontSize = "40px";
      </script>
   </body>
</html>

CSS 居中问题

关于页面中一直存在导航居中问题:

/*
方法一
margin:50% auto;
方法二
position:absolute;top:50%;left:50%;margin-top:'自身高度的一半';margin-left:'自身宽度的一半';
方法三:推荐使用第三种
margin:auto;position:absolute;top:0;left:0;right:0;bottom:0;
/*

行高问题

如何让多行文字居中

  • 父级:display:table;
  • 子级:display:table-cell vertical-align:middle; 水平居中
  • text-align:center
  • margin-left:auto;margin-right:auto; 垂直居中
  • 通过上下内边距相同实现
  • line-height:100px;height:100px 让一个元素消失
  • display:none;
  • opacity:0
  • height:0;
  • vishbility:hidden;
  • position:absolute; top:-9999px
  • position:absolute; z-index:-9999px
  • margin-left:-9999px

CSS 应用场景

标题小技巧:隐藏添加标题

h2{margin: 0;width: 0;height: 0;font-size: 0;padding: 200px;}
<h2>王王王王王</h2>

最小宽度

img{width: 100%;height: 100%;min-width: 500px;max-width: 800px;min-height: 500px;max-height: 800px;}

字体图标:可以使用字体来代替图片

  • 网站下载一个矢量量图 www.iconfont.cn/collections…
  • 将内部字体文件放入当前文件夹下
  • 将 CSS 文件中的内容复制当前文件的样式表中
  • 删除无关部分
  • 设置类的名称,需要和上面的名称相同
    <style type="text/css">
        @font-face {
          font-family: "iconfont";
          src: url('font/iconfont.eot')format('embedded-opentype'), 
               url('font/iconfont.woff')format('woff'),format('truetype'),
               url('font/iconfont.svg')format('svg');
        }
        .iconfont {
          font-family:"iconfont" !important;
          font-size:16px;font-style:normal;
          -webkit-font-smoothing: antialiased;
          -moz-osx-font-smoothing: grayscale;
        }
        .icon-gouwuchexuanzhong:before { 
          content: "\e650"; 
        }
    </style>
    <div class="icon-gouwuchexuanzhong iconfont"></div>

外边框

  • outline最常使用的情况  input{outline:none;}
  • 绘制在元素的周围,为了突出元素的一条线,常用于清除input的默认样式 注意
  • outlinecss2中已经存在
  • IE8下必须声明<!DOCTYPE html>才会生效
  • outline不会占内容的位置

设置元素是否可拉伸 resize

属性

  • vertical  竖直拉伸
  • horizontal 横向拉伸
  • both  竖直和水平都可以进行拉伸
  • none  不允许进行拉伸 注意
  • 当你的内容需要拉伸的时候,需要配合overFlow:hidden;当这个内容两边的 marginauto的时候,它的拉伸会同时向两边一起 拉伸
  • firefox 4.0 + & chrome & safari 中才会生效

无限的优先级

  • 在样式后面添加!importment
  • div{background:blue!important;}

怪异盒模型

  • 用于设置 普通盒模型 和 怪异盒模型 的属性
  • box-sizing 属性
  • content-box 正常的盒模型 width 指的是内容的宽度
  • border-box  怪异盒模型 width指的是 border + padding + width

雪碧图应用原理:

将我们的默认状态图片和滑动状态图片合并成一张图片,background-image,在滑动的时候利用background-position去更改定位位置,我们称这种技术 称为图片翻转技术,演化到最后就是我们的 CSS sprite

优点

减少对服务器的请求次数,降低服务器压力,同时提高了页面的加载速度,节约服务器的流量

示例

.div_1{
  width: 46px;height: 46px;
  background-image: url("img/1.png");background-repeat: no-repeat;background-position: -102px 0px;
}
.div_1:hover{
  background-position: -204px -54px;
}

ICON浏览器图标:页面标题图片

具体写法(以下两条均写)

<link rel="shortcut icon" href="/favicon.ico" />

<link rel="bookmark" href="/favicon.ico" type="image/x-icon" />

制作方法

www.easyicon.net/language.zh…

www.faviconico.org/

推荐大小:16*16   或者  32*32

服务器端字体

font-face中的src可以存放多个路径,中间用,隔开,为了同时设置多个格式

推荐格式  ttf svg woff eot

@font-face {   
  font-family:"iconfont";src:url("font_bab.ttf") ;  
}      
div {  
  font-size:200px;font-family:"iconfont";  
} 

欢迎大家批评指正!~