admin管理员组

文章数量:1323323

I've a simple javascript function which is meant to increase my sidebar div's height to make it equal to the height of the content div. this is how I am doing this....

Javascript:

<script type="text/javascript">
function absar(){
document.getElementById("sidebar").style.height = document.getElementById("content").clientHeight;
    }</script>

HTML:

<body onLoad="absar()">
<div id="sidebar" style="border:1px solid red">Few content</div>
<div id="content" style="border:1px solid red">
some content <br>
some content <br>
some content <br>
some content <br>
some content <br>
</div>
</body>

This code will make the height of sidebar equal to the height of content div. ** OK**

But when I paste same code in wordpress(where I've same id values content & sidebar) just after the body tag and provide onload="absar()" to body it does nothing, exactly nothing.

At this point when I've designed almost whole layout I can't go with a new solution like Faux Columns or table etc. .

I've a simple javascript function which is meant to increase my sidebar div's height to make it equal to the height of the content div. this is how I am doing this....

Javascript:

<script type="text/javascript">
function absar(){
document.getElementById("sidebar").style.height = document.getElementById("content").clientHeight;
    }</script>

HTML:

<body onLoad="absar()">
<div id="sidebar" style="border:1px solid red">Few content</div>
<div id="content" style="border:1px solid red">
some content <br>
some content <br>
some content <br>
some content <br>
some content <br>
</div>
</body>

This code will make the height of sidebar equal to the height of content div. ** OK**

But when I paste same code in wordpress(where I've same id values content & sidebar) just after the body tag and provide onload="absar()" to body it does nothing, exactly nothing.

At this point when I've designed almost whole layout I can't go with a new solution like Faux Columns or table etc. .

Share asked Dec 28, 2012 at 17:21 AbsarAkramAbsarAkram 3363 silver badges11 bronze badges 1
  • If you can share the link to your blog, someone might be able to take a peek at the error console and suggest you the fix. – techfoobar Commented Dec 28, 2012 at 17:37
Add a ment  | 

3 Answers 3

Reset to default 8

At last a stupid css trick worked and worked perfectly,....

for my sidebar div I set

padding-bottom: 5000px;
margin-bottom: -5000px;

and for the container which contained sidebar and content divs. I set

overflow: hidden;

and it worked perfectly - Just like the way I wanted, Please tell If you know any drawbacks of this trick,... I'll be posting here if I found some,

Below is the example code,

HTML

<div class="main">
<div class="sidebar">Few Sidebar Widgets</div>
<div id="content"> 
Bang Bang Content <br>
Bang Bang Content <br>
Bang Bang Content <br>
</div> <!-- End of Content -->
</div> <!-- End of Main -->

CSS

#main{
overflow:hidden;
}

#sidebar{
padding-bottom: 5000px;
margin-bottom: -5000px;
}

Further to @Absar 's answer, can I just add my adaptation?

I did this:

.container { 
  overflow: hidden; 
  .... 
} 

#sidebar { 
  margin-bottom: -101%;
  padding-bottom: 101%; 
  .... 
} 

I did the "101%" thing to cater for the (ultra rare) possibility that somebody may be viewing the site on a huge screen with a height more than 5000px!

Great answer though, Absar. It worked perfectly for me.

For several reasons, this should be solved by using proper CSS and HTML markup, not by Javascript. The main reason is the separation between your site logic and your presentation layer. CSS is just for visual layout, and simple presentation issues should be solved in the CSS domain. This seems to be the case of your question.

I suggest you have a look at this CSS-tricks article. It is both enlightening and thorough.

Hope it helps.

本文标签: htmlExtend Sidebar Height to equate Content Height Using JavascriptStack Overflow