2012-04-24 48 views
13

Tôi đã mã đánh dấu sau trong trang của tôi:Làm thế nào để tập trung hình ảnh trong một div theo chiều ngang và theo chiều dọc

<div id="root_img" style="width:100%;height:100%"> 
    <div id="id_immagine" align="center" style="width: 100%; height: 100%;"> 
     <a id="a_img_id" href="./css/imgs/mancante.jpg"> 
      <img id="img_id" src="./css/imgs/mancante.jpg" /> 
     </a> 
    </div> 
</div> 

Và nó không xuất hiện như tôi mong đợi, có vẻ như rằng:

enter image description here

Nhưng tôi muốn để có được kết quả này:

enter image description here

Làm cách nào để căn giữa hình ảnh này theo chiều ngang và chiều dọc?

+0

Tại sao bạn đang sử dụng 4 thẻ thay vì 2? sẽ hoạt động. – Vivien

+0

Tôi thấy hình ảnh ở dưới cùng của div, X rapresent một cái gì đó hoặc tôi đã đặt nó một số giá trị? – CeccoCQ

+0

X có thể là bất cứ điều gì tốt cho bạn: "5%", "10px, 0" ... Bạn cũng có thể đặt hình ảnh dưới cùng với "hình nền" và "vị trí nền" trên div chính – Vivien

Trả lời

10

Đây là một tutorial cho làm thế nào để tập trung những hình ảnh theo chiều dọc và theo chiều ngang trong div.

Dưới đây là những gì bạn đang tìm kiếm:

.wraptocenter { 
 
    display: table-cell; 
 
    text-align: center; 
 
    vertical-align: middle; 
 
    width: 200px; 
 
    height: 200px; 
 
    background-color: #999; 
 
} 
 
.wraptocenter * { 
 
    vertical-align: middle; 
 
}
<div class="wraptocenter"> 
 
    <img src="http://www.brunildo.org/thumb/tmiri2_o.jpg"> 
 
</div>

+0

"wraptocenter" (ví dụ) là lớp của div root_img của tôi? – CeccoCQ

+0

có, bạn chỉ cần định dạng nó theo html của bạn. – AlphaMale

+2

Tính không tương thích của Trình duyệt chéo ... :( –

4

Đối với căn chỉnh theo chiều dọc, tôi sẽ bao gồm một số CSS để định vị nó từ 50% trên cùng và sau đó di chuyển nó lên một nửa số pixel chiều cao của hình ảnh.

Ngang, tôi sẽ sử dụng ký quỹ, như được đề xuất.

Vì vậy, nếu hình ảnh của bạn là 100x100px, bạn sẽ kết thúc.

<img id="my_image" src="example.jpg"> 

<style> 
#my_image{ 
position: absolute; 
top: 50%; 
margin: -50px auto 0; 
} 
</style> 
+0

Tôi đã thử, nhưng tôi có hình ảnh tại dưới cùng của div. – CeccoCQ

+0

Vâng, xin lỗi, tôi không đọc đánh dấu của bạn. Chỉ cần áp dụng nó vào '' thay vì nó bao gồm '' –

-1

Hãy thử một cái gì đó như thế này:

<div style="display:table-cell; vertical-align:middle"> 
"your content" 
</div> 
+0

hình ảnh và văn bản căn chỉnh khác nhau. – Murtaza

-1

sử dụng margin-top

dụ css

#id_immagine{ 
    margin:0 auto; 
    } 
0

Có hai khía cạnh bạn cần phải giải quyết. Khía cạnh đầu tiên là căn chỉnh ngang. Điều này dễ dàng đạt được với lề: tự động áp dụng trên phần tử div xung quanh chính hình ảnh đó. DIV cần phải có chiều rộng và chiều cao được đặt thành kích thước hình ảnh (nếu không điều này sẽ không hoạt động). Để đạt được căn chỉnh theo chiều dọc, bạn cần thêm một số javascript vào HTML. Điều này là do kích thước chiều cao HTML không được biết đến khi khởi động trang và có thể thay đổi sau này. Giải pháp tốt nhất là sử dụng jQuery và viết kịch bản sau: $ (cửa sổ).ready (function() {/ * nghe sự kiện sẵn sàng của cửa sổ - được kích hoạt sau khi trang đang được tải */ repositionCenteredImage(); });

$(window).resize(function() { /* listen to page resize event - in case window size changes*/ 
     repositionCenteredImage(); 
    }); 

    function repositionCenteredImage() { /* reposition our image to the center of the window*/ 
     pageHeight = $(window).height(); /*get current page height*/ 
     /* 
     * calculate top and bottom margin based on the page height 
     * and image height which is 300px in my case. 
     * We use half of it on both sides. 
     * Margin for the horizontal alignment is left untouched since it is working out of the box. 
     */ 
     $("#pageContainer").css({"margin": (pageHeight/2 - 150) + "px auto"}); 
    } 
trang

HTML được hiển thị hình ảnh trông như thế này:

<body> 
     <div id="pageContainer"> 
      <div id="image container"> 
       <img src="brumenlabLogo.png" id="logoImage"/> 
      </div> 
     </div> 
    </body> 

CSS gắn liền với các yếu tố như sau:

#html, body { 
    margin: 0; 
    padding: 0; 
    background-color: #000; 
} 

#pageContainer { /*css for the whole page*/ 
    margin: auto auto; /*center the whole page*/ 
    width: 300px; 
    height: 300px; 
} 

#logoImage { /*css for the logo image*/ 
    width: 300px; 
    height: 300px; 
} 

Bạn có thể tải toàn bộ giải pháp từ công ty chúng tôi trang chủ tại url sau:

http://brumenlab.com

0

Giải pháp này là dành cho tất cả các hình ảnh kích thước Trong khẩu phần của hình ảnh cũng được duy trì.

.client_logo{ 
 
    height:200px; 
 
    width:200px; 
 
    background:#f4f4f4; 
 
} 
 
.display-table{ 
 
    display: table; 
 
    height: 100%; 
 
    width: 100%; 
 
    text-align: center; 
 
} 
 
.display-cell{ 
 
    display: table-cell; 
 
    vertical-align: middle; 
 
} 
 
.logo-img{ 
 
    width: auto !important; 
 
    height: auto; 
 
    max-width: 100%; 
 
    max-height: 100%; 
 

 
}
<div class="client_logo"> 
 
    <div class="display-table"> 
 
     <div class="display-cell"> 
 
     <img src="http://www.brunildo.org/thumb/tmiri2_o.jpg"> 
 
     </div> 
 
    </div> 
 
</div>

Bạn có thể thiết lập kích thước của

.client_logo

accourding yêu cầu của bạn

Các vấn đề liên quan