最近在做一个富文本的模块。结合知乎和简书,最终选择了简书作为模板,在布局的时候,学到了很多东西。以前做项目的时候,我主要都是负责小模块的开发,整体布局一般是第三方UI包给出,或者组内其他人写,所以自己实践比较少。
先看下整体布局

toolbar
经过观察发现,toolbar是fixed布局,会随着整个视图的滚动而滚动。
1  | <style>  | 
Title
简书的标题字体为30px,用的是<input>标签。
我默认用H1吧,H1大小为2em,不使用<input>标签,而使用contenteditable="true"将div设置为可编辑。
1  | <style>  | 
用户输入区域
这块比较有趣,赤裸裸的欺骗大法。。。果然是各种曲线救国。。看下图:

欺骗人的感情,其实真正可编辑的区域就这么点地方,点其他地方会失去焦点。
这里也一样,将<div>标签设置为可编辑状态。
1  | <style>  | 
效果如下

代码如下:
1  | 
  | 
增加需求
需要在编辑区右侧增加几个给用户操作的按钮。上面的continer右侧增加几个用户操作按钮,可以随页面滚动,但是fixed会跟continer的flex布局冲突,目前没有更好的想法,只能暂时使用margin-left来处理。
最后效果如下:

所有代码:
1  | 
  |