最近在做一个富文本的模块。结合知乎和简书,最终选择了简书作为模板,在布局的时候,学到了很多东西。以前做项目的时候,我主要都是负责小模块的开发,整体布局一般是第三方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 |
|