Task3:三栏式布局
1.三栏式布局方法
方法一:inline-block方法
方法二:float布局
方法三:Flex布局(新)
方法四:圣杯和双飞翼布局(旧)
基本思路及区别:
1.两种布局的基本构思为:首先让中间层100%宽度占满同一高度的空间,在左右两层被挤出中间层所在区域时, 使用margin-left的负值将左右两个层拉回与中间层同一高度的空间,接下来调整左右两层到指定位置, 最后使用中间层的margin或padding属性使中间层的内容躲出左右两层占住的显示区。
2.两种布局的主要区别在于:圣杯布局采用一个父层包含中间、左右三个子层,设置父层的padding值腾出左右两层的显示区, 并对左右两层使用relative和left、right值调整位置;双飞翼采用中间、左右三层并列,再在中间层里设置一个子层, 设置中间层子层的margin值腾出左右两层的显示区,对左右两层使用margin值即可调整位置;
圣杯html结构:
圣杯css基本代码:
双飞翼html结构:
双飞翼css基本代码:
2.box-sizing 属性
取值说明
content-box:此值为其默认值,其让元素维持W3C的标准Box Model,也就是说元素的宽度/高度(width/height)等于元素边框宽度(border)加上元素内边距(padding)加上元素内容宽度/高度(content width/height)即:Element Width/Height = border+padding+content width/height。
border-box:此值让元素维持IE传统的Box Model(IE6以下版本),也就是说元素的宽度/高度等于元素内容的宽度/高度。(从上面Box Model介绍可知,我们这里的content width/height包含了元素的border,padding,内容的width/height【此处的内容宽度/高度=width/height-border-padding】)。
3.inline-block之间间距
元素间留白间距出现的原因就是标签段之间的空格,因此,去掉HTML中的空格,自然间距就木有了。考虑到代码可读性,显然连成一行的写法是不可取的,我们可以:
Task4:定位和居中问题
1.水平及上下居中
方法一:绝对定位的居中实现
方法二:margin:auto实现绝对定位元素的居中
width:100%;
height:100%;
display: -webkit-flex;
display: flex;
justify-content:center;
align-items:center;
.group:before,
.group:after {
content: “”;
display: table;
}
.group:after {
clear: both;
}
.group {
*zoom: 1;
}
width:100px;
height:50px;//高度是宽度的一半
background-color:#000;
border-radius:50px 50px 0 0;//左上和右上至少为height值
width:100px;
height:100px;
background-color:#cb18f8;
border-radius:50px;
(或者border-radius:50%)
```