关于3-3编程练习
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <style type="text/css"> * { margin: 0; padding: 0; } ul li { list-style: none; } body{ min-width: 900px; } .header, .footer { font-size: 20px; width: 100%; height: 100px; background-color: black; color: white; text-align: center; float: left; line-height: 100px; min-width: 1300px; } .nav-pic { float: left; } .nav-title { float: right; font-size: 20px; } .nav-title ul li { float: left; margin-right: 40px; } .nav-title a{ color: white; } .nav-title a:hover{ color: orange; } .main { clear: both; height: 800px; min-width:600px; padding-left: 400px; padding-right: 300px; } .middle,.left,.right{ float: left; position: relative; } .middle { width: 100%; height: 100%; background-color: #ADD8E6; } .left { width: 400px; height: 100%; background-color: yellow; /*方法1*/ margin-left: -100%; left: -400px; } .right { width: 300px; height: 100%; background-color: pink; /*方法1*/ /* margin-left: -300px; right: -300px;*/ /*方法2*/ margin-right: -300px; } .middle img{ position: absolute; left: 0; right: 0; top: 0; bottom: 0; margin: auto auto; } .right-content ul, .left-content ul { margin-top: 15px; } .right-content input { width: 100%; height: 60px; height: 35px; margin-bottom: 15px; border: none; } .right-content input[type=button] { background-color: red; } .left-content, .right-content { margin: 100px auto; width: 80%; } .left-content span { background-color: pink; } .left-content span, .middle-content span { line-height: 30px; margin-right: 15px; } /* .footer { text-align: center; line-height: 100px; float: left; }*/ .footer ul { height: 100%; width: 50%; margin: 0 auto; } .footer ul li { display: inline; list-style: none; margin: 0 10px 0 10px; } </style> </head> <body> <div class="header"> <div class="nav-pic"> <img src="http://img1.sycdn.imooc.com/climg//58c0d2d900016ce303000100.png"> </div> <div class="nav-title"> <ul> <a href=""><li>课程</li></a> <a href="#"><li>职业路径</li></a> <a href="#"><li>实战</li></a> <a href="#"><li>猿记</li></a> <a href="#"><li>手记</li></a> </ul> </div> </div> <div class="main"> <div class="middle"> <div class="middle-content"> <img src="http://img1.sycdn.imooc.com/climg//590037e00001fab706000400.jpg"> </div> </div> <div class="left"> <div class="left-content"> <h3>课程推荐</h3> <ul> <li><span>职业路径</span>HTML5与CSS3实现动态网页</li> <li><span>职业路径</span>零基础入门Android语法与界面</li> <li><span>职业路径</span>ios基础语法与常用控件</li> <li><span>职业路径</span>PHP入门开发</li> <li><span>职业路径</span>Java入门开发</li> </ul> </div> </div> <div class="right"> <div class="right-content"> <h3>登录</h3> <ul> <li> <!-- <textarea placeholder="请输入登录邮箱/手机号"></textarea> --> <input type="text" name="text" placeholder="请输入登录邮箱/手机号"> </li> <li> <!-- <textarea placeholder="6-16位密码,区分大小写,不能用空格"></textarea> --> <input type="text" name="text" placeholder="6-16位密码,区分大小写,不能用空格"> </li> <li> <input type="button" name="button" value="按钮"> </li> </ul> </div> </div> </div> <div class="footer"> <ul> <li>网站首页</li> <li>企业合作</li> <li>人才招聘</li> <li>联系我们</li> <li>常见问题</li> <li>友情链接</li> </ul> </div> </body> </html>
在设置right的时候,发现了两种方法,第一种是老师课程里所讲解的,第二种是自己实验的,对于双飞翼布局的原理一直有点模糊,麻烦老师给说明下,还有这两种实现方法的原理的差异!
18
收起
正在回答
3回答
这两种方式,无论是margin-left,还是margin-right,设置的负边距只要大于自身的宽度,就会在上面为它开辟一个空间。老师的做法是margin-left和right的结合实现的效果,直接使用margin-right也是可以的,但是都要结合定位和浮动去实现。这俩只是运用的技巧点不同而已。祝学习愉快!
海纳百川_
2018-01-10 11:53:20
同学,我这么理解的,希望对你有帮助:
排列在一行内的3个浮动元素,如果有一个设置了margin-right为负值的话,它会向右移动并和右边的元素重叠一部分,重叠的部分就是设置的margin-right的值,然后由于左浮动,会一起向左运动,就会在右侧留出一部分新的空间,新空间的宽度就是margin-right的值。
同理:
right元素在下面出现是因为设置浮动之后,上面的总宽度不够,被挤下的。它的margin还是和其他浮动的元素作为同一行起作用的。设置了margin-right是负的自身宽度后,在上面一行内的右侧就预留出了220px的宽度,足够它显示了。
而且在实际开发中,这种布局不常用的,还是普通布局多,我们适当了解就行了。
前端小白入门系列课程
- 参与学习 人
- 提交作业 11218 份
- 解答问题 36713 个
从一个不会编程的小白到一个老司机是需要过程的,首先得入门,学习基础知识,然后才能进阶,最后再到精通,本专题是你走进前端世界的不二选择!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星