justdoit123
V2EX  ›  CSS

要什么 vertical-align,拿起 transform: translateY()就是干

  •  
  •   justdoit123 · Aug 6, 2018 · 4798 views
    This topic created in 3012 days ago, the information mentioned may be changed or developed.

    用 vertical-align 调了 1 小时的 inline 垂直居中对齐,真 TM 是折磨。问题 1: 我很好奇各位 v 友是如何理解 vertical-align 这个 css 属性的?

    每个属性值好像都知道是干什么的,但它们用起来完全摸不着头脑,按了葫芦起了瓢。

    折腾一翻之后,我觉得理解 vertical-align 的原理是不可能的,这辈子都不可能去理解 vertical-align 的原理。

    最后我选择用 transform: translateY(2x),把中间凸起的那个 inline 元素强行摁了下去。感觉整个世界都清静了!

    问题 2:你们如何处理行内元素垂直居中的问题?

    21 replies  •  2018-11-07 21:48:21 +08:00
    xubeiyan
    xubeiyan
    Aug 6, 2018 via Android
    1
    觉得困难就 flex 吧,解决了不少问题
    sugarsalt
    sugarsalt
    Aug 6, 2018
    3
    flex 或者 grid
    justdoit123
    justdoit123
    OP
    Aug 6, 2018
    4
    @xubeiyan flex 也试过,不过嵌套有点多,没坚持下去,就整体 transform 了。
    0754
    0754
    Aug 6, 2018
    5
    flex 简单粗暴
    old9
    old9
    Aug 6, 2018 via Android
    6
    去看 spec
    molvqingtai
    molvqingtai
    Aug 6, 2018❤️1
    7
    vertical-align 这个属性确实蛋疼,各浏览器显示效果还有差异。
    一般开发用 vertical-align: middle; 来取消图片底部的空行
    对齐文字还是老老实实用定位吧
    yamedie
    yamedie
    Aug 6, 2018
    8
    父元素是 display:table, 子元素是 table-cell 的时候, 子元素可以使用 vertical-align:center 来垂直居中
    yamedie
    yamedie
    Aug 6, 2018
    9
    @yamedie 说错了是 vertical-align: middle...
    learnshare
    learnshare
    Aug 6, 2018❤️1
    10
    vertical-align 取决于字体的某些特征,属于字体和排版相关的知识,参考着两个链接应该能有个大概的认识
    https://zh.wikipedia.org/wiki/%E5%9F%BA%E7%B7%9A#/media/File:Typography_Line_Terms.svg
    https://developer.mozilla.org/zh-CN/docs/Web/CSS/vertical-align

    简单 translateY 不一定准确,这个偏移量取决于具体显示为什么字体,所以在不同设备、系统和浏览器中可能会有偏差
    justdoit123
    justdoit123
    OP
    Aug 6, 2018
    11
    @SakuraKuma 不错 不错,看着把字体、inline 讲得很详细
    justdoit123
    justdoit123
    OP
    Aug 6, 2018
    12
    @learnshare 是啊,translateY 在不同设备下 就可能 GG 了
    zbinlin
    zbinlin
    Aug 6, 2018
    13
    vertical-align 与字体有关的,用于字体排版,用来做布局的垂直居中对齐本就不是它的工作,只有之前由于没有支持垂直居中对齐的特性出现,被用来 hack 而已。既然现在已经有相关的特性出来了,用不用无所谓啦。
    windfarer
    windfarer
    Aug 6, 2018
    14
    wu67
    wu67
    Aug 6, 2018
    15
    flex 解决大部分问题, 实在不行的垃圾急性, relative 推过去...
    lynan
    lynan
    Aug 6, 2018
    16
    用 flex 之前,经常碰到图片和文字 baseline 不一样高的问题。
    用 flex 之后。写居中就是一把梭。 /doge
    blanu
    blanu
    Aug 6, 2018 via iPhone
    17
    @lynan 是啊,爽的不要不要的

    我现在文字居中用 line-height,其他居中通通 flex
    codermagefox
    codermagefox
    Aug 6, 2018
    18
    我打赌五毛钱,楼主不知道 vertical-align 是支持数值的.
    justdoit123
    justdoit123
    OP
    Aug 7, 2018 via iPhone
    19
    @codermagefox 还真是不知道
    codermagefox
    codermagefox
    Aug 7, 2018
    20
    @mistkafka #19 楼上一大堆都是不知道的...知道的话根本就不难调
    dalieba
    dalieba
    Nov 7, 2018 via Android
    21
    @SakuraKuma #2 看了一下,感觉压根就是照着西方文字的方式来的。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   3029 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 50ms · UTC 11:43 · PVG 19:43 · LAX 03:43 · JFK 06:43
    ♥ Do have faith in what you're doing.