css中转换为行内样式的解决方案(css-inline)

(编辑:jimmy 日期: 2024/10/30 浏览:2)

css中转换为行内样式的解决方案(css-inline)

聊聊场景

  • 发送邮件
  • 在第三方网站中嵌入HTML
  • 从其他编辑器拷贝编辑好的文章发布到微信、今日头条等自媒体

在以上场景使用行内样式的兼容性要高很多,也可以保持原样式不变

解决方案

  • juice
  • inline-css

这两种方案功能和 Api 非常相似,这里就以 juice 为例

安装

npm i juice --save

使用

import juice from 'juice'
const html = `
<div class="test"><h1>测试Juice</h1></div>
<style>
div{
    width: 90%;
    height: 500px;
}
</style>
const result = juice(html)
console.log(result)

结果

<div style="width: 90%; height: 500px;">
<h1>测试Juice</h1>
</div>

ps:下面看下CSS - 行内块元素(inline-block)、标签显示模式转换 display

行内块元素(inline-block)
在行内元素中有几个特殊的标签——<img />、<input />、<td>,可以对它们设置宽高和对齐属性,有些资料可能会称它们为行内块元素。

行内块元素的特点:
(1)和相邻行内元素(行内块)在一行上,但是之间会有空白缝隙。
(2)默认宽度就是它本身内容的宽度。
(3)高度,行高、外边距以及内边距都可以控制。

标签显示模式转换 display
块转行内:display:inline;

行内转块:display:block;

块、行内元素转换为行内块: display: inline-block;

总结