Я использую макет, похожий на макет из Dynamic Drive здесь:
http://www.dynamicdrive.com/style/layouts/item/css-right-frame-layout/
Основная область содержимого (белая) имеет переполнение, установленное на авто. Я дал innerTube внутри этой основной области содержимого границы. Однако, если содержимое в этом innerTube больше ширины основной области содержимого, горизонтальная полоса прокрутки будет отображаться, как и ожидалось, но в Firefox это содержимое будет «перекрывать» границу и исчезать с экрана (можно получить, прокручивая горизонтально) , Другими словами, правая граница остается на месте, а содержимое просто переходит к ее описанию и исчезает за правым столбцом.
В IE он ведет себя именно так, как я хочу - контент отодвигает границы за пределы экрана, чтобы быть видимым только после прокрутки там.
Полагаю, проще всего вставить сюда исходный код. Если вы скопируете его в пустой файл, вы поймете, что я имею в виду. Я только что использовал одно действительно длинное слово, чтобы повторить то, что происходит, если вместо этого есть широкое изображение.
Заранее спасибо всем, кто может мне помочь.
<!--Force IE6 into quirks mode with this comment tag-->
<!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" lang="en" xml:lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<style type="text/css">
body{
margin: 0;
padding: 0;
border: 0;
overflow: hidden;
height: 100%;
max-height: 100%;
}
#framecontent{
position: absolute;
top: 0;
bottom: 0;
right: 0;
width: 200px; /*Width of frame div*/
height: 100%;
overflow: hidden; /*Disable scrollbars. Set to "scroll" to enable*/
background: #cccccc;
color: white;
}
#maincontent{
position: fixed;
top: 0;
left: 0;
right: 200px; /*Set right value to WidthOfFrameDiv*/
bottom: 0;
overflow: auto;
background: #fff;
}
.innertube{
margin: 15px; /*Margins for inner DIV inside each DIV (to provide padding)*/
}
.innertubeWithBorder {
margin: 15px;
border: solid 1px #666666;
}
* html body{ /*IE6 hack*/
padding: 0 200px 0 0; /*Set value to (0 WidthOfFrameDiv 0 0)*/
}
* html #maincontent{ /*IE6 hack*/
height: 100%;
width: 100%;
}
</style>
</head>
<body>
<div id="framecontent">
<div class="innertube">
<h1>CSS Right Frame Layout</h1>
<h3>Sample text here</h3>
</div>
</div>
<div id="maincontent">
<div class="innertubeWithBorder">
<h1>Dynamic Drive CSS Library</h1>
<p>AReallyLongWordWhichIsSimilarToHavingAnImageWithWidthGreaterThanTheWidthOfThisDivToShowOverFlowProblemWithBorderSoIfYouResizeThisWindowNarrowerYouWillSeeWhatIMeanWorksFineInIEButNotFirefox</p>
<p>So I want that border over there ------> to dissappear behind the right hand column like it does in IE, and be visible once you use the scrollbar below and scroll to the right</p>
<p style="text-align: center">Credits: <a href="http://www.dynamicdrive.com/style/">Dynamic Drive CSS Library</a></p>
</div>
</div>
</body>
</html>