美文网首页
手机H5页面,信纸格子和文字对齐的问题

手机H5页面,信纸格子和文字对齐的问题

作者: IamaStupid | 来源:发表于2023-03-28 10:59 被阅读0次
image.png

蓝色的横线是背景图片,文字是写在text area里面,但是手机宽高是不同的,所以导致文字和后面的蓝色横线会重叠。

解决方法:
首先是横线背景,切图只需要切一条线的图就够了,图片设计高度是48px,保留上面那条蓝线。
把切图作为text area的背景,background: url(....) repeat;

把基本的样式写好后,就是最重要的一步了,textarea的line-height和background-size;

如果光是设置文本框行高,是解决不了问题的,换一个宽高不同的手机,文字和背景立刻就会错乱,重叠在一起。

所以,设置文本框行高的同时,还是需要设置background-size,而且line-height和background-size的值,必须是固定值,也就是多少px。

设置固定值的思路:
假设手机的尺寸和设计图一样,是750*1334,那么text area的line-height设置成48px,文本框背景的background-size设置成100% 48px; 这样的设置,文本和背景肯定能对齐。

再假设,手机的尺寸和设计图的一半,是375*667,那么text area的line-height设置成24px,文本框背景的background-size设置成100% 24px; 这样的设置,文本和背景也肯定能对齐。

从这里就可以看出其中的关系了,就是一个比例的问题。

用js来解决:

// vue文件
<textarea class="text-area" v-model="writeText" :style="textareaStyle"></textarea>

// backgroundSize: '100% 24px', lineHeight: '24px'
const dpi = window.innerWidth / 750;
const n = Math.floor(48 * dpi);
this.textareaStyle = {
      backgroundSize: `100% ${n}px`,
      lineHeight: `${n}px`
};

相关文章

网友评论

      本文标题:手机H5页面,信纸格子和文字对齐的问题

      本文链接:https://www.haomeiwen.com/subject/beitddtx.html