首页 技术·教程

水平居中+阻止子元素定宽+ margin

<style>
      .parent {
        border: 1px solid #000;
        background-color: rgb(197, 108, 24);
        height: 200px;
      }

      .child {
        border: 1px solid #000;
        background-color: chartreuse;
        font-size: 32px;
        width: 150px;
        margin: 0 auto;
      }
    </style>
    <div class="parent">
      <div class="child">children 子元素</div>
    </div>

水平居中+ inline-block子元素不定宽+ text-align

<style>
      .parent2 {
        border: 1px solid #000;
        background-color: rgb(197, 108, 24);
        height: 200px;
        text-align: center;
      }

      .child2 {
        border: 1px solid #000;
        background-color: chartreuse;
        font-size: 32px;
        display: inline-block;
      }
    </style>
    <div class="parent2">
      <div class="child2">children 子元素</div>
    </div>

水平居中+ inline-block子元素定宽+ text-align

<style>
      .parent3 {
        border: 1px solid #000;
        background-color: rgb(197, 108, 24);
        height: 200px;
        text-align: center;
      }

      .child3 {
        border: 1px solid #000;
        background-color: chartreuse;
        font-size: 32px;
        width: 150px;
        display: inline-block;
      }
    </style>
    <div class="parent3">
      <div class="child3">children 子元素</div>
    </div>

水平居中+内联子元素不定宽+ text-align

<style>
      .parent4 {
        border: 1px solid #000;
        background-color: rgb(197, 108, 24);
        height: 200px;
        text-align: center;
      }

      .child4 {
        border: 1px solid #000;
        background-color: chartreuse;
        font-size: 32px;
        display: inline;
      }
    </style>
    <div class="parent4">
      <div class="child4">children 子元素</div>
    </div>

水平垂直居中+ flex +子元素不定宽高

<style>
      .parent5 {
        border: 1px solid #000;
        background-color: rgb(197, 108, 24);
        height: 200px;
        display: flex;
        justify-content: center;
        align-items: center;
      }

      .child5 {
        border: 1px solid #000;
        background-color: chartreuse;
        font-size: 32px;
      }
    </style>
    <div class="parent5">
      <div class="child5">children 子元素</div>
    </div> 

水平垂直居中+ flex +子元素不定宽高+ margin

<style>
      .parent6 {
        border: 1px solid #000;
        background-color: rgb(197, 108, 24);
        height: 200px;
        display: flex;
      }

      .child6 {
        border: 1px solid #000;
        background-color: chartreuse;
        font-size: 32px;
        margin: auto;
      }
    </style>
    <div class="parent6">
      <div class="child6">children 子元素</div>
    </div> 

水平垂直居中+网格+子元素不定宽高

<style>
      .parent7 {
        border: 1px solid #000;
        background-color: rgb(197, 108, 24);
        height: 200px;
        display: grid;
        justify-content: center;
        align-items: center;
      }

      .child7 {
        border: 1px solid #000;
        background-color: chartreuse;
        font-size: 32px;
      }
    </style>
    <div class="parent7">
      <div class="child7">children 子元素</div>
    </div> 

水平垂直居中+网格+子元素不定宽高(居中属性设置在子元素上)

<style>
      .parent8 {
        border: 1px solid #000;
        background-color: rgb(197, 108, 24);
        height: 200px;
        display: grid;
      }

      .child8 {
        border: 1px solid #000;
        background-color: chartreuse;
        font-size: 32px;
        justify-self: center;
        align-self: center;
      }
    </style>
    <div class="parent8">
      <div class="child8">children 子元素</div>
    </div> 

水平垂直居中+网格+子元素不定宽高+ margin

<style>
      .parent9 {
        border: 1px solid #000;
        background-color: rgb(197, 108, 24);
        height: 200px;
        display: grid;
      }

      .child9 {
        border: 1px solid #000;
        background-color: chartreuse;
        font-size: 32px;
        margin: auto;
      }
    </style>
    <div class="parent9">
      <div class="child9">children 子元素</div>
    </div> 

水平垂直居中+ absolute +子元素定宽高+ margin

<style>
     .parent10 {
       border: 1px solid #000;
       background-color: rgb(197, 108, 24);
       height: 200px;
       position: relative;
     }

     .child10 {
       border: 1px solid #000;
       background-color: chartreuse;
       font-size: 32px;
       margin: auto;
       width: 150px;
       height: 100px;
       position: absolute;
       left: 0;
       right: 0;
       bottom: 0;
       top: 0;
     }
   </style>
   <div class="parent10">
     <div class="child10">children 子元素</div>
   </div>

水平垂直居中+ absolute +子元素不定宽高+ margin

<style>
       .parent11 {
         border: 1px solid #000;
         background-color: rgb(197, 108, 24);
         height: 200px;
         height: 200px;
         position: relative;
       }

       .child11 {
         border: 1px solid #000;
         background-color: chartreuse;
         font-size: 32px;
         margin: auto;
         position: absolute;
         width: fit-content;
         height: fit-content;
         left: 0;
         right: 0;
         bottom: 0;
         top: 0;
       }
     </style>
     <div class="parent11">
       <div class="child11">children 子元素</div>
     </div>

水平垂直居中+ absolute +子元素不定宽高+ transform

<style>
         .parent12 {
           border: 1px solid #000;
           background-color: rgb(197, 108, 24);
           height: 200px;
           position: relative;
         }

         .child12 {
           border: 1px solid #000;
           background-color: chartreuse;
           font-size: 32px;
           margin: auto;
           position: absolute;
           left: 50%;
           top: 50%;
           transform: translate(-50%, -50%);
         }
       </style>
       <div class="parent12">
         <div class="child12">children 子元素</div>
       </div>

水平垂直居中+ table-cell +子元素不定宽高+ text-align + vertical-align

<style>
          .parent13 {
            border: 1px solid #000;
            background-color: rgb(197, 108, 24);
            height: 200px;
            /* width 设置百分比会失效,如果宽度不设置就由子元素的内容宽度决定 */
            width: 1000px;
            display: table-cell;
            text-align: center;
            vertical-align: middle;
          }

          .child13 {
            border: 1px solid #000;
            background-color: chartreuse;
            font-size: 32px;
          }
        </style>
        <div class="parent13">
          <div class="child13">children 子元素</div>
        </div>

水平垂直居中+ inline / inline-block子元素不定宽高+ vertical-align

<style>
          .parent14 {
            border: 1px solid #000;
            background-color: rgb(197, 108, 24);
            height: 200px;
            text-align: center;
          }

          .parent14::before {
            content: "";
            line-height: 200px;
            font-size: 0;
          }

          .child14 {
            border: 1px solid #000;
            background-color: chartreuse;
            font-size: 32px;
            /* display: inline-block; */
            display: inline;
            vertical-align: middle
          }
        </style>
        <div class="parent14">
          <div class="child14">children 子元素</div>
        </div>

水平垂直居中+书写模式+内联/内联块子元素不定宽高+ text-align

<style>
          .parent15 {
            border: 1px solid #000;
            background-color: rgb(197, 108, 24);
            height: 200px;
            writing-mode: vertical-lr;
            text-align: center;
          }

          .child15 {
            border: 1px solid #000;
            background-color: chartreuse;
            font-size: 32px;
            writing-mode: horizontal-tb;
            /* display: inline; */
            display: inline-block;
            width: 100%;
          }
        </style>
        <div class="parent15">
          <div class="child15">children 子元素</div>
        </div>

水平垂直居中+水平垂直居中+块子元素定宽+父元素高度由子元素决定+ padding / margin

<style>
          .parent16 {
            border: 1px solid #000;
            background-color: rgb(197, 108, 24);
          }

          .child16 {
            border: 1px solid #000;
            background-color: chartreuse;
            font-size: 32px;
            width: 150px;
            /* margin: auto; */
            /* padding: 50px 0; */
            margin: 50px auto;
          }
        </style>
        <div class="parent16">
          <div class="child16">children 子元素</div>
        </div>

水平垂直居中+子元素不定宽高+父元素高度由子元素决定+ line-height

<style>
          .parent17 {
            border: 1px solid #000;
            background-color: rgb(197, 108, 24);
            text-align: center;
          }

          .child17 {
            border: 1px solid #000;
            background-color: chartreuse;
            font-size: 32px;
            /* display: inline-block; */
            display: inline;
            line-height: 200px;
          }
        </style>
        <div class="parent17">
          <div class="child17">children 子元素</div>
        </div>

正方形十字居中

<style>
          .parent18 {
            border: 1px solid #000;
            background-color: rgb(197, 108, 24);
            width: 20%;
            position: relative;
          }
          .parent18::before {
            content: "";
            display: block;
            width: 0;
            height: 0;
            padding: 50% 0;
          }

          .child18::before, .child18::after {
            content: "";
            display: block;
            position: absolute;
            background-color: chartreuse;
            left: 50%;
            top: 50%;
            transform: translate(-50%, -50%);
          }
          .child18::before {
            width: 50%;
            height: 5%;
          }
          .child18::after {
            height: 50%;
            width: 5%;
          }
        </style>
        <div class="parent18">
          <div class="child18"></div>
        </div> 



文章评论

目录