Solved

Make Iframe work with position relative using clip:rect

Posted on 2009-05-06
5
3,499 Views
Last Modified: 2012-05-06
Hi, I am trying to figure out how to do an iframe of just a portion of a page (in this example the news highlight of yahoo).  I got this to work with position:absolute, but I cannot seem to get this to work with position:relative.  What happens is the portion of the target page that I am clipping shows up on the left side.  

I would like to use this on a page that is centered, so position:absolute is not an option.  Ideally I would like to put a float tag around all of this and treat the iframe like an image.  I tried to do a float and also a table (putting the iframe in the center col of the table).  I can't seem to carry over what I have done in my code example to anything position:relative.

Any ideas on where I should go with this?  

I am not using the Yahoo page in my actual page, I am just using this as an example.  


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

<title>Untitled Document</title>

</head>

<body>

<DIV STYLE="position: absolute; left: -50px; top: -100px; clip:rect(165px 595px 415px 160px);">

  <iframe width="595" height="415" src="http://yahoo.com" scrolling="no"></iframe>

</div>

</body>

</html>

Open in new window

0
Comment
Question by:tresmanos
  • 3
  • 2
5 Comments
 
LVL 14

Accepted Solution

by:
xberry earned 500 total points
ID: 24323019
Well, I think the trick is that you first create a parent div with relative positioning and then a child div
that you can use in order to position absolute in relation to the parents postion:

If you try the modified example below you'll see that you can position your iframe in center div:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Untitled Document</title>
</head>
<div>
<Div style="width: 200px; float: left;">something left</Div>
<div style="width: 600px; position: relative; float: left;">
<DIV STYLE="position: absolute; left: -50px; top: -100px; clip:rect(165px 595px 415px 160px);">      
  <iframe width="595" height="415" src="http://yahoo.com" scrolling="no"></iframe>
</div>
</div>
</body>
</html>
0
 

Author Closing Comment

by:tresmanos
ID: 31578789
Thanks, that helps a lot!  I knew it had to be something simple that I just wasn't seeing.  

Very nice!!!
0
 

Author Comment

by:tresmanos
ID: 24327828
I know I just gave you the points, what you told me helps, but I have another question.  I changed up your code a bit and found that the iframe sits on top of the text.  Do you know if it's possible to have the text wrap around the iframe?  

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

<title>Untitled Document</title>

</head>

<body>
 

<div>something left something left something left something left something left something left something left something left something left something left something left something left something left something left something left something left something left something left something left something left something left something left something left something left something left something left something left something left something left something left something left something left something left something left something left something left something left something left something left something left something left something left something left something left something left something left something left something left something left something left something left something left something left something left something left something left something left something left something left something left something left something left something left something left something left something left something left something left something left something left something left something left something left something left something left something left something left something left something left something left something left something left something left something left something left something left something left something left something left something left something left something left something left something left something left something left something left something left something left something left something left something left something left something left something left something left something left something left something left something left something left something left something left something left something left something left something left something left 
 

	<div style="width: 400px; position: relative; float: right;">

		<div style="position: absolute; left: -250px; top: -350px; clip:rect(165px 595px 415px 160px);">      

			<iframe width="595" height="415" src="http://yahoo.com" scrolling="no"></iframe>

		</div>

	</div>
 

</div>
 

</body>

</html> 

Open in new window

0
 

Author Comment

by:tresmanos
ID: 24327996
I'll actually open a new question since this one is already closed.  
0
 
LVL 14

Expert Comment

by:xberry
ID: 24328024
Glad i could help

>>> I knew it had to be something simple that I just wasn't seeing.

I would be glad if I would reckognize the simple things in life all the time, but ... ;-))
Anyway, nice you did appreciate that too, because there certainly more complicated solutions
out there ... welcome ;-)
0

Featured Post

Do You Know the 4 Main Threat Actor Types?

Do you know the main threat actor types? Most attackers fall into one of four categories, each with their own favored tactics, techniques, and procedures.

Join & Write a Comment

Suggested Solutions

CSS3 Custom checkboxes This article shows how to style the checkbox form element using only CSS. Works in: Chrome, FF, Safari, Opera, IE9+ Uses modernizr.js to check for :checked pseudo class, falling back to plain old checkboxes (IE8 and bel…
Styling your websites can become very complex. Here I'll show how SASS can help you better organize, maintain and reuse your CSS code.
In this tutorial viewers will learn how to position items using CSS's three positioning types Create a new HTML document with an internal stylesheet.: Create another div in CSS and name it Absolute : Type "position:absolute;" and "top:10px; left:50p…
In this tutorial viewers will learn how to style different bullet points for unordered lists in CSS. Begin with a normal unordered list; the default bullet point is a solid circle: In the CSS, create a defined class of unordered list by typing "ul.S…

707 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

14 Experts available now in Live!

Get 1:1 Help Now