任务四:定位和居中问题总结

任务目标

  • 实践HTML/CSS布局方式
  • 深入了解position等CSS属性

任务描述

  • 实现 示例图 的效果
  • 灰色元素水平垂直居中,有两个四分之一圆位于其左上角和右下角。

任务注意事项

  • 思考不同情况下(如灰色高度是根据内容动态变化的)水平垂直居中的解决方案。
  • 动手试一试各种情况的组合,父元素和子元素分别取不同的 position 值。思考 position 属性各种取值的真正含义,尤其是 absolute 究竟是相对谁而言的。
  • 注意测试不同情况,尤其是极端情况下的效果。
  • 调节浏览器宽度,灰色元素始终水平居中。
  • 调节浏览器高度,灰色元素始终垂直居中。
  • 调节浏览器高度和宽度,黄色扇形的定位始终准确。
  • 其他效果图中给出的标识均被正确地实现,错一项扣一分。

参考资料

定位和居中问题总结

1、 CSS border-radius 属性

border-radius属性用于向元素增加圆角,与元素是否有border无关。

属性值格式:

四个值:第一个值应用于左上角,第二个值应用于右上角,第三个值应用于右下角,第四个值应用于左下角。

三个值:第一个值应用于左上角,第二个值应用于右上角和左下角,第三个值应用于右下角。

两个值:第一个值应用于左上角和右下角,第二个值应用于右上角和左下角。

一个值:应用于四个角。

数值型属性含义:圆角半径长度。

 

2、 CSS margin 属性

margin属性使用一个语句设置元素的四个margin值。

属性值格式:

四个值:第一个值上边距,第二个值右边距,第三个值下边距,第四个值左边距。

三个值:第一个值上边距,第二个值左边距和右边距,第三个值下边距。

两个值:第一个值上边距和下边距,第二个值左边距和右边距。

一个值:四个边距。

允许使用负值。

属性值:

长度:用px,pt,cm等定义边距长度。

%:用容器元素宽度的百分比定义边距长度。

auto:浏览器计算边距长度。

initial:设置边距长度为默认值。

inherit:继承父元素的边距长度。

负margin属性:

(1)非浮动元素负margin属性

①margin-top/margin-left:元素向上/左被拉进指定值。

②margin-bottom/margin-right:后续元素拖进来,覆盖此元素。

(2)浮动元素负margin属性

①一个浮动元素加上相反方向的负margin,则会使行间距为0且内容重叠。这对于创建1列是100%宽度而其他列是固定宽度(比如100px)的自适应布局来说是非常有用的方法。

②若两个元素浮动,且第一个元素设定margin-right为-20px,则第一个元素的宽度缩短-20px,但内容不受影响,导致第一个元素内容和第二个元素内容重叠。

当负margin-right的值为元素实际宽度时,元素被完全覆盖,因为元素宽度等于margin,padding,border,width之和,当负margin值等于余下三者的和时,则元素实际宽度变为0px。

 

3、 元素垂直水平居中:

(1)、文本或行级文本、图片元素

①对平对齐:text-align:center;

②单行垂直对齐:line-height=父元素高度

③多行文字垂直对齐:vertical-align:middle;

由于vertical-align只在inline-block水平的元素上起作用,此类元素包括:图片,按钮,单复选框,单行/多行文本框等HTML控件,和table-cell。所以需要将此元素设为:{display:table-cell;vertical-align:middle;}父元素设为{display:table;},即:

<div style=”display:table”>

        <div style=”display:table-cell;vertical-align:middle”>文字</div>

</div>

(2)、块级元素

①水平对齐:未设置width:auto时,margin-left:auto;margin-right:auto;

原因:当元素width:auto时,子元素将充满容器,margin为0,margin-left和margin-right无效。当width不为auto时,将margin-left和margin-right均设为auto,则左右边距值相等,水平居中。

②垂直居中:用table-cell的vertical-align:middle。见上。

③负margin:

水平:position:absolute;left:50%;margin-left=元素宽度的二分之一。(或使用position:relative;)

垂直:position:absolute;top:50%;margin-top=元素宽度的二分之一。或使用position:relative;)

④元素和容器元素宽度高度均已知,可通过position:absolute;或position:relative;设置元素top和left值实现水平和垂直对齐。

 

4、 已提交作业

代码地址:https://github.com/Nunawading2016/2017-IFE-Baidu/tree/master/任务四:定位和居中问题

 

Demo地址:http://htmlpreview.github.io/?https://github.com/Nunawading2016/2017-IFE-Baidu/blob/master/任务四:定位和居中问题/index.html

posted @ 2017-02-28 10:43  程序媛家  阅读(293)  评论(0编辑  收藏  举报