100天学习前端计划 DAY 1 | CSS布局

302 阅读3分钟

我记得之前看W3SCHOOL上的布局部分,看了之后还是很懵逼,就是不知道为啥这样的。好了,现在学到了HF里的布局和定位了,清晰了不少。

主要内容是流体布局(float),冻结布局(frozen),凝胶布局(jello),以及position定位知识。

流是浏览器在页面上拜访HTML元素所用的方法。从最上面开始,往下显示各个元素,如果遇到块元素就每个块后面换一行。

内外边距——两个元素并排&垂直时怎么算?

并排:

当两个内联元素并排放置时(只有内联元素才可并排哦,块元素会换行的),假设A的外边距是10px,B的外边距是20px,那么他俩的之间就会有30px的空间。

垂直:

当两个块元素垂直放置时,浏览器会把这两个元素共同的外边距折叠在一起,折叠的外边距高度就是其中最大的外边距高度。

嵌套:

(嵌套这块怎么折叠我有点没弄明白,mark一下,后面查资料理解。) 内联元素也有外边距——涉及到嵌套问题。

浮动布局、冻结布局、凝胶布局

浮动布局

理解:浮动元素是被块元素忽略的元素,但内联元素知道它在哪里,会围着它(整个元素盒子)转。 也就是说,内联元素可以感知到浮动元素,但块元素不可以。

使用:将要浮动元素在html里进行调整,它外边距中的的top是对于在html里上一个块元素之间的距离。

float属性,只有两个值:left,right。如下代码所示,它将一个左右下外边距为10px,宽度为420px的div,浮动到页面左边。

#main {
  background:       #efe5d0 url(images/background.gif) top left;
  font-size:        105%;
  padding:          15px;
  margin:           0px 10px 10px 10px;
  width:            420px;
  float:            left;
}

当希望块元素也绕着浮动元素该怎么办呢?——使用clear. 如

clear:right;

代表这个元素右边不允许出现浮动内容。

冻结布局

将页面上所有元素都固定住,即用一个div将所有元素包裹住,并设置为宽度固定的布局叫做冻结布局,这可以避免由浮动布局带来的以下问题:1.内容栏浮动,则侧栏随着浏览器扩大会更宽。 2.侧栏浮动,则在手机,盲人阅读器上,会导致侧栏内容在页面前面。 特点:所有元素都被固定在浏览器的某个坐标上。

#allcontent{
  width: 800px;
  padding-top:5px;
  padding-bottom:5px;
  background-color: #675c47;
}

这样所有的内容都被固定为800px宽了。

凝胶布局

冻结的改进版本。 margin-left/right用auto,使之始终居中(是一种方法,但我感觉现在用的挺少的,以前的小站挺多这样的)

#allcontent{
  width: 800px;
  padding-top:5px;
  padding-bottom:5px;
  background-color: #675c47;
  margin-left:auto;
  margin-right:auto;
}

OK,先这么多,明天接着写定位的知识~