4-5编程?元素居中的冲突问题

4-5编程?元素居中的冲突问题

*{margin:0;padding:0;list-style-type:none;}
div.big{text-align:center;}
h3{background:#dbdbdb;padding:8px;border:thin solid #BDC4DE;margin-left:30%;margin-right:30%;}
ul{display:none;}
.div1:hover ul{display:block;}
.div2:hover ul{display:block;}
.div3:hover ul{display:block;}

这是我最先写的代码,后来发现不论给哪里(ul或相对应的class值)添加border属性,弹出的列表都没有边框

当改变h3的属性定义之后,即:

h3{width:100px;border:1px solid pink;}         
 ul{display:none;width:100px;border:1px solid pink;}

结果又不居中显示


但是加上“margin:quto;"之后,又可以居中显示。这是为何?

h3{width:100px;border:1px solid pink;margin:auto}         
 ul{display:none;width:100px;border:1px solid pink;margin:auto;}


正在回答

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

3回答

替换第二段代码后,外侧和里层的div 没有设置宽度,所以默认充满整个容器。text-align 只是对文字进行居中,所以没有实现整体居中,里面h3 和 ul 设置了宽度,设置了margin值后,使其针对父元素居中,希望解答你的疑惑,欢迎采纳,加油!

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

  • a1376743421 提问者 #1
    大概~略略微微~可可能能的稍稍微微了解了
    2018-05-03 20:59:10
提问者 a1376743421 2018-05-03 15:25:34

补充:最先的那段代码,补充border属性后可以显示边框。问题就是下面那两段代码,关于margin的问题

小于飞飞 2018-05-03 15:25:29

第一个问题,外层添加固定宽度,给ul 添加相应的边框,可以实现二级菜单有边框:

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

第二个问题,如果居中,外层div设置宽度同时设置margin:

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

主要原因是因为没有具体宽度,默认充满整个页面,在思考下,动手实践,加油!

  • 提问者 a1376743421 #1
    那既然div默认充满整个页面,且text-align:center;(内容针对元素居中),为何不居中现实
    2018-05-03 15:33:22
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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