在HTML&CSS中,如何最科學地將文字顯示在圖片正中間?
上面這張圖是一個APP的界面。我正在學習HTML和CSS。我想請問,如何在HTML中實現上面這樣圖片的排版。【我不是伸手黨】:我百度了一下,嘗試了兩種方法,但是感覺不太好,問題在於百度給我的答案對於各個瀏覽器並不普遍適用,也有的方法是div層太多,我覺得語義化不太好。
【為什麼不去segmentdefault或者stack overflow問這樣的問題】:因為知乎的大神多,而且瀏覽量大,我覺得在這裡會更迅速的找到答案。【我希望得到的解答是】很有經驗的前端工程師會選擇用什麼樣的方法實現這樣的效果?
==========在此謝過了!
搜索關鍵詞:Centering in the Unknown。
看完 CSS Tricks 上這篇文章你應該對居中了如指掌了。
在不需要兼容低版本瀏覽器的時候我喜歡用 margin + transform 解決。
CSS製作圖片水平垂直居中
CSS實現垂直居中的5種方法
http://www.zhangxinxu.com/wordpress/2013/11/margin-auto-absolute-%E7%BB%9D%E5%AF%B9%E5%AE%9A%E4%BD%8D-%E6%B0%B4%E5%B9%B3%E5%9E%82%E7%9B%B4%E5%B1%85%E4%B8%AD/我想了一會兒,覺得還是跟你的需求本身有很大關係。
如果你的這個需要的圖片大小固定的話就很簡單,直接做div的background, size選cover,position:center。div本身就應該是固定大小的了,多行文字框起來,來個table-cell居中啊,或者line-height都行。
但是如果所有文字圖片大小都不固定呢...我個人覺得寫太多CSS trick和標籤嵌套都不如直接上js來得划算...
而且真正用起來的話估計是基本上依賴伺服器端的數據的。像這種高度敏感的控制項,能夠直接寫的時候get到整個外部容器的高度是比較好的,這樣可以在頁面剛渲染時就能把屏幕高度撐到正確的大小。如果不能的話那就寫唄~
於是閑的蛋疼寫了個小demo...有些地方比較倉促不規範就當玩兒了。兼容到IE8是沒什麼問題的,由於是載入圖片的時候拿到的寬高所以就算不支持table-cell也可以算出高度來手動定位~算是優雅降級吧=。=演示地址: http://wungcq.github.io/static/templates/TEST.html(那個醜陋的臨時寫的小模板就忍著看吧~現在是沒有外部庫依賴的。。)&
&
&
&
&
&
&
&
&
&--&>
&&--&>
&&--&>
&--&>
&--&>
&
&
&
&
以前沒有完美的解決方案,所以才有了現在的彈性盒模型(display:flex;)lz研究一下這個,不過目前一些移動端和非現代瀏覽器還不能完全支持,但大勢所趨,應該很快就會普及了。
補充一下:以前用js是有解決方案的,但是問題本身是htmlcss推薦閱讀:
※div 疑惑?
※div標籤究竟該嵌套幾層?
※為何大部分叫法是「DIV+CSS」,而又有不少教材名稱是「CSS+DIV」?究竟哪個標準?