为什么我这个占比宽度是100%的 显示的效果不理想 不能显示在一个视口内

为什么我这个占比宽度是100%的 显示的效果不理想 不能显示在一个视口内

margin-left: -100%;

left:-220px;http://img1.sycdn.imooc.com//climg/5cda77b9000185f219201048.jpg


正在回答

登陆购买课程后可参与讨论,去登陆

4回答

同学你好!
可以跟着老师讲的圣杯布局去理解,这里以视频中的数值为例:

.margin-left为负值是往左移动。 三个盒子本来浮动后要在一行显示 ,并且右小盒子应该在middle后面,也就是右边显示 。但是由于middle设置宽度100%把它们挤下去了 。此时如果强制性让小盒子往左移动 ,那么它会回到第一行 ,挤在middle上面 。

http://img1.sycdn.imooc.com//climg/5cda9970000117f908330503.jpg

右边的盒子因为要在右边显示,所以不需要往左移动太大。只需要移动它自身的宽度,让它整个区域叠在中间盒子上面,所以设置margin-left:-220px。(此时距离右边还剩父元素padding的距离,结合定位移动)

http://img1.sycdn.imooc.com//climg/5cda998d000151de15660535.jpg

之后想让右小盒子在最右边,所以设置right:-220px;

如果帮助到了你 欢迎采纳 祝学习愉快~

  • 为你浅笑 提问者 #1
    也就是说他的偏移不跟中间隔了多少个相对定位的盒子是吗?.left盒子之前的位置不用管?
    2019-05-14 18:45:07
  • 好帮手慕码 回复 提问者 为你浅笑 #2
    同学你好! 可以这么理解,left之前设置的位置是正确的~ 这块布局确实比较抽象,同学可以多看看视频理解一下。 祝学习愉快~
    2019-05-14 18:53:34
好帮手慕码 2019-05-14 17:49:29

同学你好!

想要左中右在同一视口:需要修改一下右侧

http://img1.sycdn.imooc.com//climg/5cda8f1a0001708a03910355.jpg

如果帮助到了你 欢迎采纳 祝学习愉快~

  • 提问者 为你浅笑 #1
    还是没明白,相对定位不是相当于原来的位置来说吗,那么.hidden最左,然后移行了.left再到.right,那么保留原来的位置的话,.left偏移能理解左外边距弄到-100%是为了让其先偏移到最右侧,然后再往左偏移-20%,这能稍微理解,但是右边是完全没明白为什么是这样的
    2019-05-14 18:28:02
提问者 为你浅笑 2019-05-14 16:52:01

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8" />

<title></title>

<style type="text/css">

/*此处写代码*/

* {

margin: 0;

padding: 0;

}

body{

width:100%;

}

.header,

.bottom {

width: 100%;

height: 100px;

background: black;

}

a {

text-decoration: none;

color: white;

}

ul li {

list-style: none;

display: inline;

}

.nov {

float: right;

height: 100px;

padding-right: 30px;

line-height: 100px;

}

ul li {

margin: 0 30px;

}

.foot {

text-align: center;

line-height: 100px;

}

.header {

position: fixed;

top: 0;

}

.bottom {

position: fixed;

bottom: 0;

}

.container{

width: 100%;

height: 1000px;

margin:100px 0px;

padding:0 20%;

}

.hidden,.left,.right{

position: relative;

float:left;

}

.hidden{

width:100%;

height:1000px;

background:pink;

}

.left{

width:20%;

height:1000px;

background: yellow;

margin-left: -100%;

left:-20%;

}

.right{

width: 20%;;

height:1000px;

background:blue;

margin-right: -100%;

left:-20%;

}

ol{

width: 150px;

height:200px;

margin:400px 45%;

}

</style>

</head>

<body>

<!-- 此处写代码 -->

<div class="header">

<img src="http://img1.sycdn.imooc.com/climg//58c0d2d900016ce303000100.png" />

<ul class="nov">

<li><a href="#">课程</a></li>

<li><a href="#">职业路径</a></li>

<li><a href="#">实战</a></li>

<li><a href="#">猿问</a></li>

<li><a href="#">手记</a></li>

</ul>

</div>

<div class="container">

<div class="hidden">

<img src="http://img1.sycdn.imooc.com/climg//590037e00001fab706000400.jpg"/>

</div>

<div class="left">

<ol>

<li>课程推荐</li>

<li>HTML基础</li>

<li>CSS样式</li>

</ol>

</div>

<div class="right">

<ol>

<li>相关课程</li>

<li>HTML基本结构</li>

<li>CSS网页布局</li>

</ol>

</div>

</div>

<div class="bottom">

<ul class="foot">

<li><a href="#">网站首页</a></li>

<li><a href="#">企业合作</a></li>

<li><a href="#">人才招聘</a></li>

<li><a href="#">联系我们</a></li>

<li><a href="#">常见问题</a></li>

<li><a href="#">友情链接</a></li>

</ul>

</div>

</body>

</html>

 


估计卡了   发了几次代码都没发全    这个是全代码

提问者 为你浅笑 2019-05-14 16:50:42

.hidden,.left,.right{

position: relative;

float:left;

}


问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师