各大著名公司的一道css面试题

前言

 

其实这道题很久之前了,但是有同学最近再次遇到了就说说吧,简单记录一下。

 

虽然个人觉得过于考试化,但是还是很能看出你的css功底广度(遇到查过记录过)

 

 

题目

 

 

使用CSS实现未知尺寸的图片在已知容器中水平和垂直居中。

 

 

html

 

 

<div class="container">
   <img src="" alt="" />
</div>

 

 

css 

 

 

.container{
    border:1px solid #000;
    width:180px;
    height:180px;
    line-height:180px;
    text-align:center;    //水平居中
    display:table-cell;
    vertical-align:middle;
    *font-size:157px;   // 高度*0.873的算法
}

.container img{
   vertical-align:middle;  //图片垂直居中
}
 

 简单地补充一些hack的知识:

 

1。 关于 *

IE都能识别*;标准浏览器(如FF)不能识别*

   IE6能识别*,但不能识别 !important, 
   IE7能识别*,也能识别!important; 
   FF不能识别*,但能识别!important;

IE6IE7FF
*×
!important×

 

 

2。 关于display: table-cell

 

 

table-cell此元素会作为一个表格单元格显示(类似 <td> 和 <th>)

 

浏览器支持上IE8+以及其他的主流浏览器(IE6和7不支持)

 

 

 

扩展阅读参考:

 

1. http://www.zhangxinxu.com/study/200908/img-text-vertical-align.html

2. http://www.wufangbo.com/css-vertical-and-horizontal-center

3. http://www.planabc.net/2008/05/26/img_vertical_center_solution/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值