关于居中布局的问题
有几个问题想要请教一下:
1、div使用 absolute 绝对定位脱离常规流以后,是不是 text-align 的水平居中就会失效呢,如果是,那此时需要怎样才能使得 div 的内容水平居中显示?
如代码所示:由于在 bottom div 内我使用了无序列表来排列导航项,此时我可以使用 float:left 使得列表项横向排列,但在这种情况下,我 bottom 选择器内使用 text-align 属性无法使得列表居中,相反,当我使用display: inline-block;使得列表项横向排列以后,text-align 属性可以正常使得列表居中显示了
2、为什么有时候在 div 内使用 line-height:(等于 div元素高度)实现不了垂直居中呢?是受到了哪些因素的影响?
如代码所示,bottom 选择器内设置了高度为60px,为什么设置 line-height 为60px 时却并不能使得列表项垂直居中显示呢?此时只能调整 line-height 为30px或者设置left:0;right:0;margin:auto;以后可以实现垂直居中,但是高度一旦变化以后就需要随之调整(不是高度的50%的比例)才能适应垂直居中。
有什么方法能设置自动适应 div 的高度变化而实现内容自动垂直居中的吗?
有了解的童鞋或者老师,烦请解答一下,谢谢!做了几次练习题,都是被这个问题困扰着。
.bottom{ width: 100%; height: 60px; background: black; position: fixed; bottom:0; text-align: center; /*display: inline-block;*/ /*line-height: 60px;*/ /*left:0; right:0; margin:auto;*/ } .bottom ul li { float: left; text-decoration: none; list-style: none; color: white; font-family: "微软雅黑"; /*text-align: center;*/ /*margin-right: 30px;*/ /*display: inline-block;*/ margin: auto 30px; }
<div class="bottom"> <ul> <a href="#"><li>网站首页</li></a> <a href="#"><li>企业合作</li></a> <a href="#"><li>人才招聘</li></a> <a href="#"><li>联系我们</li></a> <a href="#"><li>常见问题</li></a> <a href="#"><li>友情链接</li></a> </ul> </div>
正在回答
第一个问题:
对于设置定位元素的居中方法:
假设该元素宽和高度都为200px,设置水平居中,先定位左50%,然后margin-left:负元素宽度一半,如left:50%,margin-left:-100px;,垂直top:50%,margin-top:-100px;
第二个问题:
首先将相应元素默认样式去掉。
a标签写在li内
参考如下:
*{margin:0px;padding: 0px;} .bottom{ width: 100%; height: 60px; background: black; position: fixed; bottom:0; text-align: center; line-height: 60px; } .bottom ul li { float: left; text-decoration: none; list-style: none; color: white; font-family: "微软雅黑"; margin: auto 30px; }
希望解答你的疑惑,加油!
- 参与学习 人
- 提交作业 11218 份
- 解答问题 36713 个
从一个不会编程的小白到一个老司机是需要过程的,首先得入门,学习基础知识,然后才能进阶,最后再到精通,本专题是你走进前端世界的不二选择!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星