Heim  >  Fragen und Antworten  >  Hauptteil

CSS-Rasterelemente in voller Breite mit place-content:center

<p>Ich habe <code>place-content: center</code> von CSS Grid verwendet, um das Div vertikal und horizontal im festen Container zu zentrieren: </p> <p> <pre class="brush:css;toolbar:false;">.outer { Position: fest; Einschub: 0; Hintergrund: schwarz; Anzeige: Raster; Ortsinhalt: Mitte; } .innere { Polsterung: 30px; Hintergrund: weiß; Breite: 100 %; maximale Breite: 500 Pixel; }</pre> <pre class="brush:html;toolbar:false;"><div class="outer"> <div class="inner">Einige Inhalte hier</div> </div></pre> </p> <p>Ich möchte, dass das innere Div die volle Breite hat, mit einer maximalen Breite von 500 Pixeln, aber es scheint die Eigenschaft <code>width: 100%</code> nicht zu respektieren, wie ich erwartet habe. </p> <p> Kann jemand erklären, warum das passiert und wie man es beheben kann, wenn möglich, die Grid-Implementierung beibehalten (ich weiß, dass es andere Möglichkeiten gibt, so etwas zu zentrieren, aber aus Neugier wollte ich versuchen, dies zu tun. Eine Rolle zu spielen ist mehr wichtiger als alles andere)</p>
P粉245003607P粉245003607433 Tage vor449

Antworte allen(2)Ich werde antworten

  • P粉478188786

    P粉4781887862023-09-06 14:48:14

    您可以使用 flex 代替 grid,这样您就可以非常轻松地做到这一点。

    .outer {
      position: fixed;
      width: 100%;
      height: 100%;
      background: black;
      display: flex;
      justify-content: center;
      align-items: center;
    }
    
    .inner {
      padding: 30px;
      background: white;
      width: 100%;
    }
    <div class="outer">
      <div class="inner">Some content here</div>
    </div>

    Antwort
    0
  • P粉020085599

    P粉0200855992023-09-06 12:43:41

    您可以在网格项上使用 place-self,而不是使用 place-content

    .outer {
      position: fixed;
      inset: 0;
      background: black;
      display: grid;
    }
    
    .inner {
      padding: 30px;
      background: white;
      width: 100%;
      max-width: 500px;
      place-self: center;
    }
    <div class="outer">
      <div class="inner">Some content here</div>
    </div>

    Antwort
    0
  • StornierenAntwort