Center a H1 tag inside a DIV

后端 未结 7 754
遥遥无期
遥遥无期 2020-12-15 15:39

I have the following DIV inside a body tag:

Yes

And these are their CSS classes

相关标签:
7条回答
  • 2020-12-15 15:57
    <div id="AlertDiv" style="width:600px;height:400px;border:SOLID 1px;">
        <h1 style="width:100%;height:10%;text-align:center;position:relative;top:40%;">Yes</h1>
    </div>
    

    You can try the code here:

    http://htmledit.squarefree.com/

    0 讨论(0)
  • 2020-12-15 15:59

    Started a jsFiddle here.

    It seems the horizontal alignment works with a text-align : center. Still trying to get the vertical align to work; might have to use absolute positioning and something like top: 50% or a pre-calculated padding from the top.

    0 讨论(0)
  • 2020-12-15 16:00

    You can add line-height:51px to #AlertDiv h1 if you know it's only ever going to be one line. Also add text-align:center to #AlertDiv.

    #AlertDiv {
        top:198px;
        left:365px;
        width:62px;
        height:51px;
        color:white;
        position:absolute;
        text-align:center;
        background-color:black;
    }
    
    #AlertDiv h1 {
        margin:auto;
        line-height:51px;
        vertical-align:middle;
    }
    

    The demo below also uses negative margins to keep the #AlertDiv centered on both axis, even when the window is resized.

    Demo: jsfiddle.net/KaXY5

    0 讨论(0)
  • 2020-12-15 16:06

    There is a new way using transforms. Apply this to the element to centre. It nudges down by half the container height and then 'corrects' by half the element height.

    position: relative;
    top: 50%;
    transform: translateY(-50%);
    -webkit-transform: translateY(-50%);
    -ms-transform: translateY(-50%);
    

    It works most of the time. I did have a problem where a div was in a div in a li. The list item had a height set and the outer divs made up 3 columns (Foundation). The 2nd and 3rd column divs contained images, and they centered just fine with this technique, however the heading in the first column needed a wrapping div with an explicit height set.

    Now, does anyone know if the CSS people are working on a way to align stuff, like, easily? Seeing that its 2014 and even some of my friends are regularly using the internet, I wondered if anyone had considered that centering would be a useful styling feature yet. Just us then?

    0 讨论(0)
  • 2020-12-15 16:07

    You could add padding to the h1:

    #AlertDiv h1 {
      padding:15px 18px;
    }
    
    0 讨论(0)
  • 2020-12-15 16:07

    You can use display: table-cell in order to render the div as a table cell and then use vertical-align like you would do in a normal table cell.

    #AlertDiv {
        display: table-cell;
        vertical-align: middle;
        text-align: center;
    }
    

    You can try it here: http://jsfiddle.net/KaXY5/424/

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