How can I center something if I don't know ahead of time what the width is?

后端 未结 8 1835
生来不讨喜
生来不讨喜 2021-01-06 08:02

I am trying to center a paragraph tag with some text in it within a div, but I can\'t seem to center it using margin: 0 auto without having to specify a fixed width for the

相关标签:
8条回答
  • 2021-01-06 08:34

    I think the best method is to contain the element in a block level element and do:

    .innerElement {margin:0 auto}
    

    Given they are both block level elements that don't have the float parameter, it should work great!

    0 讨论(0)
  • 2021-01-06 08:35

    if the div has set width all you need is

    .myDiv { text-align:center; }

    Also listen to garry's comment. under no circumstances use inline css.

    Also another dirty fix for this in case you have other stuff in the div to centre:

    you can always:

    $('.youParagraph or .otherContent').wrap('');

    Obviously do not practice this if you work within a large team and separation of concerns is an issue.

    I hope this helped.

    0 讨论(0)
  • 2021-01-06 08:40

    Here's how to do it using a style sheet.

    Style sheet:

    div.center-content
    {
        text-align: center;
    }
    
    div.center-content p
    {
        text-align: left;
        margin-left: auto;
        margin-right: auto;
    }
    

    HTML:

    <div class="center-content">
        <p>Lorem ipsum dolor sit amet</p>
    </div>
    
    0 讨论(0)
  • 2021-01-06 08:41

    Found this: Centering Block-level Content With Unknown Width.

    0 讨论(0)
  • 2021-01-06 08:45

    Eh, auto margins need set width since by default block-level element, such as

    would expand onto whole available width.

    If you're not supporting IE < 8 you could just set { display: table; margin: 0 auto; }

    Otherwise, if your element is surrounded by block-level elements, you could do p { display: inline-block; } p { display: inline; } html > /**/ body p { display: inline-block; } (last two rules are for IE and resetting IE fix for sane browsers) after that, apply { text-align: center; } on the container.

    As someone mentioned already, see http://haslayout.net/css-tuts/Horizontal-Centering for more info.

    Cheers! Zoffix Znet

    0 讨论(0)
  • 2021-01-06 08:46

    Besides "text-align" property

    for centering elements inside block elements like div

    use css like

    
     margin:auto
    
    

    something like what is posted below

    When vertically-centering, its better to use Tables (this in most cases is the only the cross-browser compatible solution )

    you can use

     "text-align:center"  
    
     "vertical-align:middle" 
    
    0 讨论(0)
提交回复
热议问题