Solved

Text appearing outside of relative div container

Posted on 2011-03-17
4
677 Views
Last Modified: 2012-05-11
I have some nested div containers built from simple html & css.  One of the div tags is positioned relatively within the containing div, which is floated in the page.  The text in this child div (with the class StoreMapPOS) is appearing well outside of the container.  I've tried various display tags for the child div's class, but it ends up messing up the displayed box's relative position.  

The graphic boxes appear as they should, the text "ACK!" appears outside of its containing div tag in FireFox.  I haven't tested in IE yet.  I would like "ACK!" to appear within the small black box.

Example:
http://www.thomas-clayton.com/Test.asp

HTML:
<link rel="stylesheet" type="text/css" href="styles.css" />
<Html>
<body>
<div class="StoreMap">Problem Container<br>
<div class="StoreMapFront">
Floor Front</div>
<div class="StoreMapMiddle">
Floor Mid</div>
<div class="StoreMapBack">
Floor Back</div>
<div class="StoreMapOther">
Stock Other</div>
<div class="StoreMapPOS">
AcK!</div>
<br>
</body>
<html>

Open in new window


CSS:
body
{
background-color:rgb(180,190,110);
margin:0em;
}
.StoreMap
{
width:310px;
height:120px;
float:left;
}
.StoreMapRight
{
width:310px;
height:120px;
float:right;
}
.StoreMapFront
{
text-align:center;
border-color:black;
color:white;
border-style: solid;
border-width: 1px;
font-weight:bold;
width:73px;
height:98px;
float:left;
}
.StoreMapMiddle
{
text-align:center;
border-color:black;
color:white;
border-style: solid;
border-width: 1px;
font-weight:bold;
width:73px;
height:98px;
float:left;
}
.StoreMapBack
{
text-align:center;
border-color:black;
color:white;
border-style: solid;
border-width: 1px;
font-weight:bold;
width:73px;
height:98px;
float:left;
}
.StoreMapOther
{
text-align:center;
border-color:black;
color:white;
border-style: solid;
border-width: 1px;
font-weight:bold;
width:73px;
height:98px;
float:left;
}
.StoreMapPOS
{
text-align:center;
border-color:black;
background-color:black;
color:white;
border-style: solid;
border-width: 1px;
font-weight:bold;
width:48px;
height:48px;
position: relative;
top:25px;
left:88px;
}

Open in new window

0
Comment
Question by:von_rugen
  • 2
4 Comments
 
LVL 20

Expert Comment

by:Mark Brady
ID: 35160508
add

overflow:hidden

to the problem container and nothing will show outside of it.
0
 

Author Comment

by:von_rugen
ID: 35160842
Using "overflow:hidden" disrupts the black box's relative placement (moves it outside of the container).  I need the black box to remain where shown and the text "Ack!" to appear within the black box.
0
 

Author Comment

by:von_rugen
ID: 35160854
BTW: If you're looking at my example with IE, it is ignoring the relative placement altogether.
0
 
LVL 6

Accepted Solution

by:
blueghozt earned 50 total points
ID: 35164300
placing the mark-up for the div inside the .StoreMapMiddle div and making that position:relative allows you to use absolute positioning to get it just right - see below
<Html>
<head>
<style>
body
{
background-color:rgb(180,190,110);
margin:0em;
}
.StoreMap
{
width:310px;
height:120px;
position:relative;
overflow:hidden;
}
.StoreMapRight
{
width:310px;
height:120px;
float:right;
}
.StoreMapFront
{
text-align:center;
border-color:black;
color:white;
border-style: solid;
border-width: 1px;
font-weight:bold;
width:73px;
height:98px;
float:left;
}
.StoreMapMiddle
{
text-align:center;
border-color:black;
color:white;
border-style: solid;
border-width: 1px;
font-weight:bold;
width:73px;
height:98px;
float:left;
position:relative;
}
.StoreMapBack
{
text-align:center;
border-color:black;
color:white;
border-style: solid;
border-width: 1px;
font-weight:bold;
width:73px;
height:98px;
float:left;
}
.StoreMapOther
{
text-align:center;
border-color:black;
color:white;
border-style: solid;
border-width: 1px;
font-weight:bold;
width:73px;
height:98px;
float:left;
}
.StoreMapPOS
{
text-align:center;
border-color:black;
background-color:black;
color:white;
border-style: solid;
border-width: 1px;
font-weight:bold;
width:48px;
height:48px;
position: absolute;
top:25px;
left:12px;
}
</style>
</head>
<body>
<div class="StoreMap">Problem Container<br>
	<div class="StoreMapFront">
	Floor Front</div>
	<div class="StoreMapMiddle">
	   Floor Mid
          <div class="StoreMapPOS">AcK!</div>
        </div>
	<div class="StoreMapBack">
	Floor Back</div>
	<div class="StoreMapOther">
	Stock Other</div>
</div>
<br>
</body>
<html>

Open in new window

0

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Styling your websites can become very complex. Here I'll show how SASS can help you better organize, maintain and reuse your CSS code.
This article explains how to prepare an HTML email signature template file containing dynamic placeholders for users' Azure AD data. Furthermore, it explains how to use this file to remotely set up a department-wide email signature policy in Office …
In this tutorial viewers will learn how to style rounded corners for elements in CSS using the border-radius property Begin with a normal styled element such as a div: To style all four corners of the div to be the same degree of roundness, use the …
HTML5 has deprecated a few of the older ways of showing media as well as offering up a new way to create games and animations. Audio, video, and canvas are just a few of the adjustments made between XHTML and HTML5. As we learned in our last micr…

914 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

21 Experts available now in Live!

Get 1:1 Help Now