0%

转载地址:https://segmentfault.com/a/1190000023362699

1
2
3
4
5
<span style="display: inline-block;width: 50px;>
<p style="display: inline-block;white-space: nowrap;margin-left: 50%;transform: translateX(-50%);">
黄浦哇哈哈乐百氏777哇哈哈很好的呀区
</p>
</span>

要点:

  1. 子元素要设置不换行,并且是个内联块级元素,这样文本就拥有了实际宽度。
  2. 基于父元素50%宽度向右平移,将基准点定位在父元素中心点,即margin-left: 50%。
  3. 基于文本自身的宽度向左偏移一半的文本长度,即transform: translateX(-50%)。

起因

接到一个需求是实现 Chrome 浏览器自带的「Ctrl+F」搜索功能。起初想当然的以为直接正则+replace 不就搞定了么。但后边发现直接粗暴的 innerHTML + replace 会导致 Vue 的响应式以及事件绑定都失效。所以得想其他的法子。

阅读全文 »