# CSS element positioning

Let's say we have 3 elements a,b, and c.
a is right above b and b is right above c.
Their heights change. What code would I use to position them since exact heights are not known and each elements must be relatively positioned to the previous element except "a" which is set at the top.

Related Programming and Computer Science News on Phys.org
What are these elements? Text, image, div, span etc? Your last comment is confusing.

What are these elements? Text, image, div, span etc? Your last comment is confusing.
Mostly text or images either one, just anything that has a variable height and cannot be positioned manually.

How do you want them positioned? I mean if you have 3 block divs they will naturally stack.

How do you want them positioned? I mean if you have 3 block divs they will naturally stack.
The first one should be positioned out of place in a non static position, for example 20 pixels down and 20 pixels to the right.

The first one should be positioned out of place in a non static position, for example 20 pixels down and 20 pixels to the right.
For box A use absolute positioning and the two other boxes use relative positioning to each other

For box A use absolute positioning and the two other boxes use relative positioning to each other
How would I get the value of another elements height?

How would I get the value of another elements height?
If using relative positioning why does it matter?

If using relative positioning why does it matter?
The heights would change so you could not use a specific number

The heights would change so you could not use a specific number
Do you want overlapping elements? The specific number will be relative to the parent element.

Do you want overlapping elements? The specific number will be relative to the parent element.
No overlapping, I need them to be right up against each other. Just seems like there's an easier way instead of having to manually put in values

No overlapping, I need them to be right up against each other. Just seems like there's an easier way instead of having to manually put in values
Side to side or top to bottom? You don't need any positioning, the divs boxes will stack if set to block automatically or set a float for side to side.

kolleamm
Side to side or top to bottom? You don't need any positioning, the divs boxes will stack if set to block automatically or set a float for side to side.
Thanks, I'll try more coding and see if it works

It's still not working.
HTML:
.container {
position: relative;
width: 500px;
margin: 20px auto;
border: solid grey 10px;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}

#content {
position: absolute;
display: block;
margin: 0 auto;
border: solid blue 10px;
}

<div class="container">
<p id="content" style="font-size: 48pt; display:block; width:600px; word-wrap: break-word;">hellooooooooooooooooooooooo</p>
<p id="content" style="font-size: 48pt; display:block;" >hello again</p>
</div>

#### Attachments

• 8.4 KB Views: 321
Last edited by a moderator:
It's still not working.
Several problems, but I need to leave for a few hours. I'll be back to work it out unless others chip in.

Sure no problem, thanks for your help either way!

Is this what you want?

HTML:
<!DOCTYPE html>
<html>
<style>

.container2 {
display:block;
overflow:auto;
border: solid grey 10px;
}

#content {
width:50%;
display: block;
float:right;
border: solid blue 4px;
box-sizing: border-box;
}

#content2 {
width:50%;
display: block;
float:left;
border: solid blue 4px;
box-sizing: border-box;
}
</style>
<body>

<div class="container2">
<div id="content">hellooooooooooooooooooooooo</div>
<div id="content2">hello again</div>
</div>

</body>
</html>

kolleamm
Thanks that seems to work!