CSS的全称Cascading Stylesheets样式表,它可以对布局,字体,颜色,背景和其他文图效果实现更加精确的控制。

 

样式表的具体优势:

 

格式和结构的分离

HTML没有具体控制网页的格式或外观,浏览器自己决定应该如何显示。层叠样式表通过将定义结构的部分和定义格式的部分分离,使我们能够对页面的布局施加更多的控制。HTML仍可以保持简单明了的初衷。CSS代码独立出来从另一个角度可控制页面外观。

更好的控制页面的全局的能力

使用层叠样式表我们可以调整字号,字体,控制边距等等,对页面的全局信息更精确的控制。

可以制作出体积更小下载更快的网页

样式表只是简单的文本,就像html那样。它不需要图像,不需要执行程序,不需要插件。使用串接样式表可以减少表格标签及其它加大HTML体积的代码,减少图像用量从而减少文件尺寸。

更快更容易地维护及更新大量的网页

没有样式表时,如果我想更新整个站点中所有主题文本的字体,我必须一页一页的修改每张网页。样式表的主旨就是将格式和结构分离,利用样式表,我可以将站点上所有的网页指向单一的一个CSS文件,我只需要修改css文件中的某一行,那个整个站点都会随之发生变动。

 

CSS的核心内容:标准流,盒子模型,定位

 

标准流:

   在说标准流之前不得不说的块级元素和行内元素

 

行内元素:span---一个容器

块级元素:div--一个容器

 

divspan的区别就是:span为行内元素,div为块级元素

块级元素是占满一行的,而行内元素的大小只与内容大小有关

 

举例:

CSS样式表_css

 

CSS样式表_绝对定位_02

将行内元素转变成块级元素

CSS样式表_css_03

 

CSS样式表_css_04

显示结果:

CSS样式表_样式表_05

   标准流:就是标签的排列方式。

<divclass="style2">我的未来不是梦</div>

<spanid="st" class="style1">栏目一</span>

<spanclass="style2">栏目二</span>

<br/>

<spanclass="style3 guaiji">阳光男孩</span>

<spanclass="style3 ">栏目三</span>

以上是标签的排列方式,下面是网页内容的呈现方式,它是以标签的排列方式来呈现的,标准流就像流水,排在前面的标签内容前面出现,排在后面的标签内容后面出现。

CSS样式表_样式表_06

 

注意:

行内样式对某些样式是不支持的

 

盒子模型:

标准盒子模型:

CSS样式表_相对定位_07

 

定位:(相对定位,绝对定位,浮动)

   它允许你定义元素框相对于其正常位置应该出现的位置,或者相对于父元素、另一个元素甚至浏览器窗口本身的位置。


浮动:

   浮动的框可以向左或向右移动,直到它的外边缘碰到包含框或另一个浮动框的边框为止。由于浮动框不在文档的普通流中,所以文档的普通流中的块框表现得就像浮动框不存在一样。

举例:css浮动

请看下图,当把框1 向右浮动时,它脱离文档流并且向右移动,直到它的右边缘碰到包含框的右边缘:

CSS样式表_样式表_08

再请看下图,当框1 向左浮动时,它脱离文档流并且向左移动,直到它的左边缘碰到包含框的左边缘。因为它不再处于文档流中,所以它不占据空间,实际上覆盖住了框 2,使框 2从视图中消失。

如果把所有三个框都向左移动,那么框1 向左浮动直到碰到包含框,另外两个框向左浮动直到碰到前一个浮动框。

CSS样式表_样式表_09

 

如下图所示,如果包含框太窄,无法容纳水平排列的三个浮动元素,那么其它浮动块向下移动,直到有足够的空间。如果浮动元素的高度不同,那么当它们向下移动时可能被其它浮动元素“卡住”:

CSS样式表_相对定位_10

 

 

相对定位:相对于原来的位置进行偏移

   注意,在使用相对定位时,无论是否进行移动,元素仍然占据原来的空间。因此,移动元素会导致它覆盖其它框。

举例:

注意,在使用相对定位时,无论是否进行移动,元素仍然占据原来的空间。因此,移动元素会导致它覆盖其它框。

如图:

CSS样式表_绝对定位_11

 

绝对定位:

   设置为绝对定位的元素框从文档流完全删除,以其所在标签的父标签进行定位,如果其外面没有别的块级元素标签则以<body></body>为父标签进行定位。元素原先在正常文档流中所占的空间会关闭,就好像该元素原来不存在一样。元素定位后生成一个块级框,而不论原来它在正常流中生成何种类型的框。

 

   绝对定位使元素的位置与文档流无关,因此不占据空间。这一点与相对定位不同,相对定位实际上被看作普通流定位模型的一部分,因为元素的位置相对于它在普通流中的位置。

举例:

普通流中其它元素的布局就像绝对定位的元素不存在一样:

 

#box_relative {

  position: absolute;

  left: 30px;

  top: 20px;

}

 

CSS样式表_绝对定位_12

 

 

   相对定位是“相对于”元素在文档中的初始位置,而绝对定位是“相对于”最近的已定位祖先元素,如果不存在已定位的祖先元素,那么“相对于”最初的包含块。