Stay Hungry,Stay Foolish!

图片水平居中显示实验

  测试对于不同宽度图片以不同方法实现水平居中效果,以对以后居中需求提供参考。

  测试准备:

    PC浏览器chrome

    PC浏览器宽度大概 1000px

    宽度小的图片: 500px, http://news.xinhuanet.com/photo/2013-04/23/124621256_11n.jpg (感谢新华网贡献的妹子)
    宽度大的图片: 1920px, http://pic.rmzt.com/2012/07/27/xgsymv1-1.jpg (很好看哦)

 

对容器设置text-align:center

  此种方法:

    居中效果对于宽度小于浏览器宽度的图片有效,对于大于浏览器宽度的图片显示左边部分;

    缩小浏览器宽度, 小图片能够自动居中调节;

    有水平滚动条,向右拖动,小图片不居中调节,向左边滚动。

<html>
<head>
</head>
<body style="text-align:center">
<img src="http://news.xinhuanet.com/photo/2013-04/23/124621256_11n.jpg"/>
<img src="http://pic.rmzt.com/2012/07/27/xgsymv1-1.jpg"/>
</body>
</html>

  

对图片设置margin:0 auto

  此种方法,需要设置img标签为block模式,否则居中效果不生效:

    居中效果对于宽度小于浏览器宽度的图片有效,对于大于浏览器宽度的图片显示左边部分;

    缩小浏览器宽度, 小图片能够自动居中调节;

     有水平滚动条,向右拖动,小图片不居中调节,向左边滚动。

实现效果同 text-align:center,但是此种效果是对元素,更加适合。

<html>
<head>
</head>
<body>
<img style="margin:0 auto; display: block;" src="http://news.xinhuanet.com/photo/2013-04/23/124621256_11n.jpg"/>
<img style="margin:0 auto; display: block;" src="http://pic.rmzt.com/2012/07/27/xgsymv1-1.jpg"/>
</body>
</html>

  

margin-left:-图片一半宽度px

  此方法利用相对定位思想,将图片通过left和margin定位居中。

    小图片同上两个方法的效果。

    大图片也可以起到居中的效果,但是对于两边不能显示的部分,左边的部分不能查看,右边的部分可以通过拖动水平滚动条查看。

    缩放浏览器,大小图片都居中显示。

<html>
<head>
</head>
<body>
<img style="left:50%;margin-left:-250px; display: block; position: relative;" src="http://news.xinhuanet.com/photo/2013-04/23/124621256_11n.jpg"/>
<img style="left:50%;margin-left:-960px; display: block;position: relative;" src="http://pic.rmzt.com/2012/07/27/xgsymv1-1.jpg"/>
</body>
</html>

给body加个隐藏属性,可以讲水平滚动条隐藏掉

<html>
<head>
</head>
<body style="overflow:hidden;">
<img style="left:50%;margin-left:-250px; display: block; position: relative;" src="http://news.xinhuanet.com/photo/2013-04/23/124621256_11n.jpg"/>
<img style="left:50%;margin-left:-960px; display: block;position: relative;" src="http://pic.rmzt.com/2012/07/27/xgsymv1-1.jpg"/>
</body>
</html>

 

 

通过类似手段,组合父对象,可以垂直和水平同时居中,见:

http://www.okajax.com/a/201105/css_div_pic.html

 background 方式

  此方法,将图片作为div的背景,使用背景的center属性

    对于大小图片,都可以做到居中显示,缩放情况下也自动调节居中;

    同时对于大图片,不会出现水平滚动条,宽度变大过程中, 两边不嫩能显示的内容逐步显示;

    除了牺牲一些img语义,或者说可访问性, 其效果同上。

<html>
<head>
</head>
<body>
<div style="background:url('http://news.xinhuanet.com/photo/2013-04/23/124621256_11n.jpg') center no-repeat;height: 693px;"></div>
<div style="background:url('http://pic.rmzt.com/2012/07/27/xgsymv1-1.jpg') center no-repeat;height: 693px;"></div>
</body>
</html>

 

 

posted @   lightsong  阅读(643)  评论(0编辑  收藏  举报
编辑推荐:
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
阅读排行:
· 全网最简单!3分钟用满血DeepSeek R1开发一款AI智能客服,零代码轻松接入微信、公众号、小程
· .NET 10 首个预览版发布,跨平台开发与性能全面提升
· 《HelloGitHub》第 107 期
· 全程使用 AI 从 0 到 1 写了个小工具
· 从文本到图像:SSE 如何助力 AI 内容实时呈现?(Typescript篇)
千山鸟飞绝,万径人踪灭
点击右上角即可分享
微信分享提示