本节right移动问题
.right{
margin-left: -220px;
right: -220px;
width: 220px;
background: #30a457;
}
改后:
.right{
margin-right: -100%;
width: 220px;
background: #30a457;
}
对于右测right那个块还是没懂为什么要先设置margin-left:-220px,然后再设置right:-220px使得达到效果,,但是我胡乱试了一下:直接把margin-right:-100%,然后不用设置right值了,,直接就跑右上角去达到效果了,,,这只是胡乱试出来的,,还是不知道为什么会这样子。。。
正在回答
你好,代码具有灵活性,一种效果实现的方式会有很多种,这里,首先,
.right{ margin-left: -100%; right: -100%; width: 220px; background: #30a457; }
这个与老师的代码是统一个原理哟,margin-left: -220px;right: -220px;这里是先把向左移动一个2200px;然后在向,而100%,是先向左移动100%,再向右移动100%(这里的100%,是相对于父级来算的哟),这里原理是相同的哟。可以来测试下。
至于下面这个:
.right{ margin-right: -100%; width: 220px; background: #30a457; }
要考虑到中间部分哟,这里设左中右向左浮动,因为中间100%,左层和右层根本没有位置上去,正常的若设置浮动,因在一行显示,而这里设置margin-right: -100%;
这里主要应用在与浮动相反方向的负margin ,例:
#mydiv1 {float:left; margin-right:-100px;} 若两个元素都为浮动,且#mydiv1的元素设定margin-right为20px。这样#mydiv2会认为#mydiv1的宽度比原来宽度缩短了20px(因此会导致重叠)。但有意思的是,#mydiv1的内容不受影响,保持原有的宽度。 如果负margin等于实际宽度,则元素会被完全覆盖。这是因为元素的完全宽度等于margin,padding,border,width相加而成,所以如果负margin等于余下三者的和,那元素的实际宽度也就变成了0px。
祝学习愉快~
- 参与学习 人
- 提交作业 11218 份
- 解答问题 36713 个
从一个不会编程的小白到一个老司机是需要过程的,首先得入门,学习基础知识,然后才能进阶,最后再到精通,本专题是你走进前端世界的不二选择!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星