Heim  >  Artikel  >  Web-Frontend  >  Erweiterte CSS-Layouttechniken

Erweiterte CSS-Layouttechniken

高洛峰
高洛峰Original
2017-02-09 13:14:461260Durchsuche

Verwenden Sie :empty, um leere Elemente zu unterscheiden

Kompatibilität: IE8 wird nicht unterstützt

Wenn wir die obige Liste haben:

<div class="item">a</div>
<div class="item">b</div>
<div class="item"></div>

Wir hoffen es in der Lage sein zu leeren Elemente und nicht leere Elemente werden unterschiedlich behandelt, daher gibt es zwei Möglichkeiten.

Verwenden Sie :empty, um leere Elemente auszuwählen:

.item:empty {
  display: none;
}

Oder verwenden Sie :not(:empty), um nicht leere Elemente auszuwählen:

.item:not(:empty) {
  border: 1px solid #ccc;
  /* ... */
}

Verwenden Sie :* -Of- Typauswahlelement

Kompatibilität: IE8 wird nicht unterstützt

Geben Sie ein Beispiel.

Fett den ersten Absatz:

p:first-of-type {
  font-weight: bold;
}

Fügen Sie einen Rahmen zum letzten Bild hinzu:

img:last-of-type {
  border: 10px solid #ccc;
}

Stilisieren Sie das nicht verbundene Blockzitat:

blockquote:only-of-type {
  border-left: 5px solid #ccc;
  padding-left: 2em;
}

Lassen Sie die p Absätze in den ungeraden Spalten zuerst rot sein:

p:nth-of-type(even) {
  color: red;
}

Darüber hinaus kann :nth-of-type auch andere Arten von Parametern haben:

/* Gerade Zahl* /
:nth-of-type(even)

/* nur der dritte*/
:nth-of-type(3)

/* Jeder dritte */
:nth-of-type(3n)

/* Jedes Viertel plus drei, also 3, 7, 11, ... */
:nth -of-type(4n +3)

Benutzen Sie Calc für das Flow-Layout

Kompatibilität: IE8 wird nicht unterstützt

Linkes, mittleres und rechtes Flow-Layout:

nav {
  position: fixed;
  left: 0;
  top: 0;
  width: 5rem;
  height: 100%;
}
aside {
  position: fixed;
  right: 0;
  top: 0;
  width: 20rem;
  height: 100%;
}
main {
  margin-left: 5rem;
  width: calc(100% - 25rem);
}

Verwenden Sie vw und vh für den Vollbild-Scrolleffekt

Kompatibilität: IE8 wird nicht unterstützt

vw und vh sind relativ zum Ansichtsfenster, daher ist dies nicht der Fall ändern sich mit Änderungen in Inhalt und Layout.

section {
  width: 100vw;
  height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  background-size: cover;
  background-repeat: no-repeat;
  background-attachment: fixed;
}
section:nth-of-type(1) {
  background-image: url(&#39;https://unsplash.it/1024/683?image=1068&#39;);
}
section:nth-of-type(2) {
  background-image: url(&#39;https://unsplash.it/1024/683?image=1073&#39;);
}
section:nth-of-type(3) {
  background-image: url(&#39;https://unsplash.it/1024/683?image=1047&#39;);
}
section:nth-of-type(4) {
  background-image: url(&#39;https://unsplash.it/1024/683?image=1032&#39;);
}
body {
  margin: 0;
}
p {
  color: #fff;
  font-size: 100px;
  font-family: monospace;
}

Unset für CSS-Reset verwenden

Kompatibilität: IE wird nicht unterstützt

body {
  color: red;
}
button {
  color: white;
  border: 1px solid #ccc;
}
/* 取消 section 中 button 的 color 设置 */
section button {
  color: unset;
}

Spalte für responsives Spaltenlayout verwenden

Kompatibilität: Unterstützt IE9 nicht

nav {
  column-count: 4;
  column-width: 150px;
  column-gap: 3rem;
  column-rule: 1px dashed #ccc;
  column-fill: auto;
}
h2 {
  column-span: all;
}

Weitere Artikel zu erweiterten CSS-Layouttechniken finden Sie auf der chinesischen PHP-Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn