为什么用vertical-align效果出不来?是不是不能同时用margin?

为什么用vertical-align效果出不来?是不是不能同时用margin?

<!DOCTYPE html>

<html>

<head>

    <meta charset="utf-8">

<title>IMOOC</title>

<style>

*{margin: 0;padding: 0;text-decoration: none;}

header{width: 100%;background-color: black;}

.content{width: 1200px;height: 80px;margin: 0 auto;overflow: hidden;}

.content > a{float: left;color: white;display: block;font-size: 30px;display: table;/*margin: 20px 25px;*/}

img{vertical-align: middle;display: table-cell;}

nav{float: right;}

nav > a{float: left;width: 120px;height: 73px;color: white;text-align: center;line-height: 73px;}

nav > a:nth-child(1){background-color: red;padding-bottom: 7px;}

nav > a:nth-child(2){background-color: yellow;}

nav > a:nth-child(3){background-color: green;}

nav > a:nth-child(4){background-color: purple;}

nav > a:nth-child(5){background-color: orange;}

nav > a:nth-child(6){background-color: blue;}

header nav > a:hover{padding-bottom: 7px;} 

</style>

</head>

<body>

<header>

<div class="content">

<a href="#"><img src="http://img1.sycdn.imooc.com/climg//582e5f160001b17100400040.png"><!--  MYMOOC--></a>

<nav>

<a href="#">Home</a>

<a href="#">Course</a>

<a href="#">Actual</a>

<a href="#">Plan</a>

<a href="#">FAQ</a>

<a href="#">Notes</a>

</nav>

</div>

</header>

</body>

</html>


正在回答

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

3回答

同学你好,

1、嵌套的盒子不一定是div哦,换成其他标签也可以,主要是再嵌套一层。因为float浮动和display:table-cell;样式会有冲突,浮动的元素具有块元素特性,设置table-cell不会生效。

2、如果想要图片和文字全部都居中显示的话,外层可以不嵌套,给文字添加一个标签。例如:

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

样式:
http://img1.sycdn.imooc.com//climg/5dc77eaa094a844104160535.jpg

a标签中设置字体大小为0是为了清除间隙,因为图片行内元素会产生间隙。字体大小可以单独添加在span中。

自己再测试下。如果我的回答帮助到了你,欢迎采纳~

祝学习愉快!

好帮手慕言 2019-11-09 18:18:55

同学你好,如果要使用下面的这种方式垂直居中,

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

可以参考如下:

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

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

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

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

老师在视频中有讲过哦。

http://img1.sycdn.imooc.com//climg/5dc6921a0966d63115100850.jpg链接:https://class.imooc.com/lesson/753#mid=18765

同学可以再测试下。

如果还有其他疑问,建议在问答区重新提问,便于后期查找总结

如果我的回答帮到了你,欢迎采纳,祝学习愉快~

  • 提问者 迷失的小麦 #1
    实现的话必须父元素div,子元素div吗?我想同时让logo图片和文字居中?
    2019-11-09 21:23:35
好帮手慕言 2019-11-09 16:24:05

同学你好,不是的哦,是因为同学使用了table

如果要实现与效果图一致的效果,可以不设置对齐方式,使用默认的对齐方式就可以了,再使用margin调整一下位置。

代码参考:
http://img1.sycdn.imooc.com//climg/5dc6777d09da3bf505230445.jpg

同学可以测试下

祝学习愉快~

  • 提问者 迷失的小麦 #1
    vertical-align垂直对齐方式(只对行内元素有效) 解决方法:父元素display:table; 子元素display:table-cell; 这个是我记的笔记,为什么效果出不来?加上字MYMOOC之后又该怎么排版
    2019-11-09 16:37:15
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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