ugrás a tartalomhoz

DIV height dinamikusan

Creative · 2011. Dec. 5. (H), 01.46
Üdv,

Adott egy másodszintű headline, egy div és egy paragraph egymás alatt, után. Szeretném megoldani, hogy a divemnek a magassága dinamikus legyen, mivel található benne egy a tag, mely float: left -elve van, a benne lévő img tartalommal együtt, illetve egy paragraph, szöveggel. A fejtörést az okozza, hogy ha a paragraphban növelem a szöveg mennyiségét, a szöveg rányúlik chrome alatt az alatta lévő szövegre, s nem nyúlik az egész. Már sok mindent kipróbáltam rá, de semmi :S Ötletek, tippek?
					<div>
						<a href="#" title="blablabla" class="image" style="float: left;" >
							<span><img src="images/image.jpg" alt="blablablaimage" /></span>
						</a>
						<p>
							Nulla neque fringilla nunc vehicula lacus venenatis gravida in. Vitae libero varius dignissim praesent
							condimentum.
						</p>
						<div class="clear"></div>
					</div>
A befoglaló div kódja css-ben pedig most:
	div#kontener div {
		position: relative;
		height: 100%;
		min-height: 190px;
		width: 660px;
	}
C.
 
1

huh

Leonuh · 2011. Dec. 5. (H), 02.39
Nem is tudom hol kezdjem a hibak kozul... de inkabb maradok a problema megoldasanal...

Alapvetoen nagyobb kodreszletet es tobb css-t kene latnom.

div#kontener div -> ez <div class="clear"></div> erre is vonatkozni fog...

Alapertelmezett esetben amit leirtal konnyen megvalosithato es mukodik is... Ha megengeded hogy meg adjak egy javaslatot... Ne hasznalj 2011ben clear classt... clearfixet hasznalj ahol tudsz... Ha kered adok sok forrast is errol bar remelhetoleg te is utana tudsz nezni :)
2

Ne hasznalj 2011ben clear

Hidvégi Gábor · 2011. Dec. 5. (H), 09.49
Ne hasznalj 2011ben clear classt... clearfixet hasznalj ahol tudsz...
Miért?

Creative: Ha van egy konténered, amiben van float elem, akkor a clear: both-ot a konténer után kell tenni.

<konténer>
  <float>...</float>
  <normál>szöveg</normál>
</konténer>
<clearboth></clearboth>
3

Szabvany szerint jo helyre

Leonuh · 2011. Dec. 5. (H), 10.34
Szabvany szerint jo helyre tette a cleart ha mar a regi technikat hasznalta...
Magyarazat: Ha ertelmezed a clearfixek barmelyiket akkor tudod hogy az after pseudoval mindig a container vegere fogja rakni es nem utana. A tobbi az csak fallback a pseudo elem tamogatasanak hianya miatt.

Talan a legjobb magyarazatok miert elavult technika mar 3-4 eve (vagy tobb):
http://pathfindersoftware.com/2007/09/developers-note-2/
http://www.positioniseverything.net/easyclearing.html
4

Szabvany szerint jo helyre

Hidvégi Gábor · 2011. Dec. 5. (H), 12.33
Szabvany szerint jo helyre tette
Ezzel nem vitatkozom, valószínűleg így van, az én módszeremnek is ugyanaz az eredménye, majd utánajárok, és ha kell, így fogom használni.

Ha már annyira 2011-ben tartasz, akkor igazán megnézhetnéd, hogyan kell linkelni a weblaboron ; )

És ha már annyira ragaszkodsz a szabványhoz, nem értem, mi a bajod <div class="clearboth"> és társaival, hisz a clearfix pont ezt csinálja: a .clearfix:after beszúr egy új elemet az aktuális után (akkor most ez mégsem szabványos?), és annak beállítja a definícióban megadott stílusait. A végeredmény tehát ugyanaz, csak egy csomó extra hack kell a régebbi böngészők miatt. Ráadásul eddig akárhány oldalt néztem meg a clearfixről, egy helyen sem tudták beállítani egy elem magasságát 0-ra. Most akkor előrébb vagyunk?

Tehát szerintem mindegy, hogyan csináljuk, és nem azzal van baj, hogy ajánlasz egy alternatívát, hanem a stílusoddal, ahogy ezt előadod. Így gondolom én.

ui.: tapasztalataim szerint ez a három stílus szükséges ahhoz, hogy egy elem magasságát 0-ra állítsuk a lehető legtöbb böngészőben:

height: 0px;
font-size: 0px;
line-height: 0px;
5

"hisz a clearfix pont ezt

Leonuh · 2011. Dec. 5. (H), 13.17
"hisz a clearfix pont ezt csinálja: a .clearfix:after beszúr egy új elemet az aktuális után" -> nezz utana mit csinal pontosan... mert nem azt amit ideirtal ;)

"Ráadásul eddig akárhány oldalt néztem meg a clearfixről, egy helyen sem tudták beállítani egy elem magasságát 0-ra" -> pedig nem okoz nagy fejtorest :)

Az hogy elorebb vagyunk - e? Mert aki elolvassa a cikkeket az tudja a helyes valaszt...

A stilusom? Valaki utalja valaki szereti... Altalaban nincs koztes... Nyers vagyok, de 90%ban nem mondok hulyesegeket... ;)
6

nezz utana mit csinal

Hidvégi Gábor · 2011. Dec. 5. (H), 14.15
nezz utana mit csinal pontosan... mert nem azt amit ideirtal ;)
W3C CSS 2 ide vonatkozó része:
- a böngésző beszúr az adott elem elé vagy mögé egy új node-ot
- alkalmazza rá a :after vagy :before-ben megadott stílusokat
For example, the following document fragment and style sheet:

<p> Text </p> p:before { display: block; content: 'Some'; }
...would render in exactly the same way as the following document fragment and style sheet:

<p><span>Some</span> Text </p> span { display: block }

Az egészet a következő kavarja meg:
Generated content does not alter the document tree. In particular, it is not fed back to the document language processor (e.g., for reparsing).
Az oldalon leírtak szerint a beszúrt tartalom bizony egy teljes értékű html elem, csak nem jelenhet meg a dokumentumfában.

egy helyen sem tudták beállítani egy elem magasságát 0-ra" -> pedig nem okoz nagy fejtorest :)
Az általad ajánlott oldalaknak sem sikerült, tehát mégsem egyértelmű a dolog.
7

Ezt nem tudom hol olvasod de

Leonuh · 2011. Dec. 5. (H), 14.45
Ezt nem tudom hol olvasod de egy picit az idegeimet kezdi kiszedni:
a böngésző beszúr az adott elem elé vagy mögé egy új node-ot

https://developer.mozilla.org/en/CSS/:before
Idezem:
:before creates a pseudo-element that is the first child of the element matched

Kovetkeztetes: Az elem a megadott elem elso vagy utolso eleme lesz ami a domban nem jelenik meg. Nem pedig ele vagy moge fogja rakni hanem BELE az elejere / vegere.

Ergo amit elozoleg leirtal az semmin sem valtoztat.

Es hogy ne a levegobe irkaljak gyakorlatba is megmutatom: http://jsfiddle.net/6R3FR/
8

Hát, ezt rosszul gondoltam (a

Hidvégi Gábor · 2011. Dec. 5. (H), 15.08
Hát, ezt rosszul gondoltam (a W3C-n nem volt ilyen egyértelmű, "the :before and :after pseudo-elements specify the location of content before and after an element's document tree content"), ajvé, de a lényegen valóban nem változtat: létrejön egy új elem, ami egyenértékű a <div class="clear">-rel. Ez utóbbinak ugye az a nagy előnye, hogy nem kell hozzá semmiféle otromba hack.

A linkelést még egy picit gyakorold : )
10

pici off

Pepita · 2011. Dec. 6. (K), 02.04
Nyers vagyok, de 90%ban nem mondok hulyesegeket... ;)

Ez a mondatod asszem a 10%-ban van...
11

Ez ütött : )

Hidvégi Gábor · 2011. Dec. 6. (K), 11.17
Ez ütött : )
9

CSS 2 flow control:This

Hidvégi Gábor · 2011. Dec. 5. (H), 15.31
CSS 2 flow control:
This property indicates which sides of an element's box(es) may not be adjacent to an earlier floating box. The 'clear' property does not consider floats inside the element itself or in other block formatting contexts.
Szóval lényegtelen, hogy a konténerbe vagy mögé rakom a <clear> elemet. Na, most már ezt is tudom.