How to change a DIV padding without affecting the width/height ?

后端 未结 5 688
死守一世寂寞
死守一世寂寞 2020-12-22 18:52

I have a div that I want to specify a FIXED width and height for, and also a padding which can be changed without decreasing the original DIV width/height or increasing it,

相关标签:
5条回答
  • 2020-12-22 19:28

    Declare this in your CSS and you should be good:

    * { 
        -moz-box-sizing: border-box; 
        -webkit-box-sizing: border-box; 
         box-sizing: border-box; 
    }
    

    This solution can be implemented without using additional wrappers.

    This will force the browser to calculate the width according to the "outer"-width of the div, it means the padding will be subtracted from the width.

    0 讨论(0)
  • 2020-12-22 19:35

    Solution is to wrap your padded div, with fixed width outer div

    HTML

    <div class="outer">
        <div class="inner">
    
            <!-- your content -->
    
        </div><!-- end .inner -->
    </div><!-- end .outer -->
    

    CSS

    .outer, .inner {
        display: block;
    }
    
    .outer {
        /* specify fixed width */
        width: 300px;
        padding: 0;
    }
    
    .inner {
        /* specify padding, can be changed while remaining fixed width of .outer */
        padding: 5px;
    }
    
    0 讨论(0)
  • 2020-12-22 19:43

    To achieve a consistent result cross browser, you would usually add another div inside the div and give that no explicit width, and a margin. The margin will simulate padding for the outer div.

    0 讨论(0)
  • 2020-12-22 19:49

    try this trick

    div{
     -webkit-box-sizing: border-box; 
     -moz-box-sizing: border-box;    
     box-sizing: border-box;      
    }
    

    this will force the browser to calculate the width acording to the "outer"-width of the div, it means the padding will be substracted from the width.

    0 讨论(0)
  • 2020-12-22 19:52

    Sounds like you're looking to simulate the IE6 box model. You could use the CSS 3 property box-sizing: border-box to achieve this. This is supported by IE8, but for Firefox you would need to use -moz-box-sizing and for Safari/Chrome, use -webkit-box-sizing.

    IE6 already computes the height wrong, so you're good in that browser, but I'm not sure about IE7, I think it will compute the height the same in quirks mode.

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