欢迎来到山村网

CSS图片垂直居中方法整理集合

2019-03-29 00:02:50浏览:286 来源:山村网   
核心摘要:看到问此问题的很多,所以花点时间整理下,欢迎大家提意见,做补充修改,谢谢!当writing-mode为tb-rl 时,文档流是从上到下,从

看到问此问题的很多,所以花点时间整理下,欢迎大家提意见,做补充修改,谢谢!

当writing-mode为tb-rl 时,文档流是从上到下,从右到左书写。然后设置text-align: center就可以实现垂直方向上的居中。算是一个小技巧吧。
原帖链接:IE6下用writing-mode实现 未知高度替换元素垂直居中。

area name="runcode0" cols="77" rows="13" style="WIDTH: 643px; FONT-FAMILY: 'Courier New',Courier,monospace; HEIGHT: 240px"><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>利用定位来显示垂直局中的图片</title> <style type="text/css"> .miao { width:500px; height:220px; line-height:220px; border: 1px solid; text-align: center; } .miao img { vertical-align: middle; } </style> <!--[if IE 6]> <style type="text/css"> .miao span { border: 1px solid red; height: 100%; writing-mode: tb-rl; vertical-align: middle; } </style> <![endif]--> </head> <body> <h1>固定高宽的容器中,图片垂直局中。</h1> <p>使用的绝对定位和相对定位的方法</p> <div class="miao"> <span><img src="http://bbs.blueidea.com/images/default/logo.gif" alt="Logo" /></span>你知道的太多了你知道的太多了你知道的太多了 </div> <hr /> <div class="miao"> <span><img src="http://bbs.blueidea.com/images/default/logo.gif" alt="Logo" /></span>你知道的太多了你知道的太多了你知道的太多了 </div> <hr /> <div class="miao"> <span><img src="http://www.google.cn/intl/zh-CN/images/logo_cn.gif" alt="Google" /></span>你知道的太多了 </div> </body> </html>area>
提示:您可以先修改部分代码再运行


因为Opera,FF3,IE8均支持display:talbe;这些特性了,因此改进的办法是:


area name="runcode1" cols="78" rows="12" style="WIDTH: 651px; FONT-FAMILY: 'Courier New',Courier,monospace; HEIGHT: 203px"><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>利用定位来显示垂直局中的图片</title> <style type="text/css"> .miao{width:170px;height:100px;display:table;text-align:center;border:solid 1px red;} .miao span{display:table-cell;vertical-align:middle;border:solid 1px blue;} .miao span img{border:dashed 1px green;} </style> <!--[if lte IE 7]> <style type="text/css"> .miao{position:relative;overflow:hidden;} .miao span{position:absolute;left:50%;top:50%;} .miao span img{position:relative;left:-50%;top:-50%;} </style> <![endif]--> </head> <body> <h1>固定高宽的容器中,图片垂直局中。</h1> <p>绿色容器是span,目的是使自己的左上角与容器中心点对齐。红色是具体图片,再次设置负值使自己的中心点和父容器的中心点重合,最终 达到垂直局中的目的。</p> <div class="miao"> <span><img src="http://bbs.blueidea.com/images/default/logo.gif" alt="Logo" /></span> </div> <hr /> <div class="miao" style="width:300px;height:80px;"> <span><img src="ttp://bbs.blueidea.com/images/default/logo.gif" alt="Logo" /></span> </div> <hr /> <div class="miao" style="width:500px;height:220px;"> <span><img src="http://www.google.cn/intl/zh-CN/images/logo_cn.gif" alt="Google" /></span> </div> </body> </html>area>
提示:您可以先修改部分代码再运行

如果不喜欢条件注释,可自行将代码以css hack的方式拼凑起来。


原帖链接:

未知高宽的图片垂直局中

area name="runcode2" cols="78" rows="11" style="WIDTH: 651px; FONT-FAMILY: 'Courier New',Courier,monospace; HEIGHT: 194px"><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <style type="text/css"> <!-- * {margin:0;padding:0} div { width:500px; height:500px; border:1px solid #ccc; overflow:hidden; position:relative; display:table-cell; text-align:center; vertical-align:middle } div p { position:static; +position:absolute; top:50% } img { position:static; +position:relative; top:-50%;left:-50%; width:276px; height:110px } --> </style> <div><p><img src="http://www.google.com/intl/en/images/logo.gif" /></p></div>area>
提示:您可以先修改部分代码再运行

标准浏览器下另类方法:


area name="runcode3" cols="78" rows="12" style="WIDTH: 650px; FONT-FAMILY: 'Courier New',Courier,monospace; HEIGHT: 202px"><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <style type="text/css"> <!-- body { margin:0;padding:0 } div { width:500px; height:500px; line-height:500px; border:1px solid #ccc; overflow:hidden; position:relative; text-align:center; margin:auto } div p { position:static; +position:absolute; top:50% } img { position:static; +position:relative; top:-50%;left:-50%; width:276px; height:110px; vertical-align:middle } p:after { content:".";font-size:1px; visibility:hidden } --> </style> <div><p><img src="http://www.google.com/intl/en/images/logo.gif"/></p></div>area>
提示:您可以先修改部分代码再运行

标准浏览器严格型申明下:


area name="runcode4" cols="78" rows="11" style="WIDTH: 648px; FONT-FAMILY: 'Courier New',Courier,monospace; HEIGHT: 196px"><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <style type="text/css"> <!-- * {margin:0;padding:0} div { width:500px; height:500px; line-height:500px; border:1px solid #ccc; overflow:hidden; position:relative; text-align:center; } div p { position:static; +position:absolute; top:50%; vertical-align:middle } img { position:static; +position:relative; top:-50%;left:-50%; width:276px; height:110px; vertical-align:middle } --> </style> <div><p><img src="http://www.google.com/intl/en/images/logo.gif" /></p></div>area>
提示:您可以先修改部分代码再运行

利用字体大小的方法:


area name="runcode5" cols="79" rows="12" style="WIDTH: 652px; FONT-FAMILY: 'Courier New',Courier,monospace; HEIGHT: 199px"><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <style type="text/css"> * {margin:0;padding:0;} div { width:500px;text-align:center;border:1px solid #f00;line-height:500px; height:500px;font-size:500px } *>div{ font-size:12px } div img { vertical-align:middle } </style> <div> <img src="http://www.google.com/intl/en/images/logo.gif" /> </div>area>
提示:您可以先修改部分代码再运行

display:inline-block 方法


area name="runcode6" cols="78" rows="11" style="WIDTH: 650px; FONT-FAMILY: 'Courier New',Courier,monospace; HEIGHT: 196px"><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <style type="text/css"> div { display:table-cell; height:300px; width:500px; text-align:center; border:1px solid #000; vertical-align:middle } </style> <!--[if IE]> <style type="text/css"> i { display:inline-block; height:100%; vertical-align:middle } img { vertical-align:middle } </style> <![endif]--> <div> <i></i> <img src="http://www.baidu.com/img/logo.gif" alt=""/> </div>area>
提示:您可以先修改部分代码再运行

最简单当然是背景图片的方法拉。


area name="runcode7" cols="78" rows="11" style="WIDTH: 648px; FONT-FAMILY: 'Courier New',Courier,monospace; HEIGHT: 195px"><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <style type="text/css"> * {margin:0;padding:0;} div { width:500px;border:1px solid #f00; height:500px; background:url("http://www.google.com/intl/en/images/logo.gif") center no-repeat } </style> <div> </div>area>
提示:您可以先修改部分代码再运行
(责任编辑:豆豆)
下一篇:

使用css的类名交集复合选择器 让选择元素变简单

上一篇:

css3教程:弹性盒模型

  • 信息二维码

    手机看新闻

  • 分享到
打赏
免责声明
• 
本文仅代表作者个人观点,本站未对其内容进行核实,请读者仅做参考,如若文中涉及有违公德、触犯法律的内容,一经发现,立即删除,作者需自行承担相应责任。涉及到版权或其他问题,请及时联系我们 xfptx@outlook.com