banner区域的div无法垂直居中

banner区域的div无法垂直居中

.banner{
   width:1200px;
   height:670px;
   position:relative;
   background:url(img/banner.jpg);
}
.banner > div{
   position:absolute;
   color:#fff;
   width:600px;
   height:600px;
   top:50%;
   left:50%;
   margin-left:-300px;
   margin-top:-300px;
}

麻烦帮我看看,为什么不能垂直居中

以下是结构部分

<section class="banner">
   <div>
       <h1>Welcome to Website</h1>
       <p>Lorem ipsum dolor sit amet,consectetur adipisicing elitconsectetur </p>
   </div>
</section>

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

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

3回答
不见归途 2017-05-08 11:58:23

banner没有居中

.banner{

   margin:0 auto;

   width:1200px;
   height:670px;
   position:relative;
   background:url(img/banner.jpg);
}

,其实div在banner里面已经居中了

小丸子爱吃菜 2017-05-08 11:55:33

目前在没有学到JS的情况下,无法自动去得知元素的高度,所以要垂直居中的话,必须要设置元素的高度,然后再进行设置,等后期学了JS之后,能用脚本去时实获取元素的高度。

另:margin-left打错了,是margin-top。

小丸子爱吃菜 2017-05-06 17:56:27

div可以不用设置高度,让里面的内容去撑开它的高度,设置div的top值为50%,margin-left的值为元素高度的-50%;

另:section的高度要和背景图片的高度保持一致。

祝学习愉快!

  • 你这个说错了吧,这样并不能垂直居中。margin-left改为margin-top,并且,你这种方法我觉还是得知道div高度。当内容多了高度改变了,margin-top不还是得重写?
    2017-05-08 11:47:10
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

0 星
HTML5与CSS3实现动态网页 2018
  • 参与学习       1887    人
  • 提交作业       4643    份
  • 解答问题       5760    个

有HTML和CSS基础,却不知道如何进阶?本路径带你通过系统学习,完成从“会做网页”到“做出好的动态网页”的蜕变,迈出成为前端工程师的第一步。

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

在线咨询

领取优惠

免费试听

领取大纲

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