vertical align center image in fixed size div
Mam div czyli 145px X 145px. Mam w środku img. Img może być dowolnego rozmiaru(najdłuższa strona to 130px). Chciałbym, aby obraz był wyśrodkowany pionowo w div. Wszystko, co próbowałem działa w większości przeglądarek, ale nie IE7. Potrzebuję czegoś, co będzie działać w IE7.
6 answers
Możesz zastąpić obraz tłem w div w następujący sposób:
<div style="background:url(myimage.jpg) no-repeat center center"></div>
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-02-15 17:12:36
Oto rozwiązanie między przeglądarkami:
<div class="img-container"><img src="picture.png" class="cropped"/></div>
div.img-container {
width: 390px;
height: 211px;
position: relative;
margin-left: auto;
margin-right: auto;
overflow: hidden;
}
img.cropped {
position: absolute;
margin: auto;
top: 0;
left: 0;
right: 0;
bottom: 0;
}
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-12-29 21:11:43
Nie jestem pewien co do IE7 ale dla IE9 i reszty nowoczesnych przeglądarek działa.
.picturecontainer{
width:800px;
height:800px;
border:solid 1px;
display:table-cell;
vertical-align:middle;
}
.horizontalcenter{
display:block;
margin-left:auto;
margin-right:auto;
vertical-align:middle;
}
To use it
<div class="picturecontainer"><img src="" class="horizontalcenter"/></div>
To umieszcza obrazy w martwym centrum.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-05-21 17:06:07
Użycie właściwości line-height
rozwiązało problem.
Reference: vertical-align image in div
HTML:
<div class="img_thumb">
<a class="images_class" href="large.jpg" rel="images"><img src="http://www.minfo.pt/fotos/_cache/produtos/0/068.M.976010002__thumbnail_50_50_true_sharpen_1_1.JPG" title="img_title" alt="img_alt" /></a>
</div>
CSS:
.img_thumb {
float: left;
height: 120px;
margin-bottom: 5px;
margin-left: 9px;
position: relative;
width: 147px;
background-color: rgba(0, 0, 0, 0.5);
border-radius: 3px;
line-height:120px;
text-align:center;
}
.img_thumb img {
vertical-align: middle;
}
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 11:45:36
Nie jestem pewien, co próbowałeś do tej pory, ale właściwość vertical-align CSS powinna działać, jeśli obrazy są wyświetlane jako elementy wbudowane.
Niektóre informacje o vertical-align: http://www.w3schools.com/css/pr_pos_vertical-align.asp
Jeśli musisz uwzględnić wszystkie wysokości obrazu, jest to prawie jedyny sposób bez użycia JavaScript.
Jeśli obrazy nie są elementami inline i musisz tylko pomieścić obrazy o stałej wysokości, możesz to zrobić coś takiego:
img {
margin-top: -50px; /* This number should be half the height of your image */
position: absolute;
top: 50%;
}
W przeciwnym razie jedynym sposobem, w jaki mogę myśleć, aby pomieścić obrazy o różnej wysokości, byłoby zrobić coś podobnego z Twoim CSS, ale ustawić ujemny margines na połowę wysokości obrazu z JS.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-02-15 15:39:38
Stworzyłem mały kod jQuery, aby to zrobić bez konieczności używania paskudnych tabel:
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.js">
imagepos = function () {
$('img').each(function () {
imgheight = Math.round($(this).height() / 2);
imgwidth = Math.round($(this).width() / 2);
$(this).attr("style", "margin-top: -" + imgheight + "px; margin-left: -" + imgwidth + "px; opacity:1;");
});
}
$(window).load(imagepos);
</script>
I potrzebujesz też trochę css:
div
{
position:relative;
}
img
{
display:block;
margin:auto;
max-width:100%;
position:absolute;
top:50%;
left:50%;
opacity:0;
}
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-11-04 22:09:52