2012-03-30 34 views
8

Mã bên dưới là phiên bản đơn giản của trang web của tôi. Trên trang web của tôi, chiều rộng hình ảnh thay đổi từ trang này sang trang khác và văn bản là khoảng 100 từ. Điều đó có nghĩa là đoạn trải dài DIV để rộng hơn hình ảnh. Chỉ sử dụng CSS, có thể thu nhỏ DIV và đoạn văn bản theo chiều rộng của hình ảnh không?div và đoạn thu nhỏ để phù hợp, dựa trên hình ảnh?

JSFiddle here

Example of what I'm trying to describe here. Đầu là những gì tôi nhận được, đáy là những gì tôi muốn.

HTML

<div> 
    <img src="image.jpg" /> 
    <p>Lorem ipsum dolor sit amet.</p> 
</div> 

CSS

div { 
    display: inline-block; 
    } 
+0

Tôi bị mất bạn gần 'đối tượng rộng nhất trên '. Bạn có thể đặt một ảnh chụp màn hình của những gì bạn đang nhận được và những gì bạn cần? – hjpotter92

+0

Chỉ cần thêm hình ảnh. – colindunn

+0

Tôi đã không lập trình nó/nghĩ rằng nó ra tốt, nhưng nếu mỗi trang có chiều rộng hình ảnh khác nhau, tại sao không có một javascript (tôi không quen thuộc với jQuery/AJAX) chức năng onload, trong đó đặt chiều rộng div của bạn với chiều rộng của hình ảnh của bạn? – hjpotter92

Trả lời

3

Và để làm bảng bất cứ điều gì liên quan đến tôi thì mãi mãi xấu hổ bản thân mình: http://jsfiddle.net/WM6hK/3/

div { 
display: table; 
border: 1px solid red; 
width: 1%; 
} 

p { 
border: 1px solid blue; 
}​ 
+0

Dường như điều đó không phải là lừa! Cảm ơn bạn. – colindunn

+0

Rất cám ơn bạn devs người nghĩ rằng bên ngoài của hộp. – Jacksonkr

0

Không, nó không thể bằng cách chỉ sử dụng CSS. Bạn sẽ cần phải thiết lập chiều rộng cho div cha và rescale hình ảnh của bạn.

0

tôi khuyên bạn nên thêm vào một chút jquery .. để làm cho cuộc sống của bạn trở nên dễ dàng hơn nhiều:

imgw = $("img").width(); 
$("div").css("width", imgw); 

Sau đây là cách nó sẽ trông: http://jsfiddle.net/WM6hK/2/

Bằng cách này bạn có thể thêm dòng này mã đơn giản cho bất kỳ div nào và chỉ thay thế $ ("div") bằng ID và ID $ ("# idofdiv"). Hi vọng điêu nay co ich!

+0

Tôi có thể kết thúc bằng cách sử dụng tuyến đường này, vì nó sạch hơn. Nhưng tùy chọn bảng thực sự trả lời câu hỏi. – colindunn

0

Ngay bây giờ mình không thể, sử dụng CSS

Sử dụng jQuery, nó dễ dàng như việc này

$("div").width($("div img").width()); 

Demo

1

Bạn có thể sử dụng: -

div { 
    width:20%; 
    display:inline-table; 
    } 


p { 
    border: 1px solid blue; 
    } 

Nó hoàn toàn sẽ làm việc theo kích thước hình ảnh .....

xem minh họa: -http://jsfiddle.net/WM6hK/11/

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