跳至主要内容

CSS Center

垂直水平置中

  1. flex
.outer {
display: flex;
flex-direction: row;
align-items: center;
justify-content: center;
}

.inner {
/* nothing */
}
即時編輯器
function Demo() {
  return (
    <div className="size-52 bg-white flex flex-row items-center justify-center">
      <div className="size-5 bg-black" />
    </div>
  );
}

render(<Demo />);
結果
Loading...
  1. grid
.outer {
display: grid;
place-items: center;
}

.inner {
/* nothing */
}
即時編輯器
function Demo() {
  return (
    <div className="size-52 bg-white grid place-items-center">
      <div className="size-5 bg-black" />
    </div>
  );
}

render(<Demo />);
結果
Loading...
  1. flex + margin
.outer {
display: flex;
}

.inner {
margin: auto;
}
即時編輯器
function Demo() {
  return (
    <div className="size-52 bg-white flex">
      <div className="size-5 bg-black m-auto" />
    </div>
  );
}

render(<Demo />);
結果
Loading...
  1. relative + (absolute + top + left + transform)
.outer {
display: relative;
}

.inner {
display: absolute;
top: 50%;
left: 50%;
transform: translate(-50%,-50%);
}
即時編輯器
function Demo() {
  return (
    <div className="size-52 bg-white relative">
      <div className="size-5 bg-black absolute top-1/2 left-1/2 -translate-1/2" />
    </div>
  );
}

render(<Demo />);
結果
Loading...
  1. table + (table-cell + vertaical align + text align) + inline-block
.outer {
display: table;
}

.middle {
display: table-cell;
vertaical-align: center;
text-align: center;
}

.inner {
display: inline-block;
}
即時編輯器
function Demo() {
  return (
    <div className="size-52 bg-white table">
      <div className="table-cell align-middle text-center">
        <div className="bg-black inline-block size-5"/>
      </div>
    </div>
  );
}

render(<Demo />);
結果
Loading...
  1. (line-height + height + text-align) + inline-block
.outer {
--same-height: 208px;
line-height: var(--same-height);
height: var(--same-height);
text-align: center;
}

.inner {
display: inline-block;
}
即時編輯器
function Demo() {
  return (
    <div className="size-52 bg-white leading-52 h-52 text-center">
      <div className="inline-block size-5 bg-black"/>
    </div>
  );
}

render(<Demo />);
結果
Loading...