CSS内联块问题

时间:2011-12-29 11:02:23

标签: css

我一直在为我的朋友的网页制作CSS布局,遇到了一些问题。也许,你将能够帮助我。

第一个问题是我的css似乎没有在我的1px bg文件中承认“repeat-y”。当我硬编码“高度”值时,它确实做到了,但由于项目是MVC3并且内容是动态生成的,所以我无法做到这一点。我做的是运行javascript函数“onload”,测量填充div并为有问题的“repeat-y”div设置正确的高度。解决方案并不完美,因为它在没有“repeat-y”的情况下加载页面,并且仅在加载完成时加载它们,因此存在明显的变化。你对如何制作纯CSS有任何想法吗?

第二个问题更令人讨厌的是,当我最终开始显示“repeat-y”时,“内联块”破了(我猜)。现在它看起来像这样:http://dl.dropbox.com/u/1201937/CSS.png。 所以中间的div被推倒了。位移不是恒定的。当我加载一个内容多三倍的页面时,它实际上变得更小了。但我并没有改变这是不可接受的事实。

现在有些代码:

HTML:

<div class="contentMid">
    <div id="leftHeight" class="contentML">
    </div>
    <div id="measuredDiv" class="contentM">
        @RenderBody()
    </div>
    <div id="rightHeight" class="contentMR">
    </div>
</div>

CSS:

.contentMid 
{
    white-space:nowrap;
    display:inline-block;
    float:left;
    clear:left;
}

.contentMid .contentML
{
    background-image: url("/content/images/content-shadow-l.png");
    background-repeat: repeat-y;
    width:30px;
}

.contentMid .contentMR
{
    background-image: url("/content/images/content-shadow-r.png");
    background-repeat: repeat-y;
    margin-left:2px;
    width:25px;    
}

.contentMid .contentM
{
    padding: 0px 10px 20px 10px;
    background-color:#f5f5f5; 
    margin-left:2px; 
    width:949px;
}

如果它对任何人感兴趣,这就是JS脚本。

function fixHeights(){
    document.getElementById("leftHeight").style.height = document.getElementById("measuredDiv").offsetHeight + "px";
    document.getElementById("rightHeight").style.height = document.getElementById("measuredDiv").offsetHeight + "px";
}

非常感谢任何帮助。 谢谢!

PS。哦。问题是跨浏览器FF / IE / Ch

JSFiddle示例:http://jsfiddle.net/the_r/ZEw5M/。请注意删除JS脚本时会发生什么。内容没有移位,但你没有得到左右阴影

1 个答案:

答案 0 :(得分:0)

将此添加到css:

.contentMid:after{
  content: "\0020";
  display: block;
  height: 0;
  clear: both;
  overflow: hidden;
  visibility: hidden;
}