网页布局学习日记(2017.5.17+6.26修正)

CSS的三种定位机制

1.标准文档流(normal flow):从上到下,从左到右,输出文档内容,由块级元素和行级元素组成;

块级元素:从左到右撑满页面,独占一行,触碰到页面边缘时,会自动换行
常见的块级元素:div, p, h, ul, ol, li, dl, dt, body等
行级元素:能在同一行内显示,不会改变HTML文档结构
常见的行内元素:span, strong, a......
行内块状元素:img, input等(img一般看作行内元素)

可以使用display改变生成框类型。即设置display:block就可以将行内元素改成块状元素,display:none可以使生成的元素根本没有框,这样这个框及所有内容就不再显示,不占用文档的空间。

css有三种基本的定位机制:普通流、浮动和绝对定位。除非专门定义,否则所有元素都在普通流中,按HTML中元素顺序定位。

块级框从上到下垂直排列,框之间的垂直距离由框的垂直外边距计算出来。
行内框一行中水平排列,可以使用水平内边距、边框和外边距调整他们的水平间距。但是,垂直内边距,边框和外边距(margin-left/right)不影响行高。另外,显示地设置行内框的高度或宽度也没有什么影响。唯一修改行内框尺寸的方法是修改行高或者水平边框、内边距或外边距。

如果设置display:inline-block,会让元素像行内元素一样水平依次排列。但是,框的内容仍然符合块级框的行为,例如能够显示地设置宽度、高度、垂直外边距和内边距。

2.相对定位——仍处于普通流中

相对定位是一个非常容易掌握的概念。如果对一个元素进行相对定位,它将出现在它所在的位置上。然后,可以通过设置垂直或水平的位置,让这个元素相对于他的起点移动。

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

#mybox{
        position:relative;
        left:20px;
        top:20px;
}```

![相对定位图示](http://upload-images.jianshu.io/upload_images/3878531-6849759463843152.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

###3.绝对定位(absolute positioning)——与普通文档流无关,不占据空间
普通流中其他元素的布局就像绝对定位的元素不存在一样。
>绝对定位是相对于最近的已定位祖先元素来定位,如果不存在已定位的祖先元素,那么就像对于body定位。
因为绝对定位与文档流无关,所以他会覆盖页面上其他元素。可以通过设置z-index属性来控制这些框的叠放次序。z-index值越高,框在栈中的位置就越高。

相对与最近的祖先元素来定位绝对定位的元素,能够使子安一些有意思的效果。例如:假设希望让一个文本段落对准一个大框的右下角,只需对包含框进行相对定位,然后相对于这个框对段落进行绝对定位:

branding{

    width:70em;
    height:10em;
    position:relative;

}

branding .tel{

    position:absolute;
    right:1em;
    bottom:1em;
    text-align:right;

}


Tel:0845 8123 8836


```



  
    
    
    Made with Thimble
    
  
  
  
    

团队介绍


关于你们团队的介绍

可以给我们解释一下团队名称的来历,或是分别介绍你们的团队成员

百度前端技术学院是一个为大学生创办的免费的前端技术实践、分享、交流平台。由百度校园招聘组、百度校园品牌部、百度前端技术部以及多个百度的前端团队联合创办。学院组织了一批百度在职工程师,精心编写了数十个实践编码任务,将技术知识点系统有机地串联在各个充满趣味与挑战的任务中,同学们通过实际地编码练习来掌握知识,再辅以互相评价、学习笔记等方式,加深对于学习内容的理解。

2017年我们除了前端技术,还特别增设了iOS及Android移动端开发的学习任务内容,提供给有兴趣在移动端开发的同学。我们还专门开设了数据可视化、WebGL的班级,让大家能够参与到最新潮、炫酷的技术学习中来,体会通过技术创造美好的幸福体验。

个人logo 80*80
个人logo 80*80
个人logo 80*80
个人logo 80*80
``` >固定定位是绝对定位的一种。差异在于固定元素的包含块是视口。这使我们能够闯进总是出现在窗口中相同为值的浮动元素。使得页面在滚动时一直出现在屏幕的固定位置。 ###4.浮动——不在文档的普通流中 最后一种可视化格式模型是浮动模型。浮动的框可以左右移动,直到他的外边缘碰到包含框或者另一个浮动框的边缘。因为浮动框不在文档的普通流中,所以普通流中的块框表现的像浮动框不存在一样。 ![浮动图示](http://upload-images.jianshu.io/upload_images/3878531-d6709a95abd3d974.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) 如图3-13所示,当把框1向右浮动时,他脱离文档流并且向右移动,直到它的右边缘碰到包含框的右边缘。 在图3-14中,当把框1 向左浮动时,他脱离文档流并且向左移动,知道它的左边缘碰到包含框的左边缘。因为他不再属于文档流中,所以他不占据空间,实际上覆盖了框2,使框2从视图中消失。如果把所有3个框都向左浮动,那么框1向左浮动直到碰到包含框,另外两个框向左浮动知道碰到前一个浮动框。 ![空间不足情况](http://upload-images.jianshu.io/upload_images/3878531-3876336bc521a983.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) ###行框和清理 前一节指出,浮动会让元素脱离文档流,不再影响不浮动元素,实际上,并不完全如此。如果浮动元素后面有一个文档流的元素,那么这个元素的框表现得像浮动根本不存在一样。但是,框的文本内容会受到浮动元素的影响,会移动以留出空间。用技术术语来说,浮动元素旁边的行框被缩短,从而给浮动元素留出空间,因此行框围绕浮动框。实际上,创建浮动框使文本可以围绕图像。 要想组织行框未然在浮动框的外边,需要对包含这些行框的元素应用clear属性。clear属性的值可以是left,right,both或none,它表示框的哪个边不应该挨着浮动框。我以前总是以为clear属性会自动地抵消前面的浮动。但是,实际情况有意思的多。在清理元素时,浏览器在元素顶上添加足够的外边距,使元素的顶边缘垂直下降到浮动框下面。 ![](http://upload-images.jianshu.io/upload_images/3878531-22942ed8cc18e23d.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) >浮动元素脱离了文档流,不影响周围元素。但是,对元素进行清理实际上是为前面的浮动元素留出了垂直空间。 这是一个有用的布局工具,它让周围的元素为浮动元素流出空间,这解决了前面你看到的绝对定位的问题——垂直高度的改变不影响周围的元素,从而破坏了设计。 我们来更详细的看一下浮动和清理。假设有一个图片,你不希望让它浮动到一个文本块的左边。你想将这个图片和文本包含在另一个具有背景颜色和边框的元素中。你可能会编写下面的代码:



some text


.news{
background-color:gray;
border:solid 1px black;
}
.news img{
float:left;
}
.news p{
float:right;
}```

网页布局学习日记(2017.5.17+6.26修正)_第1张图片
微信图片_20170626115056.jpg

但是,因为浮动元素脱离了文档流,所以包围图片和文本的div不占据空间。如何让包围元素在视觉上包围浮动元素呢?需要在这个元素中的某个地方应用clear.可惜这个示例中没有现有的元素可以清理,所以需要在最后一个段落下面添加一个空元素并且清理它。

![]( )

some text


.news{ background-color:gray; border:solid 1px black; } .news img{ float:left; } .news p{ float:right; } .clear{ clear:both; }

但是这种做法会添加不必要的代码。还可以不添加clear,而是选择浮动div容器:

![]( )

some text

.news{ background-color:gray; border:solid 1px black; float:left; } .news img{ float:left; } .news p{ float:right; }

这样会产生我们想要的结果,但是,下一个元素会受到这个浮动元素的影响。为了解决这个问题,有些人选择浮动布局中的几乎所有东西,然后使用合适的元素(常常是站点的页脚)对这些浮动元素进行清理。
overflow属性定义在包含的内容对于指定的尺寸太大的情况下元素该怎样。在默认情况下,内容会溢出到框外,进入相邻的空间。应用值为hidden或者auto的overflow元素有一个副作用,就是自动清理包含的任何浮动元素。因此这是一种有用的元素清理方法,不需要添加额外的标记。这个方法并不适合所有的情况,因为设置框的overflow属性会影响它的表现。更具体地说,这种方法在某些情况下会产生滚动条或者截断内容。

你可能感兴趣的:(网页布局学习日记(2017.5.17+6.26修正))