css的图片居中

我的前台html代码是:
<div id="newsDetails"> <img src=""></img> <p></p> </div>
js中的代码是:$("#" + pageName + " p").html(data.content);
这数据是json传入的:

p中显示的就是AssetContent中的内容,怎么在css里面调 才能使接收到的图片居中啊?
我这样写:
#newsDetails p img{ width:150px; height:150px; text-align: center;}
可是图片大小可以调整,而text-align: center;是没用的,求大神指导!!!

1、首先先在页面里加载一张图片,代码和效果如下图所示:

2、然后设置给图片起一个class名,方便一会儿的操作。

3、然后给图片设置css样式,因为方便的原因就直接在html页面写css样式了。

4、经常使用“margin: 0 auto”来实现水平居中,而一直认为“margin: auto”是不能实现垂直居中,但是实际上,仅需要添加一些限制便能实现效果,就是通过定位:

position: absolute;  

top: 0;

left: 0;

bottom: 0;

right: 0;  

设置定位让上下左右都为0,然后通过margin:0 auto,来让元素实现上下左右都居中。

5、设置完CSS样式之后,通过浏览查看代码的效果就可以,可以看到图片已经实现了。

6、最后给大家附上全部的代码:

<!DOCTYPE html>

<html>

<head>

<meta charset="utf-8" />

<title>使用CSS让图片水平垂直居中</title>

</head>

<body>

<img class="pic" src="img/timg.jpg" alt="" />

</body>

<style type="text/css">

.pic{

margin: auto;  

position: absolute;  

top: 0;

left: 0;

bottom: 0;

right: 0;  

}

</style>

</html>

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-12-16
N多种方法,看你习惯哪个了。
img的text-align: center当然没用了,这个是针对子元素的,你要在p标签上加才行。
如果p标签不方便改动,可以把img变为块元素,display:block;再margin:auto;。
如果想垂直也居中还可以用vertical-align:middle和display:table-cell;来搭配,也是作用在父元素上
当然了,还要可以用相对定位和绝对定位来算,这个要看你父子元素的大小了。
既然这种基础的css都没搞懂,JSON可以先放一放的本回答被网友采纳
第2个回答  2013-09-18

text-align: center 写在 img 上当然没用啦~


如果是

#newsDetails p{ text-align:center }

这样对图片居中才有用,但是这样就会影响了p里面文字的布局


你可以试试一下的方法:

① 在你的json里面,img外面再加一个p,将img包围,而p的样式有text-align:center,然后那个<BR/>可以去掉了

"resultSet":{ 
    {
        "AssetContent": "<p style=\"text-align:center\"><img width.......\/><\/p>..."
    }
}


② 在你的json里面,img加一个属性:align="center",这个方法我没试过,也不推荐

第3个回答  2018-07-29

水平居中:

1、单独文字垂直居中只需要设置CSS样式line-height属性即可。

2、文字与图片同排,在设置div高度同时再对此css样式的图片“img”样式设置vertical-align:middle垂直居中属性,如.yangshi img{vertical-align:middle;} 。

3 不确定宽度的块级元素设置水平居中的方法:

(1)、是使用table作为容器的方法来实现。当然不大推荐使用这种方法,因为添加了无意义的标签。介绍一下。Table标签本身并不是块级元素,当不设置table的宽度的话,里面的宽度是由他内部元素的宽度撑起来的。但即使没有设置table的宽度,直接设置table的外边距margin:0 auto;就可以实现水平居中了!这样就可以通过设置table水平居中,间接使里面的内容居中。

(2)、相对于用table的方法的好处是不用增加无语义标签,简化标签嵌套深度。这个思路是这样的,通过改变块级元素的display属性值为inline类型,然后设置text-align:center来实现居中。这种方法也有一定不妥之处就是把块级元素改为行内元素后,行内元素比块元素少了一些功能。比如说设定长宽值等,在项目运用中可能会有一些限制,可以自行选择。

(3)、通过给父元素设置浮动float,再设置父元素的position属性为relative和left:50%;子元素设置position:relative和left:-50%来实现水平居中。这个好处是可以保留块级元素仍然是以display:block的形式显示,不会添加无意义的标签,不添加嵌套深度。确点是设置了position:relative;带来了一些副作用。下面是第三种方法的实例代码,放到body标签里面就可以了。


垂直居中:


1.对这个CSS居中问题,可以使用设置背景图片的方法。举例:


body {BACKGROUND: url(”图片文件”) #FFF no-repeat center;}


关键就在于这个Center属性,它表示让该背景图片在容器中居中。也可以把Cener换成Top Left或者直接写上数字来调整它的位置。


2.如何使文本在DIV中垂直居中


对于文字,便不能用背景方法,可以用增高行距的办法变通实现垂直居中,示范代码如下:


#center{ MARGIN-RIGHT: auto; MARGIN-LEFT: auto; height:200px; vertical-align:middle; line-height:200px; }

<div id=”center”><p>test content</p></div>


说明:

vertical-align:middle;表示行内垂直居中,将行距增加到和整个DIV一样高line-height:200px;然后插入文字,就垂直居中了。


图片垂直居中的实例:


CSS 代码   复制

.new_proimg{
 display: table-cell; /*非IE的主流浏览器识别的垂直居中的方法*/
 vertical-align:middle; /*非IE的主流浏览器识别的垂直居中的方法*/
 text-align:center; /*设置水平居中*/
 *display: block; /* 针对IE的Hack */
 *font-size: 104px; /*约为高度的0.873,120*0.873 约为104*/
 *font-family:Arial;  /*防止非utf-8引起的hack失效问题,如gbk编码*/
 width:120px; 
 height:120px;
 margin-bottom: 5px;
 border: 1px solid #eee;
}

图片垂直居中建议:

1、单独文字垂直居中只需要设置CSS样式line-height属性即可。

2、文字与图片同排,在设置div高度同时再对此css样式的图片“img”样式设置vertical-align:middle垂直居中属性,

如.yangshi img{vertical-align:middle;} 。

本回答被网友采纳
第4个回答  2013-09-17
按道理来讲应该用vertical-align:middle、但是这个代码普遍不管用一直不懂怎么用、但是你可硬在图片外层加一个div然后设置好宽、再给这个div居中、然后图片也就跟着剧终了
相似回答