手機(jī)H5頁(yè)面,信紙格子和文字對(duì)齊的問(wèn)題

image.png

藍(lán)色的橫線是背景圖片,文字是寫在text area里面,但是手機(jī)寬高是不同的,所以導(dǎo)致文字和后面的藍(lán)色橫線會(huì)重疊。

解決方法:
首先是橫線背景,切圖只需要切一條線的圖就夠了,圖片設(shè)計(jì)高度是48px,保留上面那條藍(lán)線。
把切圖作為text area的背景,background: url(....) repeat;

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

如果光是設(shè)置文本框行高,是解決不了問(wèn)題的,換一個(gè)寬高不同的手機(jī),文字和背景立刻就會(huì)錯(cuò)亂,重疊在一起。

所以,設(shè)置文本框行高的同時(shí),還是需要設(shè)置background-size,而且line-height和background-size的值,必須是固定值,也就是多少px。

設(shè)置固定值的思路:
假設(shè)手機(jī)的尺寸和設(shè)計(jì)圖一樣,是750*1334,那么text area的line-height設(shè)置成48px,文本框背景的background-size設(shè)置成100% 48px; 這樣的設(shè)置,文本和背景肯定能對(duì)齊。

再假設(shè),手機(jī)的尺寸和設(shè)計(jì)圖的一半,是375*667,那么text area的line-height設(shè)置成24px,文本框背景的background-size設(shè)置成100% 24px; 這樣的設(shè)置,文本和背景也肯定能對(duì)齊。

從這里就可以看出其中的關(guān)系了,就是一個(gè)比例的問(wèn)題。

用js來(lái)解決:

// 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`
};
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容