聊聊场景
- 发送邮件
- 在第三方网站中嵌入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
;
总结