CSS实现已知宽高的div垂直居中;自适应高度两列布局

最近笔试经常碰到这个题,平时写代码好像很少思考这方面的,我来做一个小小的总结,以备面试之需。。

关于元素垂直布局方面的问题还有很多,而且面试很喜欢问,比如两列内容不同的布局,高度自适应。我也写出来。


一、元素垂直居中:

既然用css实现,高和宽应该都是定值吧,如果是根据内容调整的是需要借助js动态调整的。

<div id='div1'></div>

html,body{height:100%}
#div1{
position:absolute;
width:300px;
height:200px;
top:50%;left:50%;
background:red;
margin:-100px 0 0 -150px;
}

被定位的元素必须是绝对定位的,先设一个初始位置,左上角在页面正中间,再用margin偏移

向左偏移width/2 ; 向上偏移height/2 ;需要我们自己计算,然后元素就居中了。

这是相对于body的,如果这个div是相对于父元素居中,就把父元素的posi设成relative,元素就能相对于父元素定位了。


二、2列布局高度自适应

面试中有时候会问到display有哪些属性,常用的none,block,inline都能想到,我会容易忽略table相关的属性。

这个问题用表格属性写比较容易。

<div id='div2'>
	<div id='ch1'>
		<ol>
			<li>ddssd</li>
			<li>ddssd</li>
			<li>ddssd</li>
			<li>ddssd</li>
		</ol>
	</div>
	<div id='ch2'>
		<ol>
			<li>ddssd</li>
			<li>ddssd</li>
			<li>ddssd</li>
			<li>ddssd</li>
			<li>refe</li>
			<li>refe</li>
			<li>ddssd</li>
			<li>ddssd</li>
			<li>ddssd</li>
			<li>ddssd</li>
			<li>refe</li>
			<li>refe</li>
		</ol>
	</div>
</div>


#div2{width: 100%;display: table;}
#ch1{display: table-cell;background: red;}
#ch2{display: table-cell;background: blue;color: white;}


demo效果图:


最近被笔试面试虐的心力交瘁啊,我要是早点发愤图强就好了哭

只要肯学,每天都在进步,什么时候都不晚!!!

加油加油!!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值