淘宝面试题之--图片、多行文本、块级等在父级盒子里怎么做居中

标签(空格分隔):display:table-cell 块转成行内块后的垂直居中


1:图片、多行文字、块转成行内块后的水平垂直居中

序:

图片、多行文字、块转成行内块的水平垂直居中问题,在水平方向上都不难实现,主要难在垂直方向上。
在 淘宝UED 招聘 中有这样一道题目:

“使用纯CSS实现未知尺寸的图片(但高宽都小于200px)在200px的正方形容器中水平和垂直居中。”

工作中最常遇到的一个问题,很有代表性。
问题的关键在于,行内块img不同于普通的行内块元素,默认基线对齐等不太一样,要实现垂直居中,不是简单父级:line-height==height能解决的

示例1:

现在我要在logo即h1>a>img的结构中,让img垂直居中在a/h1中。这也是做每个网站的logo时常常遇到的问题。水平都不难,父级给tac即可。

html:

<div class="nav">
    <h1 class="logo"><a href="###">![](images/logo.png)</a></h1>
</div>

css:

        h1{
            height: 90px;
        }

        h1  a{
            display: inline-block;
            height: 90px;
            background: #ff6600;
            //父级身上:主要是这两条
            display: table-cell;
            vertical-align:middle;
            }
        h1  a img{
             //自己身上:
            vertical-align: middle;
        }

效果图:


Paste_Image.png

tip:display:table-cell

  • 一些刚接触前端的童鞋对display:table-cell可能不太知道,其实圈里已经是很成熟老套的做法了,简单说明下:

display:table-cell属性就是让标签元素以表格单元格的形式呈现,类似于td标签。目前IE8+以及其他现代浏览器都是支持此属性的,但是IE6/7不支持,这一事实在传统前端项目中大大制约了display:table-cell属性在实际项目中的应用。但是在如今这样的前端时代里,兼容到IE8几乎也是很少见的了。一般都是现代浏览器即:IE9+,兼容性不用太担心了。除非你们公司的项目目标人群就是那些... ...此处自行脑补。

  • 单元格有一些比较特别的属性,例如元素的垂直居中对齐,关联伸缩等,所以display:table-cell还是有不少潜在的使用价值的.

与其他一些display属性类似,table-cell同样会被其他一些CSS属性破坏,例如float,position:absolute,所以,在使用display:table-cell与float:left或是position:absolute属性尽量不用同用。设置了display:table-cell的元素对宽度高度敏感,对垂直方向的margin值无反应,响应padding属性,具有td元素的特性。

  • display:table-cell 在“图片、多行文字的水平垂直居中”中应用较多

示例1扩展:语义好更好的logo部分的处理。

logo以背景形式给,有网站名字的文字描述。毕竟爬虫在爬取站点时优先拿到h1的信息,SEO更好。

html:

<h1 class="logo_tit">
    <a href="//www.jd.com" class="logo_tit_lk">京东</a>
</h1>

css:

.logo_tit_lk {
    overflow: hidden;
    display: block;
    width: 190px;
    height: 170px;
    background-image: url(//misc.360buyimg.com/mtd/pc/index/home/images/logo.v2.png);
    background-repeat: no-repeat;
    text-indent: -999px;
}

1:块级在父级盒子里怎么做水平垂直居中

序:

这个也是工作中常常遇到的问题。这个就是比较好解决和想到的。比较典型的做法:下边是emmet语法简写,如果你看不懂。请看下边代码。

父级:
por
子级:
poa
top:50%
left:50%
mt:--自身高度/2
ml:--自身 宽度/2

示例2:

html:

<div class="nav">
    <div class="navIn"></div>
</div>

css:

        .nav {
            height: 200px;
            background:hotpink;
            //核心代码
            position: relative;
        }

        .navIn {
            height: 100px;
            width: 100px;
            background: lightblue;
            //核心代码
            position: absolute;
            top: 50%;
            left: 50%;
            margin-left: -50px;
            margin-top: -50px;
        }

效果图:

父级占满屏幕

还有一种方式就是,将内部块转成行内块来处理,但是垂直方向上还是不能使用LH=H的方式去处理的,而是还需要采用display:table-cell;但是父级宽度必须设置,否则由内容宽度撑开。

        .nav {
            /*这么处理,宽度就必须设定了*/
            width: 999px;
            height: 200px;
            background: hotpink;
            
            text-align: center;
            display: table-cell;
            vertical-align: middle;
        }

        .navIn {
            height: 100px;
            width: 100px;
            background: lightblue;
            
            display: inline-block;
            vertical-align: middle;
        }

效果图:

父级宽度单设,注意右侧有留白

----------------------------------------------------喜欢就动动小手哈。------------------------------------------------------

--------------------------------------你的支持是洒家-麦壳-macrolam前进的动力--------------------------------------

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,324评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,356评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,328评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,147评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,160评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,115评论 1 296
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,025评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,867评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,307评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,528评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,688评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,409评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,001评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,657评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,811评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,685评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,573评论 2 353

推荐阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,748评论 1 92
  • •前端面试题汇总 一、HTML和CSS 21 你做的页面在哪些流览器测试过?这些浏览器的内核分别是什么? ...
    Simon_s阅读 2,220评论 0 8
  • 收听音频,戳链接,旧号itclan已暂停使用,欢迎关注微信itclanCoder公众号可收听更多音频 前言 关于网...
    itclanCoder阅读 8,172评论 3 30
  • ======= SEO专用 table-cell 定高水平垂直居中 不定高水平垂直居中 单行定高水平垂直居中 单行...
    木白no1阅读 10,410评论 1 15
  • 有一段时间,我曾变得自信无比,相信自己,相信自己可以闯出一番天地。于是我不顾一切地选择现在的路,读博士,来日本。 ...
    麻鲨苏阅读 329评论 0 0