2012-03-30 12 views
8

Poniższy kod jest uproszczoną wersją mojej witryny. W mojej witrynie szerokość obrazu różni się w zależności od strony, a tekst zawiera około 100 słów. Oznacza to, że akapit rozciąga DIV, aby był szerszy niż obraz. Używając tylko CSS, czy możliwe jest zmniejszenie DIV i akapitu do szerokości obrazu?Dowolny element div i akapit w zależności od obrazu?

JSFiddle here

Example of what I'm trying to describe here. Najważniejsze jest to, co dostaję, na dole jest to, czego chcę.

HTML

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

CSS

div { 
    display: inline-block; 
    } 
+0

zgubiłem pobliżu obiektu 'najszerszy na ". Czy możesz złożyć zrzut ekranu z tego, co dostajesz i czego potrzebujesz? – hjpotter92

+0

Właśnie dodałem obraz. – colindunn

+0

Nie zaprogramowałem tego/dobrze to wymyśliłem, ale jeśli każda strona ma inną szerokość obrazu, to dlaczego nie mam funkcji javascript (nie jestem zbyt obeznana z jQuery/AJAX), która ustawia twoją szerokość div na szerokość Twój obraz? – hjpotter92

Odpowiedz

3

i robienia tabeli Wszystko związane będę zawsze wstyd się: http://jsfiddle.net/WM6hK/3/

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

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

Wygląda na to, że to wystarczy! Dziękuję Ci. – colindunn

+0

Wielkie dzięki dla twórców, którzy myślą nieszablonowo. – Jacksonkr

0

Nie, to nie jest możliwe tylko za pomocą CSS. Musisz ustawić szerokość div jednostki nadrzędnej i przeskalować swoje obrazy.

0

zalecam dodanie w małej jQuery .., aby twoje życie o wiele łatwiejsze:

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

Oto jak to będzie wyglądać: http://jsfiddle.net/WM6hK/2/

ten sposób można dodać tę prostą linię kodu do dowolnego div i po prostu zamień $ ("div") na i ID $ ("# idofdiv"). Mam nadzieję że to pomoże!

+0

Może się skończyć korzystając z tej trasy, ponieważ jest czystsza. Ale opcja stołu faktycznie odpowiada na pytanie. – colindunn

0

Teraz jej nie możliwe, za pomocą CSS

jQuery, jej tak proste, jak to

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

Demo

1

Można użyć tego: -

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


p { 
    border: 1px solid blue; 
    } 

To będzie całkowicie pracy według wielkości obrazu .....

zobaczyć demo: -http://jsfiddle.net/WM6hK/11/

Powiązane problemy