• 0

Need help with 100% height float element


Question

Hey all. Right now I am trying to get the left navigation button to be a height of 100% because this will be my mobile CSS sheet.

I want it to go all the way down the white element that it is in.

The pink background color is there to help me see what's going on.

I'm using Firefox's web dev. inspector and it seems the #left-col is not height 100%, which means I won't be able to get the #prev-button-i to be height 100%, which is what I need.

My thought is maybe this is caused by the float? Maybe it really is at height 100% but it's just displayed differently because of the left float?

The site with the issue

http://alllols.com/index3.php

http://alllols.com/stylem.css

The main site with no issue (maybe it's useful?)

http://alllols.com/index.php

http://alllols.com/style.css

If anyone is curious, I just made this site for fun to learn PHP and MySQL :)

16 answers to this question

Recommended Posts

  • 0

Hard to figure out what is up because you seem to have height:100% on just about everything

Thank god I'm not the only one.

Could it be because, if when there is no float, it is at 100% height. So when it's floating, it is at 100%, we just perceive it to not be at 100% height?

  • 0

Thank god I'm not the only one.

Could it be because, if when there is no float, it is at 100% height. So when it's floating, it is at 100%, we just perceive it to not be at 100% height?

if you didn't abuse 100% height like this the height of all the elements should have been based on the content and there shouldn't have been any bug at all :p

Also don't use float on every single element either, float is usseless when there is no element next to it, and use other position types then static(default) if neccessary (absolute, relative, fixed).

  • 0

if you didn't abuse 100% height like this the height of all the elements should have been based on the content and there shouldn't have been any bug at all :p

Also don't use float on every single element either, float is usseless when there is no element next to it, and use other position types then static(default) if neccessary (absolute, relative, fixed).

Can you be more specific? I need that button to be 100% height because resolutions change. What am I supposed to do?

  • 0

Can you be more specific? I need that button to be 100% height because resolutions change. What am I supposed to do?

you mean the next and previous buttons right?

if so, try using fixed or absolute:


.nextbutton {
position: absolute;
top: 0;
bottom: 0;
right: 0;
width: 30px;
}
[/CODE]

  • 0

I don't want to sound rude but that's some nasty code here. I don't even know where to start. Maybe reading a book on css would be a good idea ...

prev-button-a cannot go all the way down the element it is in because there's a br after it. You should apply display:block to prev-button-a since you have a block level element inside it. Never put a block level element inside an inline element. The height 100% to prev-button-i will never ever do anything for 2 reasons. Its parent is an inline element (which doesn't support the height property). The height of an inline element is the height of the line (line-height). If you apply display:block to the parent of prev-button-i then it wont change anything cause the height of its parent (prev-button-a) is set to auto (ie the height of the content inside it which is min-height:100px).

<div id="left-col"> height is set to auto too. Like prev-button-a it will take the height of the content part of the normal page flow inside it. Its height will be 100px too if you remove the br (min-height:100px). Add to this the padding 60px at the top. Add to this the line-height of the br under it if you don't remove it. This element is floated. It is not part of the normal page flow. The reason <div id="left"> has an height is because of the central content (which is part of the normal page flow). As far as <div id="left-col"> goes its parent doesn't have any height other than min-height:220px.

Here's a quote from the css spec :

percentage

Specifies a percentage height. The percentage is calculated with respect to the height of the generated box's containing block. If the height of the containing block is not specified explicitly (i.e., it depends on content height), and this element is not absolutely positioned, the value computes to 'auto'.

So according to the css spec since the parent's height of <div id="left-col"> is not explicitely specified and <div id="col-left"> is floated then its height in % is then set to auto.

prev-button-i height is 100px because of min-height:100px. Remove this property and its height will then become 0px. You should try working with absolute positionning instead since absolu

  • 0

Here's something to help you start. It's not perfect by any mean since i did this really quickly in my break in about 10 min (with the previous post).

#left-col{
	width: 56px;
	height: 95%;
	position: absolute;
	left: 0px;
	top: 60px;
}

#prev-button-a{
	display: block;
	height: 100%;
}

#prev-button-i {
	height: 100%;
	width: 56px;
	background: url("./s_images/prev-button.png") no-repeat scroll 0% 0% rgb(255, 0, 255);
	min-height: 100px;
}

You should think about merging prev-button-i into prev-button-a. No reason to have both.

  • 0

It is indeed some messy css but rewriting it all might not be a option he would like to choose :p

That's why I posted the position absolute code, which should work no matter what the parent elements are like(ofcourse the parent elements shouldn't have position relative or fixed in that case)

  • 0

Thanks guys, I will try this later today. And LaP, why is my CSS so bad looking? Is there anywhere online that could help me with this?

You can read the specification. It's a daunting task but if you are serious about web design i think it's something that needs to be done once.

http://www.w3.org/TR/2011/REC-CSS2-20110607/

If you find reading the specification boring then a book is probably your best option. But i actually think the specification is easy to read and well explained.

After that you can find a good blog to learn about the quicks. I'm french so the blogs i'm reading are mostly french but i'm sure you can find good ones in english too. Here's one of the blog i read once a week.

http://www.alsacreations.com/

If you want to start with html5 there's a good free online book.

http://diveintohtml5.info/

http://html5please.com/

You should take a look at responsive web design too specially if you are into mobile web site.

http://alistapart.com/article/responsive-web-design

  • 0

Thanks guys, I will try this later today. And LaP, why is my CSS so bad looking? Is there anywhere online that could help me with this?

a large part is complexity. if you write the earlier rules only with what it ends up looking in mind without thinking forward (i.e. have a general plan of how you're laying everything out before writing any code) you often end up having to put in unnecessary properties to hack the result into what you want it to be. despite the name, too many cascades make it really difficult to work with because anyone troubleshooting can't tell head from toes.

  • 0

a large part is complexity. if you write the earlier rules only with what it ends up looking in mind without thinking forward (i.e. have a general plan of how you're laying everything out before writing any code) you often end up having to put in unnecessary properties to hack the result into what you want it to be. despite the name, too many cascades make it really difficult to work with because anyone troubleshooting can't tell head from toes.

This and the usual diseases called "classite" and "divite".

You don't have to put everything in a div with a class attached to it. When you have 5-6 levels deep of div it becomes as bad as using tables.

The web site is really simple yet the code is hard to read without a dom inspector.

Here's a good example :

&lt;div id="footer"&gt;&lt;div id="footer-text"&gt;&lt;span&gt; ? &lt;/span&gt;&lt;span&gt; ? &lt;/span&gt;&lt;span&gt; ? &lt;/span&gt;&lt;span&gt; ? &lt;/span&gt;&lt;span&gt; ? &lt;/span&gt;&lt;/div&gt;&lt;/div&gt;

There's no reason to have 2 divs here. The spans are also useless since all the text share the same visual style. The css of the span > a in this footer could be merged.

You should use meaningful tag as much as possible. a for link. p for paragraph. h for headers. etc etc etc

The div and span tags have no meaning. They do not inform the reader about the content. Ideally they should be used only when you need to group elements and apply a common visual style to them.

This topic is now closed to further replies.
  • Posts

    • YouTube has finally brought back its DMs feature, but only in these countries by David Uzondu Late last year, YouTube started testing a "new" way to share videos directly with friends, without having to leave the app. Now, the video giant has announced that is now rolling out a revamped direct messaging inbox, which lets you share videos, Shorts, and live streams and have conversations about them, directly on YouTube. The platform limits this feature to 18+ users who are signed in to a verified channel and use the latest mobile app version. Direct messaging on YouTube first became a thing back in 2017 inside the mobile app (later renamed to "Messages"), where users could chat one-on-one and share clips directly, but all that came to an end on September 18, 2019, when Google decided to shut it down after giving users a month to download a .zip file archive of their past chats. No one really knows why YouTube killed the feature, but users were encouraged to migrate to the public Comments section, on Community tab posts, and via YouTube Stories. The previous incarnation suffered from moderation challenges, prompting Google to implement stricter safety guidelines and age verifications for this new iteration. Here's a list of the countries where the re-launched feature is currently available, though note that Brand Accounts do not have access to it, at least for now: Countries American Samoa Austria Belgium Brazil Bulgaria Croatia Cyprus Czech Republic Denmark Estonia Finland France Germany Greece Guam Hungary Iceland Ireland Italy Latvia Liechtenstein Lithuania Luxembourg Malta Netherlands Northern Mariana Islands Norway Poland Portugal Puerto Rico Romania Singapore Slovakia Slovenia Spain Sweden Switzerland U.S. Virgin Islands United Kingdom United States Before you can use the feature, you first have to send an invite link to your contact. Invite links expire exactly seven days after you create them. If the person on the other end accepts the invite, you can exchange videos directly and text back and forth inside the app. To delete a message, just long-press on the message and tap unsend to remove it for both users. You can also delete entire conversations by long-pressing the thread and selecting delete, but the other person will continue to see the chat history on their end. To make sure everything remains safe, YouTube monitors these messages to ensure they follow Community Guidelines.
    • The problem of course is simply that government does not always know best. My point is that agency is taken away from the EU consumer in these cases. I'm sorry, but I do not believe that governments (politicians) are inherently good, and "looking out for me." Primarily they look to themselves and their own personal desires first, foremost, and always. When the EU or the DOJ fines these companies, claiming to "represent the welfare of the consumer," how much of these billion-dollar judgments are handed to the consumers they claim to represent? Not even a dollar, as I've seen. Yet the EUC lawyers who are paid to sit around and dream up these suits make huge commissions on the fines the EUC adjudicates, which is an ironclad fact I hope everyone is aware of. It's also rank corruption, of course, but that's another topic. Last, when the EU inflicts these judgments, or the DOJ, take your pick, the costs are bundled right along in the cost of the goods and services these companies provide the consumers they are "looking out for." If you are someone who believes his government is his savior then you have my condolences. I think Apple is right here, because the whole scheme of consumer choice is that consumers pick and choose among the products companies offer. Microsoft Windows is more compatible with third party software and hardware than any desktop OS on Earth, which is my sole reason for choosing it. Just because the EUC forces companies do certain things it knows the companies do not want to do, "or else", has no bearing on consumer benefit. This Siri thing is almost idiotic it's so infantile. But this is what the EUC does when the EU in Brussels becomes cash-strapped and needs a big infusion of cash. Some people get upset by "big companies" but it's the opposite when governments dwarf the size and scope of these companies, which is so obvious it hurts.... I mean you can't honestly believe that forcing Apple to do things with Siri it has its own reasons to decline is something that "opens up" Apple, do you? Say it aint' so...
    • Looks like many years since the request was made, a directory tree view finally may be added. https://github.com/files-community/Files/pull/18537
    • Is it still super slow or has it improved on that area?
    • There's this from last year https://gist.github.com/threat...364659a8887841aa43deca4efd9 but nothing about a buffer overflow that MS somehow can't code against. No matter what, it makes sense to take a "protected by default" approach.
  • Recent Achievements

    • One Month Later
      sjbousquet earned a badge
      One Month Later
    • Week One Done
      sjbousquet earned a badge
      Week One Done
    • First Post
      DragonOfMercy earned a badge
      First Post
    • First Post
      bella52 earned a badge
      First Post
    • Reacting Well
      Techinmay earned a badge
      Reacting Well
  • Popular Contributors

    1. 1
      +primortal
      501
    2. 2
      PsYcHoKiLLa
      213
    3. 3
      +Edouard
      156
    4. 4
      Steven P.
      84
    5. 5
      FloatingFatMan
      72
  • Tell a friend

    Love Neowin? Tell a friend!