Is it possible for inline-block element to auto fill the available width?

后端 未结 4 1942
悲&欢浪女
悲&欢浪女 2021-02-07 15:13

I have a

, which contains
and
, which themselve
相关标签:
4条回答
  • 2021-02-07 15:36

    That's not how inline-blocks are supposed to be used. Best thing to do here is make your navigation box float:left and leave the default display value alone.

    0 讨论(0)
  • 2021-02-07 15:44

    Ever heard of flex box model!!

    It is made just for that.

    Note in flexbox model all child elements act as flex box model you cant opt out certain things. Which mean if page has navigation and under it content div + side div. You can't make top navigation out of it. Which has implications. So solution is to have all things only that need flex box in one div.

    0 讨论(0)
  • 2021-02-07 15:46

    If your header, footer and wrapper have specific widths, then yes, you can have your main-container fill the available space. But if you're not specifying widths in your CSS, then you need to determine how big your main-container CAN be based on the rendered width of the containing element (wrapper). The only way to determine that width after the page loads is with javascript. If you want your site to have a dynamic width but still have your content (sub-navigation and main-container) fill the screen, you would either need to use javascript or percentages, and percentages can get ugly when you start looking at varying resolutions of monitors, laptops, etc...

    0 讨论(0)
  • 2021-02-07 15:55

    You have to remove the inline-block styles and float the #sub-navigation div. inline-block is not suited for what you are trying to achieve. When you add no display styles, the div element will be the default value which is block, block elements take up all the available space by default. By floating the #sub-navigation element you make it only take up the space required for its contents.

    #sub-navigation {
      width: 200px; 
      height: 150px; 
      float : left;
      vertical-align: top; 
      background-color: forestgreen; 
      color: white;
    }
    
    #main-container {
      padding: 10px;        
      overflow: auto; 
      background-color: yellow;
    }
    

    make sure to add a clear: left element after the #main-container

    0 讨论(0)
提交回复
热议问题