javascript - CSS letter-spacing 和 line-through

标签 javascript html css

有没有任何 css/js 解决方案如何在使用 letter-spacing 时使文本居中? ?虽然单行文本可以实现居中 line-through感谢伪元素 ::before::after ,但这在像 <p> 这样的 block 元素上是不可能的或 <div> .

h2, p {
  letter-spacing: 1em;
  text-decoration: line-through;
  text-align: center;
}

p {
  letter-spacing: .5em;
}
<h2>Random text</h2>
<p>Lorem ipsum dolor sit amet, at nemore aperiri cum. Regione honestatis ei quo, ne eos aliquid mediocrem, ne viris quodsi epicuri vel. Ex dolorem atomorum dissentiunt nam, iudico minimum cotidieque eum et, has novum mnesarchum id. Libris blandit liberavisse mei in. Ius viris posidonium ei, ut quas viris albucius eum, mei eu indoctum reformidans. Et usu sumo invidunt, cu vix veri dolore propriae.</p>

最佳答案

这是一个可以依赖背景和 box-decoration-break 的想法创建直通线,您可以轻松调整其大小和位置。您基本上将从总宽度中删除一个字母间距。

重要的是要注意背景需要应用于内联元素:

p {
  letter-spacing: .5em;
  text-align:center;
}

p span {
  background:    
    linear-gradient(#000,#000) /* Coloration */
    0 calc(50% + 0.2ex) /* position */
    /
    calc(100% - .5em) 1px  /* width height */
    no-repeat;
 -webkit-box-decoration-break: clone;
  box-decoration-break: clone; 
}
<p><span>Lorem ipsum dolor sit amet, at nemore aperiri cum. Regione honestatis ei quo, ne eos aliquid mediocrem, ne viris quodsi epicuri vel. Ex dolorem atomorum dissentiunt nam, iudico minimum cotidieque eum et, has novum mnesarchum id. Libris blandit liberavisse mei in. Ius viris posidonium ei, ut quas viris albucius eum, mei eu indoctum reformidans. Et usu sumo invidunt, cu vix veri dolore propriae.</span></p>

关于javascript - CSS letter-spacing 和 line-through,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56377411/

相关文章:

javascript - Slick.js 在第一个和最后一个元素之间平滑过渡

javascript - 单击选项卡时在 HTML 中跳转

javascript - 包含单选按钮的 jQuery .clone() HTML 表单 - 保留特定于克隆元素的单选事件

html - 我的 HTML 专栏在哪里?

jquery - 使用 jquery 关闭可折叠菜单

javascript - 延迟 jQuery.each 结果

javascript - 如何恢复到原始 CSS?

javascript - 如何在下载前更改文件的扩展名?

html - 对齐灵活容器中的 float DIV

css - Angular + ng bootstrap 模式没有出现