关于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的时候,发现了两种方法,第一种是老师课程里所讲解的,第二种是自己实验的,对于双飞翼布局的原理一直有点模糊,麻烦老师给说明下,还有这两种实现方法的原理的差异!
正在回答
这两种方式,无论是margin-left,还是margin-right,设置的负边距只要大于自身的宽度,就会在上面为它开辟一个空间。老师的做法是margin-left和right的结合实现的效果,直接使用margin-right也是可以的,但是都要结合定位和浮动去实现。这俩只是运用的技巧点不同而已。祝学习愉快!
同学,我这么理解的,希望对你有帮助:
排列在一行内的3个浮动元素,如果有一个设置了margin-right为负值的话,它会向右移动并和右边的元素重叠一部分,重叠的部分就是设置的margin-right的值,然后由于左浮动,会一起向左运动,就会在右侧留出一部分新的空间,新空间的宽度就是margin-right的值。
同理:
right元素在下面出现是因为设置浮动之后,上面的总宽度不够,被挤下的。它的margin还是和其他浮动的元素作为同一行起作用的。设置了margin-right是负的自身宽度后,在上面一行内的右侧就预留出了220px的宽度,足够它显示了。
而且在实际开发中,这种布局不常用的,还是普通布局多,我们适当了解就行了。
- 参与学习 人
- 提交作业 11218 份
- 解答问题 36712 个
从一个不会编程的小白到一个老司机是需要过程的,首先得入门,学习基础知识,然后才能进阶,最后再到精通,本专题是你走进前端世界的不二选择!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星