???????????????????????????????????????????????????????????????????? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??????? ? ? ? ? ? —來自自學(xué)未入行的前端菜
1.由letter-spacing屬性導(dǎo)致文字不居中;
問題:在使用letter-spacing設(shè)定文字間距后,會(huì)導(dǎo)致文字整體不居中(原因似乎是間距不是2個(gè)文字同時(shí)移動(dòng)產(chǎn)生一個(gè)間距,而是左邊文字相對(duì)右邊文字移動(dòng)產(chǎn)生的間距,因此用了該屬性后會(huì)導(dǎo)致文字整體相對(duì)父元素不居中,分析的可能不是很有道理,只為自己理解起來更方便,更容易記住這種特殊)。
解決辦法:添加text-indent屬性,值與letter-spacing值相同,此時(shí)文字整體會(huì)顯示居中(具體解決原理還沒有想透徹,不過暫時(shí)性解決了問題)
該方法參考自:css - 設(shè)置letter-spacing之后設(shè)置文字text-align:center不能居中? - SegmentFault
2.p元素內(nèi)文字垂直方向居中;
問題:P元素內(nèi)文字垂直方向不居中的問題,單行可直接設(shè)置行高(處理起來比較簡單),但多行就比較麻煩:
解決辦法:假設(shè)P元素計(jì)算后高度為100px(包括上下margin值等),根據(jù)設(shè)定的文字大?。ㄟ@里假設(shè)為18px,一定要單獨(dú)設(shè)定font-size大小,防止因繼承樣式或者瀏覽器默認(rèn)字體大小導(dǎo)致問題),來估算一下多行文字外加行間距整體的高度(假設(shè)有3行文字,粗略估計(jì)多行文字整體高度為60px),然后設(shè)定上下margin值為20px(可根據(jù)視覺效果自行調(diào)整),設(shè)定行高(根據(jù)前面文字整體高度60px/3行)為20px,然后微調(diào)至你想要的效果即可!
該方法是我目前能想到的最好的,在此之前在網(wǎng)上有搜索過相關(guān)問題,只看到一個(gè)相關(guān)的(可能是我找的方式不對(duì)),但我覺得里面提供的幾種方法都不太友好(在這兒我就不貼出來了,有興趣的可以自行搜索)。
根據(jù)實(shí)際使用情況不定期更新,如有更好的方法可在評(píng)論中指出,歡迎探討:)