css3 - img垂直水平居中問題
問題描述
.box {width: 300px;height: 300px;display: table-cell;text-align: center;vertical-align: middle;border: solid 1px red;transition: 1s; } .box img {width: 150px;height: 150px; } .box:hover img {transform: scale(2); }
<p class='box'><img src='http://www.cgvv.com.cn/img/1.jpg'/></p>
img垂直水平居中為什么會有一像素的空隙:
問題解答
回答1:方法1. 給img加display:block樣式方法2. 給.box加font-size:0樣式
回答2:https://jsfiddle.net/06m9orbL/
那一點空隙是基線來的,結(jié)合你的display:table-cell的屬性來看,那個是基線的一半,因為.box的中心會跟里面的匿名行框中心對齊。
可以看看w3c關(guān)于display:table和vertical-align的說明 https://www.w3.org/TR/CSS22/tables.html#height-layout
回答3:http://www.zhangxinxu.com/wordpress/2015/08/css-deep-understand-vertical-align-and-line-height/ 這篇文章是極好的
回答4:這個跟vertical-align:middle無關(guān),而是跟你的display:table-cell有關(guān),至于原理我也未清楚,不過你在image 中float:left就可以解決空隙
回答5:img行內(nèi)塊級元素的原因,父元素設(shè)font-size:0;可解決。還有其他幾種解決辦法,可以搜一下,手機打字不方便提供傳送門
回答6:嗯,樓上的哥們說的都對了,我也遇到過。。。圖片中的兔子好可愛,哈哈!
回答7:網(wǎng)上有專門討論這個的,一般解決是設(shè)父元素的font-size:0,好像記得是因為字體的“底線”位置吧。設(shè)為0那就不受影響了。同樣的文字居中也不是完全居中的,和它的“底線”位置有關(guān)。
回答8:https://segmentfault.com/q/1010000004076322/a-1020000004078865
回答9:采用通配符*
*{ margin:0; padding:0;}回答10:
方法有給box設(shè)置font-size:0;給IMG標(biāo)簽設(shè)置display:block;或者使用負(fù)margin.或者寫flaot.因為元素浮動后也就是display:bolck了
相關(guān)文章:
1. objective-c - ios百度地圖定位問題2. javascript - 求助這種功能有什么好點的插件?3. 微信開放平臺 - Android調(diào)用微信分享不顯示4. javascript - 關(guān)于這組數(shù)據(jù)如何實現(xiàn) 按字母列表分類展示 不改動數(shù)據(jù)結(jié)構(gòu)5. javascript - 寫移動端的頁面的時候,有不一快空白,是怎么回事?6. html5 - rudy編譯sass的時候有中文報錯7. javascript - 關(guān)于定時器 與 防止連續(xù)點擊 問題8. javascript - ie11以下單擊打開不了file,雙擊可以。求解?9. javascript - 在IE中(9+)平時的樣式不生效,只有用開發(fā)者工具選中這個元素才生效,是什么原因?10. Python做掃描,發(fā)包速度實在是太慢了,有優(yōu)化的方案嗎?
