助教求助line-height问题

助教求助line-height问题

.banner>.wrap{
    width: 80%;
    margin: 0 auto;
    height: 100%;
    line-height: 200px;
}


.banner>.wrap>p{
    width: 100%;
    text-align: center;
    font-size:10px;
    line-height: 10px;
}
助教求解啊,我发现最外面的line-height起不到作用
只有p标签的line-height起到作用,同时我还把p的display改为 inline-block,有效了,外面里面都可以
试想,是不是line-height 对block的元素有覆盖或者其它作用求解求解


正在回答

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

6回答

明白你的问题了,你想设置p标签的文字在banner图片上处置居中显示,处理这个问题,我们建议使用绝对定位将文字定位在图片上,然后通过设置left和top值以及margin值来实现居中~

将块级元素转换为行内元素,因为你外边包裹的是块级元素,所以块级元素会依照自己设定的高度去撑开,再给行内块元素设置行高,就会实现居中显示;但如果元素是块级元素,他会撑开父级元素的盒子,如果你给元素的盒子设置的自己的行高,那么他就会使用自己的行高,父元素盒子的高度就是它自己的高度。

所以还是建议你是用定位属性来写,会比较易懂,且好处理!

祝学习愉快!

  • 慕数据6821453 提问者 #1
    !!!!!!哇塞!!!助教你好厉害!!!!但是 我不敢用绝对定位啊 用了绝对定位我怕的是 适配问题 如果写成 top:50%,会以p的上边为基准点(所以不是居中会比居中矮半个元素的宽度),如果写具体数值的话我怕换了电脑就没办法适配= = 所以头痛,助教可以方便讲解下怎么用 绝对定位来解决吗??!太麻烦啦!!
    2017-02-14 14:05:24
  • 小丸子爱吃菜 回复 提问者 慕数据6821453 #2
    如果使用定位,那么根据他的父元素进行定位,这样不管是什么样的显示器,不会出现你说的那个问题~如果你真的不喜欢用定位,那就可以考虑用你那个方法来写,总之可以实现就行~
    2017-02-14 14:20:15
  • 慕数据6821453 提问者 回复 小丸子爱吃菜 #3
    好的好的 谢谢你啦哇!!!情人节快乐~嘿嘿~情人节都不放假了啊~造反造反
    2017-02-14 14:22:42
提问者 慕数据6821453 2017-02-14 12:07:35

http://img1.sycdn.imooc.com/climg//58a28270000120bc18200660.jpg

助教你能理解我在说什么吗?我表达能力不怎么好!

小丸子爱吃菜 2017-02-14 11:48:07

你不用注释,就写一个小的页面,类似这样的,不用太复杂,就直接点明这个问题就行

http://img1.sycdn.imooc.com/climg//58a27df4000194b007320708.jpg

  • 提问者 慕数据6821453 #1
    助教助教~我带图上代码了 麻烦你帮我看一下。。谢谢!!!
    2017-02-14 12:08:14
  • 提问者 慕数据6821453 #2
    助教你看到了吗~看到了告诉我一声 我怕你没收到!!谢谢
    2017-02-14 13:25:25
小丸子爱吃菜 2017-02-14 11:39:23

你说的这个效果我想象不出来呀,这样吧,你写个简单的demo,然后发过来我看一下代码和效果!可否?

  • 提问者 慕数据6821453 #1
    好的好的 怎么发给你 我把二种情况 注释一下
    2017-02-14 11:45:04
小丸子爱吃菜 2017-02-14 11:34:26

要使用line-height,line-height的值要和height的值保持一致,才能实现垂直方向居中的效果~

  • 提问者 慕数据6821453 #1
    助教助教,我知道line-height和height的值一样的时候会居中 但是如果我内部是p元素的 外面的line-height会无效的但是如果我是inline block的话 就可以。我想知道为什么
    2017-02-14 11:36:51
提问者 慕数据6821453 2017-02-14 09:04:14

58a257820001e8ce05000262.jpg

58a25786000179b505000293.jpg

图片已经附上,简单的说一下 外面的一层div.class = "wrap" 然后里面包裹了一个换行的 p标签,
这道题是要p标签居中显示,左右没有问题,问题出在垂直,好了那么问题来了: 最开始我在用p
的时候 我知道p 为block 但是试了很下发现p 外面的一层(.wrap)的line-height失效了, 只会采用
p自己的line-height如果不写的话会直接继承过来所以还是只有p标签的行高发生改变,外面一层的行高失效了,
最后我把p改成inline-block 里外的line-height都有效果 。我就想知道 为什么block元素的时候 就不可以?

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

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

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

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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