可行吗? 为什么左右两个块状元素需要设置高度才能垂直居中?不能由内容的高度决定吗

可行吗? 为什么左右两个块状元素需要设置高度才能垂直居中?不能由内容的高度决定吗

<!DOCTYPE html>

<html>

<head>

  <meta charset="UTF-8">

  <title></title>

  <style type="text/css">

    /*此处写代码*/

    *{margin:0;padding:0;}

    body{min-width:900px;font-family:"Microsoft Yahei" sans-serif;}

    .head{

        width:100%;height:100px;background:black;overflow:hidden;zoom:1;

    }

    .head img{float:left;}

    .head ul{list-style:none;float:right;font-size:16px;width:400px;margin:0 auto;line-height:100px;}

    .head li{float:left;padding:0 20px;}

    .head a{text-decoration:none;color:white;}

    .head a:hover{color:orange;}

    .container{padding:0 220px 0 220px;}

    .middle,

    .left,

    .right{position:relative;float:left;height:500px;}

    .middle{width:100%;background:pink;}

    .middle img{width:300px;height:250px;position:absolute;top:0;bottom:0;left:0;right:0;margin:auto auto;}

    .left{width:220px;margin-left:-100%;left:-220px;background:orange;font-size:12px;line-height:2.5em;

    }

    .left span{background:pink;margin-left:5px;}

    .left .con{width:220px;height:250px;position:absolute;left:0;right:0;top:0;bottom:0;margin:auto auto;}

    .right{width:220px;margin-left:-220px;right:-220px;background:#70dbdb}

    .right div{width:220px;height:250px;position:absolute;top:0;right:0;bottom:0;left:0;margin:auto auto;}

    h3{margin-left:5px;}

    input{width:210px;font-size:10px;height:30px;margin-left:5px;margin-bottom:10px;}

    .red{background:red;height:50px;font-size:20px;color:white;}

    .foot{

        background:black;width:100%;height:80px;position:fixed;bottom:0;color:white;}

        .foot ul{list-style:none;width:600px;margin:0 auto;}

        .foot li{float:left;line-height:80px;padding:0 15px;}

        .foot a{text-decoration:none;color:white;}

  </style>

</head>

<body>

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

  <div class="head">

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

      <ul>

          <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="middle">

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

      </div>

      <div class="left">

          <div class="con">

          <h3>课程推荐</h3>

          <p><span>职业路径</span>&nbsp;HTMLS 与CSS3实现动态网页</p>

          <p><span>职业路径</span>&nbsp;职业路径零基础入门Android</p>

          <p><span>职业路径</span>&nbsp;职业路径iOS基础语法与常用</p>

          <p><span>职业路径</span>&nbsp;PHP入门开发</p>

          <p><span>职业路径</span>&nbsp;JAVA入门开发</p>

      </div></div>

      <div class="right">

         <div> <h3>登录</h3><br/>

          <form>

              <input type="text" name="uesrname" size="30" placeholder="请输入登录邮箱/手机号"/>

              <br/><br/>

              <input type="passwords" name="paw" size="30" placeholder="6-16位密码,区分大小写,不能用空格"/><br/><br/>

              <input type="submit" value="登录" class="red"/>

          </form></div>

      </div>

  </div>

  <div class="foot">

      <ul>

          <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>


正在回答 回答被采纳积分+1

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

2回答
好帮手慕糖 2018-07-19 14:49:40

你好,符合的哦,建议:若是觉得圣杯布局掌握不牢固,可以在看下课程哦。另:当页面宽度缩小到900像素时,页面不再发生变化”最小宽度这个代码中是有进行设置哦,可以理解为:当页面缩小到900px的时候,在缩小页面不会缩小,设置min-width即可。

若能解决你的疑问,望采纳。

祝学习愉快~

好帮手慕糖 2018-07-19 14:26:26

你好,1、没有具体的高度的话,top与bottom都设置为0,就会把元素的高度扯开,会造成与父级高度一致,可以测试下哦。

2、底部也设置定位的话,由于设置分辨率不同,可能会造成如下,底部与上部分出现大量空白。建议:可以去掉底部的定位。底部上移是因为上个区域浮动导致的,建议:可以清除下浮动哦。

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

若能解决你的疑问,望采纳。

祝学习愉快~

  • 提问者 少女墨脱 #1
    噢噢 老师,那这个代码符合圣杯布局吗? 不是很懂这个说法(下面) “当页面宽度缩小到900像素时,页面不再发生变化”
    2018-07-19 14:39:27
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

0 星
前端小白入门系列课程
  • 参与学习           人
  • 提交作业       11218    份
  • 解答问题       36713    个

从一个不会编程的小白到一个老司机是需要过程的,首先得入门,学习基础知识,然后才能进阶,最后再到精通,本专题是你走进前端世界的不二选择!

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

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