当前位置:  开发笔记 > 编程语言 > 正文

垂直对齐图像

如何解决《垂直对齐图像》经验,为你挑选了2个好方法。

我有一个包含图像和ap标签的div(见下文).我想根据段落的行数垂直对齐div中间的图像.垂直对齐不起作用.我现在正在使用JavaScript来计算添加到margin-top的数量,但宁可使用CSS.有任何想法吗?

Multi-line

0b10011.. 60

这是纯CSS,垂直对齐图像,如果图像比包含框更高(或更宽),也会调整图像大小.因此,盒子和图像都可以是任何尺寸而不会破坏垂直对齐.此外,您可能希望为

标记添加左边距,以防止它们被图像隐藏.

CSS

/* Positioning */
.absoluteCenterWrapper {
    position: relative; /* Contains the image in the div */
}
.absoluteCenter { /* Aligns image vertically */
    margin: auto;
    position: absolute;
    top: 0;
    bottom: 0;
}
.absoluteCenterWrapper p { /* Pushes 

to edge of image */ margin-left: 101px; /* Width of image */ } .absoluteCenter { /* Specifies width of image to avoid overlap if image changes */ width: 101px; /* Width of image */ } /* Sizing - resizes down to avoid cutting off */ .absoluteCenter { max-height: 100%; max-width: 100%; } /* Making it "pretty" */ .absoluteCenterWrapper { margin: 1em; padding: 0.001em; /* <- Hack to contain margins */ outline: 1px solid red; } .absoluteCenterWrapper p { margin-top: 1em; margin-bottom: 1em; padding-left: 1em;}

Paragraph goes here.

Paragraph goes here.

Paragraph goes here.

Paragraph goes here.

Paragraph goes here.



1> 0b10011..:

这是纯CSS,垂直对齐图像,如果图像比包含框更高(或更宽),也会调整图像大小.因此,盒子和图像都可以是任何尺寸而不会破坏垂直对齐.此外,您可能希望为

标记添加左边距,以防止它们被图像隐藏.

CSS

/* Positioning */
.absoluteCenterWrapper {
    position: relative; /* Contains the image in the div */
}
.absoluteCenter { /* Aligns image vertically */
    margin: auto;
    position: absolute;
    top: 0;
    bottom: 0;
}
.absoluteCenterWrapper p { /* Pushes 

to edge of image */ margin-left: 101px; /* Width of image */ } .absoluteCenter { /* Specifies width of image to avoid overlap if image changes */ width: 101px; /* Width of image */ } /* Sizing - resizes down to avoid cutting off */ .absoluteCenter { max-height: 100%; max-width: 100%; } /* Making it "pretty" */ .absoluteCenterWrapper { margin: 1em; padding: 0.001em; /* <- Hack to contain margins */ outline: 1px solid red; } .absoluteCenterWrapper p { margin-top: 1em; margin-bottom: 1em; padding-left: 1em;}

Paragraph goes here.

Paragraph goes here.

Paragraph goes here.

Paragraph goes here.

Paragraph goes here.



2> Luke Bennett..:

尝试将元素的line-height属性设置为p图像的高度,例如:

div p {
  line-height: 18px;
}

编辑:刚刚意识到我误解了这个问题并错过了p多线的事实.尝试一种选择是去除img共元素,并将其设置为background-imagep不是,用background-positionleft, center.就像是:

div p {
  background: transparent url(path/to/img) no-repeat left center;
  padding-left:30px; /* Set based on width of image */
}


如果您尝试设置图像样式(即:如果我的图像有边框),则无效.
推荐阅读
和谐啄木鸟
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有