任务四:定位和居中问题
任务目标
实践HTML/CSS布局方式
深入了解position等CSS属性
任务描述
实现如 示例图(点击打开) 的效果
灰色元素水平垂直居中,有两个四分之一圆位于其左上角和右下角。
任务注意事项
思考不同情况下(如灰色高度是根据内容动态变化的)水平垂直居中的解决方案。
动手试一试各种情况的组合,父元素和子元素分别取不同的 position 值。思考 position 属性各种取值的真正含义,尤其是 absolute 究竟是相对谁而言的。
注意测试不同情况,尤其是极端情况下的效果。
调节浏览器宽度,灰色元素始终水平居中。
调节浏览器高度,灰色元素始终垂直居中。
调节浏览器高度和宽度,黄色扇形的定位始终准确。
其他效果图中给出的标识均被正确地实现,错一项扣一分。
参考资料
HTML和CSS高级指南之二——定位详解:大漠老师手把手教你,这次彻底搞懂定位问题
Centering in CSS: A Complete Guide:完整讨论了不同情况下的居中方案,建议自己思考之后再看答案
Get HTML & CSS Tips In Your Inbox:有人写了一个作弊工具生成居中代码,但是看着代码你明白为什么吗
1 <!doctype html> 2 <html> 3 <head> 4 <meta charset="UTF-8"> 5 <title>task4</title> 6 <style> 7 *{ 8 margin: 0; 9 padding: 0; 10 } 11 .dd{ 12 width: 400px; 13 height: 200px; 14 background-color:#ccc; 15 position: absolute; 16 left:50%; 17 top:50%; 18 margin-top: -100px; 19 margin-left: -200px; 20 /*要让DIV水平和垂直居中,必需知道该DIV得宽度和高度,然后设置位置为绝对位置,距离页面窗口左边框和上边框的距离设置为50%,这个50%就是指页面窗口的宽度和高度的50%,最后将该DIV分别左移和上移,左移和上移的大小就是该DIV宽度和高度的一半。*/ 21 } 22 .lefttop{ 23 background-color: #fc0; 24 width: 50px; 25 height: 50px; 26 float: left; 27 border-bottom-right-radius: 50px; 28 } 29 .rightbottom{ 30 background-color: #fc0; 31 width: 50px; 32 height: 50px; 33 float: right; 34 position: relative; 35 bottom: -150px; 36 border-top-left-radius: 50px; 37 } 38 </style> 39 </head> 40 41 <body> 42 <div class="dd"> 43 <div class="lefttop"></div> 44 <div class="rightbottom"></div> 45 46 </div> 47 </body> 48 </html>