How to vertically center an image of unknown height
This article mainly introduces the detailed method of setting vertical centering for pictures of unknown height. When practicing, pay special attention to the display situation in IE browser. Friends in need can refer to
Standard browser or Set the display mode of the external container #box to display:table-cell. IE6/IE7 uses the method of inserting a pair of empty tags in front of the img tag
But actually in the browser The effect achieved is not perfect. Since the parsing of each browser is different, there will be a deviation of 1px-3px in each browser.
Method 1:
This method is to set the display mode of the external container to display:table, nest a span tag outside the img tag, and set the span display mode to display:table-cell, so you can easily use vertical-align to align like table elements. Of course, this is only under standard browsers, IE6/IE7 also have to use positioning.
HTML code
<p id="box"> <span><img src="images/demo.jpg" alt="" /></span> </p>
CSS code
<style type="text/css"> #box{ width:500px;height:400px; display:table; text-align:center; border:1px solid #d3d3d3;background:#fff; } #box span{ display:table-cell; vertical-align:middle; } #box img{ border:1px solid #ccc; } </style> <!--[if lte IE 7]> <style type="text/css"> #box{ position:relative; overflow:hidden; } #box span{ position:absolute; left:50%;top:50%; } #box img{ position:relative; left:-50%;top:-50%; } </style> <![endif]-->
Method two:
The implementation of method two and method one The principles are similar, and the structure is the same. Method one uses conditional comments, and method two uses CSS Hack.
CSS code
#box{ width:500px;height:400px; overflow:hidden; position:relative; display:table-cell; text-align:center; vertical-align:middle; border:1px solid #d3d3d3;background:#fff; } #box span{ position:static; *position:absolute; /*针对IE6/7的Hack*/ top:50%; /*针对IE6/7的Hack*/ } #box img { position:static; *position:relative; /*针对IE6/7的Hack*/ top:-50%;left:-50%; /*针对IE6/7的Hack*/ border:1px solid #ccc; }
This method has a drawback. Under standard browsers, since the display mode of the external container #box is display:table-cell, #box cannot use the margin attribute, and in IE8 Setting the border below also has no effect.
Method 3:
The standard browser still sets the display mode of the external container #box to display:table-cell, IE6/IE7 uses the img tag The method is to insert a pair of empty tags in front.
HTML code
<p id="box"> <i></i><img src="images/demo.jpg" alt="" /> </p>
CSS code
<style type="text/css"> #box{ width:500px;height:400px; display:table-cell; text-align:center; vertical-align:middle; border:1px solid #d3d3d3;background:#fff; } #box img{ border:1px solid #ccc; } </style> <!--[if IE]> <style type="text/css"> #box i { display:inline-block; height:100%; vertical-align:middle } #box img { vertical-align:middle } </style> <![endif]-->
Method 4:
Wrap a p tag outside the img tag , standard browsers use the pseudo-class attribute: before of the p tag to implement it, and IE6/IE7 uses CSS expressions to achieve compatibility.
HTML code
<p id="box"> <p><img src="images/demo.jpg" alt="" /></p> </p>
CSS code
#box{ width:500px;height:400px; text-align:center; border:1px solid #d3d3d3;background:#fff; } #box p{ width:500px;height:400px; line-height:400px; /* 行高等于高度 */ } /* 兼容标准浏览器 */ #box p:before{ content:"."; /* <a href="http://casinogreece.gr/">????????????</a> 具体的值与垂直居中无关,尽可能的节省字符 */ margin-left:-5px; font-size:10px; /* 修复居中的小BUG */ visibility:hidden; /*设置成隐藏元素*/ } #box p img{ *margin-top:expression((400 - this.height )/2); /* CSS表达式用来兼容IE6/IE7 */ vertical-align:middle; border:1px solid #ccc; }
Usage: beforer This method is more powerful for standard browsers, and no side effects have been found, but for IE6/IE7, If you have high performance requirements, the CSS expression method should be used with caution.
Method 5:
This method is for IE6/IE7. Set the font size of the external container of the image to 0.873 times the height to achieve centering. Standard browsers still Use the above method to achieve compatibility, and the structure is more elegant.
HTML code
<p id="box"> <img src="images/demo.jpg" alt="" /> </p>
CSS code
#box{ width:500px;height:400px; text-align:center; border:1px solid #d3d3d3;background:#fff; /* 兼容标准浏览器 */ display: table-cell; vertical-align:middle; /* 兼容IE6/IE7 */ *display:block; *font-size:349px; /* 字体大小约为容器高度的0.873倍 400*0.873 = 349 */ *font-family:Arial; /* 防止非utf-8引起的hack失效问题,如gbk编码 */ } #box img{ vertical-align:middle; }
The method of setting the font size feels weird, and I haven’t seen a reasonable explanation. I only know that the picture elements are somewhat different. The characteristics of other elements, but for IE6/IE7, this method is quite powerful.
Thinking: Many methods rely on setting the display mode of the external container to table to achieve vertical centering, that is, p to simulate table. It would be great if CSS had an attribute to achieve this effect.
The above is the entire content of this article. I hope it will be helpful to everyone's study. For more related content, please pay attention to the PHP Chinese website!
Related recommendations:
How to use negative margin values in CSS to adjust the center position
How to use the position:fixed attribute Center the DIV
The above is the detailed content of How to vertically center an image of unknown height. For more information, please follow other related articles on the PHP Chinese website!

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics



With the continuous development of social media, Xiaohongshu has become a platform for more and more young people to share their lives and discover beautiful things. Many users are troubled by auto-save issues when posting images. So, how to solve this problem? 1. How to solve the problem of automatically saving pictures when publishing on Xiaohongshu? 1. Clear the cache First, we can try to clear the cache data of Xiaohongshu. The steps are as follows: (1) Open Xiaohongshu and click the "My" button in the lower right corner; (2) On the personal center page, find "Settings" and click it; (3) Scroll down and find the "Clear Cache" option. Click OK. After clearing the cache, re-enter Xiaohongshu and try to post pictures to see if the automatic saving problem is solved. 2. Update the Xiaohongshu version to ensure that your Xiaohongshu

In HTML, there are two ways to center-align an image: use CSS: margin: 0 auto; to center the image horizontally, and display: block; to make it occupy the entire width. Use the HTML: <center> element to center the image horizontally, but it is less flexible and does not comply with the latest web standards.

With the popularity of Douyin short videos, user interactions in the comment area have become more colorful. Some users wish to share images in comments to better express their opinions or emotions. So, how to post pictures in TikTok comments? This article will answer this question in detail and provide you with some related tips and precautions. 1. How to post pictures in Douyin comments? 1. Open Douyin: First, you need to open Douyin APP and log in to your account. 2. Find the comment area: When browsing or posting a short video, find the place where you want to comment and click the "Comment" button. 3. Enter your comment content: Enter your comment content in the comment area. 4. Choose to send a picture: In the interface for entering comment content, you will see a "picture" button or a "+" button, click

Adjusting the text position in Dreamweaver can be completed by the following steps: Select the text and use the text position adjuster to make horizontal adjustments: left alignment, right alignment, center alignment; 2. Make vertical adjustments: top alignment, bottom alignment, vertical center; 3. Press Shift key and use the arrow keys to fine-tune the position; 4. Use shortcut keys to quickly align: left alignment (Ctrl/Cmd + L), right alignment (Ctrl/Cmd + R), center alignment (Ctrl/Cmd + C).

In PowerPoint, it is a common technique to display pictures one by one, which can be achieved by setting animation effects. This guide details the steps to implement this technique, including basic setup, image insertion, adding animation, and adjusting animation order and timing. Additionally, advanced settings and adjustments are provided, such as using triggers, adjusting animation speed and order, and previewing animation effects. By following these steps and tips, users can easily set up pictures to appear one after another in PowerPoint, thereby enhancing the visual impact of the presentation and grabbing the attention of the audience.

There are many ways to center the HTML text box: text input box: use the CSS code input[type="text"] { text-align: center; } text area: use the CSS code textarea { text-align: center; } horizontal centering: Use the text-align: center style on the text box parent element to center it vertically: use the vertical-align attribute input[type="text"] { vertical-align: middle; }Flexbox: use display:

Center UL content in CSS: Use the text-align property: Set the alignment of text, including the content of list items. Use the margin attribute: Set the left and right margins of the element, and use margin: auto to achieve horizontal centering. Use the display attribute: Set the element to inline-block, then center it vertically using text-align: center. Use flexbox properties: Horizontal and vertical centering through justify-content: center and align-items: center.

There are four ways to center the HTML frame: margin: 0 auto;: Center the frame horizontally. text-align: center;: Center the frame content horizontally. display: flex; align-items: center;: Center the frame vertically. position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%);: Uses CSS transforms to position the frame in the center of the fixed-size frame's container.
