css 浅析

251 阅读2分钟

1.CSS的由来

     94年,由赖先生(Håkon W Lie)提出层叠HTML样式表(Cascading HTML Style Sheets,CHSS),其中CSS不能单独使用,必须与HTML或XML一起协同工作,为HTML或XML起装饰作用。HTML负责确定网页中有哪些内容,CSS确定以何种外观(大小、粗细、颜色、对齐和位置)展现这些元素。CSS可以用于设定页面布局、设定页面元素样式、设定适用于所有网页的全局样式。CSS可以零散地直接添加在要应用样式的网页元素上,也可以集中化内置于网页、链接式引入网页以及导入式引入网页,有以下三种方式的层叠:

  • 样式的层叠:可以多次对同一选择器进行样式声明;

  • 选择器的层叠:可以用不同的选择器对同一种元素进行样式说明;

  • 文件的层叠:可以用多个文件进行层叠;

其中css2.1的版本应用最为广泛。如果想检测所使用的属性在各个浏览器的支持特点可以根据 我能用网 进行查看支持的情况。

2.css中的基本概念

(1)文档流

a. 流动的方向:

  • inline 从左向右流动在最右边换行;
  • block 每一个都独占一行;
  • inline-block 从左向右,不会被分成两块。

b. 宽度

  • inline的宽度:由内部inline的元素宽度和决定,对它不可指定宽度值;
  • block 的宽度:可以指定,或者默认自动计算宽度;
  • inline-block的宽度:结合了二者的特点,可指定宽度。

c.高度

  • inline的高度:由行高间接决定(与字体有关。)
  • block的高度:由内部文档流元素决定,可以没有高度;
  • inline-block的高度:与block类似。

(2)溢出

当内容的宽度大于容器就会发生溢出的现象。

overflow的设置值:

  • auto 灵活设置

  • scroll 始终显示

  • hidden 隐藏

  • visible 直接显示溢出的部分

(3)脱标

     脱离文档流, 因为div的宽度是由内部的文档流决定的,但是如果是内部的文档流脱标了,宽度为默认值。 常见的脱标的方式为:添加浮动和绝对定位和固定定位。

.container {
    border:1px solid red;
    position:relative;
    top:10px;
    bottom:10px;
}
       .one, .two {
            
            height: 300px;
            background-color: gray;
            margin: 0 auto;
        }
        
        .one {
            border: 20px dotted pink;
        }
        
        .two {
            position: absolutes;
            border: 20px dotted blue;
        }

(4)盒模型

1.content box

内容为多大,width就多大。

2.border box

width=border+padding+content的总和,一般看来border box 的使用比较方便。


     
        .content,
        .border {
            margin: 25px;
            border: 5px solid blue;
            padding: 15px;
        }
        
        .content {
            box-sizing: content-box;
            width: 100px;
            /* 内容值为100px与border值无关 */
        }
        
        .border {
            box-sizing: border-box;
            width: 100px;
            /* border的值+内容的值=100px */
        }