How to center horizontal table-cell

前端 未结 4 1312
后悔当初
后悔当初 2020-12-16 11:03

I want the Content A, Content B, and Content C columns to be horizontally centered. I have this code been trying to add

http://jsfiddle.net/hsX5q/24/

HTML:m

相关标签:
4条回答
  • 2020-12-16 11:38

    Sometimes you have things other than text inside a table cell that you'd like to be horizontally centered. In order to do this, first set up some css...

    <style>
        div.centered {
            margin: auto;
            width: 100%;
            display: flex;
            justify-content: center;
        }
    </style>
    

    Then declare a div with class="centered" inside each table cell you want centered.

    <td>
        <div class="centered">
            Anything: text, controls, etc... will be horizontally centered.
        </div>
    </td>
    
    0 讨论(0)
  • 2020-12-16 11:44

    Short snippet for future visitors - how to center horizontal table-cell (+ vertically)

    html, body {
      width: 100%;
      height: 100%;
    }
    
    .tab {
      display: table;
      width: 100%;
      height: 100%;
    }
    
    .cell {
      display: table-cell;
      vertical-align: middle;
      text-align: center; /* the key */
      background-color: #EEEEEE;
    }
    
    .content {
      display: inline-block; /* important !! */
      width: 100px;
      background-color: #00FF00;
    }
    <div class="tab">
      <div class="cell">
        <div class="content" id="a">
          <p>Content</p>
        </div>
      </div>
    </div>

    0 讨论(0)
  • 2020-12-16 11:46

    If you add text-align: center to the declarations for .columns-container then they align centrally:

    .columns-container {
        display: table-cell;
        height: 100%;
        width:600px;
        text-align: center;
    }
    

    /*************************
     * Sticky footer hack
     * Source: http://pixelsvsbytes.com/blog/2011/09/sticky-css-footers-the-flexible-way/
     ************************/
    
    /* Stretching all container's parents to full height */
    
    html,
    body {
      height: 100%;
      margin: 0;
      padding: 0;
    }
    /* Setting the container to be a table with maximum width and height */
    
    #container {
      display: table;
      height: 100%;
      width: 100%;
    }
    /* All sections (container's children) should be table rows with minimal height */
    
    .section {
      display: table-row;
      height: 1px;
    }
    /* The last-but-one section should be stretched to automatic height */
    
    .section.expand {
      height: auto;
    }
    /*************************
     * Full height columns
     ************************/
    
    /* We need one extra container, setting it to full width */
    
    .columns-container {
    display: table-cell;
    height: 100%;
    width:600px;
    text-align: center;
    }
    /* Creating columns */
    
    .column {
      /* The float:left won't work for Chrome for some reason, so inline-block */
      display: inline-block;
      /* for this to work, the .column elements should have NO SPACE BETWEEN THEM */
      vertical-align: top;
      height: 100%;
      width: 100px;
    }
    /****************************************************************
     * Just some coloring so that we're able to see height of columns
     ****************************************************************/
    
    header {
      background-color: yellow;
    }
    #a {
      background-color: pink;
    }
    #b {
      background-color: lightgreen;
    }
    #c {
      background-color: lightblue;
    }
    footer {
      background-color: purple;
    }
    <div id="container">
      <header class="section">
        foo
      </header>
    
      <div class="section expand">
        <div class="columns-container">
          <div class="column" id="a">
            <p>Contents A</p>
          </div>
          <div class="column" id="b">
            <p>Contents B</p>
          </div>
          <div class="column" id="c">
            <p>Contents C</p>
          </div>
        </div>
      </div>
    
      <footer class="section">
        bar
      </footer>
    </div>

    This does, though, require that you reset the .column elements to text-align: left (assuming you want them left-aligned, obviously (JS Fiddle demo).

    0 讨论(0)
  • 2020-12-16 11:46

    Just add this class in your css

    .column p{
       text-align:center;
    }
    
    0 讨论(0)
提交回复
热议问题