Heim > Web-Frontend > CSS-Tutorial > Erweiterte CSS-Tipps

Erweiterte CSS-Tipps

高洛峰
Freigeben: 2016-11-22 10:00:53
Original
1576 Leute haben es durchsucht

Verwenden Sie: not(), um den Rahmen im Menü hinzuzufügen/aufzuheben

Viele Leute fügen der Navigation wie folgt einen Rahmen hinzu und heben ihn dann für den letzten auf:

/* add border */
.nav li {
  border-right: 1px solid #666;
}
/* remove border */
.nav li:last-child {
  border-right: none;
}
Nach dem Login kopieren

Verwenden Sie tatsächlich CSS3. :not() kann auf den folgenden Code vereinfacht werden:

.nav li:not(:last-child) {
  border-right: 1px solid #666;
}
Nach dem Login kopieren

Natürlich können Sie auch .nav li li oder sogar .nav li:first-child verwenden ~ li, aber die Verwendung von :not() macht die Absicht klarer
Alle gängigen Browser unterstützen den :not-Selektor, außer IE8 und früheren Versionen

Fügen Sie dem Text das Attribut „line-height“ hinzu

Sie müssen die Zeilenhöhenattribute

bzw. nicht festlegen. Fügen Sie sie im Gegenteil einfach zum Textkörper hinzu:

body {
  line-height: 1;
}
Nach dem Login kopieren

Hier Auf diese Weise kann das Textelement dieses Attribut problemlos vom Textkörper erben

Vertikale Zentrierung

Sie können jedes Element vertikal zentrieren:

html, body {
  height: 100%;
  margin: 0;
}
body {
  -webkit-align-items: center;
  -ms-flex-align: center;
  align-items: center;
  display: -webkit-flex;
  display: flex;
}
Nach dem Login kopieren

Hinweis: Flexbox weist einige Fehler auf IE11

Verwenden Sie Kommas, um Listen zu trennen

Lassen Sie die Liste so aussehen, als wäre sie durch Kommas getrennt:

ul > li:not(:last-child)::after {
  content: ",";
}
Nach dem Login kopieren

Entfernen Sie das Komma nach dem letzten Element über :not() Pseudoklasse

Verwenden Sie ein negatives n-tes Kind. Wählen Sie Elemente aus

Verwenden Sie ein negatives n-tes Kind, um Elemente zwischen 1 und n auszuwählen:

li {
  display: none;
}
/* 选择第1到3个元素并显示它们 */
li:nth-child(-n+3) {
  display: block;
}
Nach dem Login kopieren

Natürlich, wenn Sie Verstehen Sie :not(), Sie können auch Folgendes tun:

li:not(:nth-child(-n+3)) {
  display: none;
}
Nach dem Login kopieren

SVG als Symbolsymbol verwenden

Es gibt keinen Grund, SVG nicht als Symbolsymbol zu verwenden:

.logo {
  background: url("logo.svg");
}
Nach dem Login kopieren

SVG hat einen guten Skalierungseffekt für jede Auflösung und unterstützt IE9 in allen Browsern, also verzichten Sie auf die Verwendung von PNG-, JPG- und GIF-Dateien
Hinweis: Der folgende Code kann die Barrierefreiheit für Benutzer verbessern, die Hilfsmittel zum Surfen im Internet verwenden:

.no-svg .icon-only:after {
  content: attr(aria-label);
}
Nach dem Login kopieren

Anzeigetext optimieren

Manchmal werden Schriftarten nicht auf allen Geräten optimal angezeigt. Lassen Sie sich daher vom Gerätebrowser helfen:

html {
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
Nach dem Login kopieren

Hinweis: Bitte Gehen Sie „optimizeLegibility“ verantwortungsbewusst ein. Darüber hinaus unterstützt IE/Edge kein Text-Rendering

Verwenden Sie die maximale Höhe, um eine reine CSS-Diashow zu implementieren.

Verwenden Sie die maximale Höhe mit Beyond-Hidding, um eine reine CSS-Diashow zu implementieren:

.slider ul {
  max-height: 0;
  overlow: hidden;
}
.slider:hover ul {
  max-height: 1000px;
  transition: .3s ease; /* animate to max-height */
}
Nach dem Login kopieren

继承box-sizing

让box-sizing继承自html:

html {
  box-sizing: border-box;
}
*, *:before, *:after {
  box-sizing: inherit;
}
Nach dem Login kopieren

这使得在插件或者其他组件中修改box-sizing属性变得更加容易

设置表格相同宽度

.calendar {
  table-layout: fixed;
}
Nach dem Login kopieren

使用Flexbox来避免Margin Hacks

在做多列布局的时候,可以通过Flexbox的space-between属性来避免nth-、first-、 last-child等hacks:

.list {
  display: flex;
  justify-content: space-between;
}
.list .person {
  flex-basis: 23%;
}
Nach dem Login kopieren

这样,列之间的空白就会被均匀的填满

对空链接使用属性选择器

中没有文本而href不为空的时候,显示其链接:

文本溢出省略的处理方法

单行文本溢出

多行文本溢出


Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage