Closed Justino96 closed 6 years ago
Zbiór porad, które pomogą zdobyć umiejętności CSS.
W potrzebue innych wspaniałych list sprawdź zobacz @sindresorhus's curated list of awesome lists.
box-sizing
:not()
aby zastosować / anulować ograniczenia w nawigacji](#Użyj-not-to-aby-zastosować / anulować-ograniczenia-w-nawigacji)line-height
do body
nth-child
max-height
dla suwaków Pure CSSrem
for Global Sizing; Użyj em
for Local Sizing:root
for Flexible Typefont-size
w elementach formularza, aby uzyskać lepsze wrażenia z urządzenia mobilnegoResetowanie CSS wspomaga wymuszać spójność stylu w różnych przeglądarkach z czystym konturem dla elementów stylizacyjnych. Kożystanie z biblioteki resetującej CSS, takiej jak Normalize i innie, lub użycie bardzije uproszczonego sposobu resetowania:
* {
box-sizing: border-box;
margin: 0;
padding: 0;
}
Elementy zostaną pozbawione marginesów i dopełnienia, a box-sizing
pozwala zarządzać układami za pomocą modelu pudełkowego CSS
Uwaga: Używanie poniższej wskazówki dotyczącej Inherit box-sizing
może nie uwzględniać właściwości box-sizing
w resetowaniu CSS.
box-sizing
Niech box-sizing
zostanie odziedziczony z html
:
html {
box-sizing: border-box;
}
*, *::before, *::after {
box-sizing: inherit;
}
Ułatwia to zmianę rozmiaru skrzynek w wtyczkach lub innych komponentach, które wykorzystują inne zachowanie.
:not()
to Apply/Unapply Borders on NavigationZamiast zakładać granicę...
/* add border */
.nav li {
border-right: 1px solid #666;
}
...a następnie zdejmując go z ostatniego elementu ...
/* remove border */
.nav li:last-child {
border-right: none;
}
...użyj :not()
pseudo-klasy aby zastosować tylko do potrzebnych elementów:
.nav li:not(:last-child) {
border-right: 1px solid #666;
}
Można też użyć .nav li + li
lub nawet .nav li:first-child ~ li
, ale z :not()
intencja jest bardzo jasna, a selektor CSS definiuje granicę w sposób opisany przez człowieka.
wysokość linii
do treści
Nie musisz dodawać wysokości linii
do każdego <p>
, <h*>
, et al. osobno. Zamiast tego dodaj go do treści
:
treści {
wysokości linii: 1.5;
}
W ten sposób elementy tekstowe mogą łatwo korzystać z
treści
.
Nie, to nie jest czarna magia, naprawdę możesz wyśrodkować elementy w pionie:
html, body {
height: 100%;
margin: 0;
}
body {
-webkit-align-items: center;
-ms-flex-align: center;
align-items: center;
display: -webkit-flex;
display: flex;
}
Chcesz coś przeniesc? Wertykalnie, poziomo ... cokolwiek, zawsze i wszędzie CSS-Tricks ma a nice write-up dobre instrukcje na ten temat.
Uwaga: Uważaj na pewne błędne zachowanie z Flexbox w IE11.
Elementy listy wyglądają jak prawdziwa, oddzielona przecinkami lista:
ul > li:not(:last-child)::after {
content: ",";
}
Użyj :not()
pseudo-klasy aby do ostatniego elementu nie dodano przecinka.
Uwaga: ta wskazówka może nie być idealna dla ułatwień dostępu, w szczególności czytników ekranu.Kopiowanie / wklejanie z przeglądarki nie działa z treścią generowaną przez CSS. Postępuj ostrożnie.
nth-child
Wybierz przedmioty za pomocą negatywnego nth-child
w CSS, aby wybrać elementy od 1 do n.
li {
display: none;
}
/* select items 1 through 3 and display them */
li:nth-child(-n+3) {
display: block;
}
Lub, skoro już nauczyłeś się trochę o użyciu using :not()
,wypróbuj:
/* select all items except the first 3 and display them */
li:not(:nth-child(-n+3)) {
display: none;
}
To było całkiem łatwe.
Nie ma powodu, aby nie używać SVG do ikon:
.logo {
background: url("logo.svg");
}
SVG skaluje się dobrze dla wszystkich typów rozdzielczości i jest obsługiwany we wszystkich przeglądarkach wróć do IE9. Więc porzuć swoje pliki .png, .jpg lub .gif-jif-whatev.
Uwaga: Jeśli masz przyciski tylko ikony SVG dla widzących użytkowników, a SVG nie załaduje się, pomoże to w utrzymaniu dostępności:
.no-svg .icon-only::after {
content: attr(aria-label);
}
Może mieć dziwną nazwę, ale użycie uniwersalnego (*
) z sąsiednim selektorem rodzeństwa (+
) może zapewnić potężne możliwości CSS:
* + * {
margin-top: 1.5em;
}
W tym przykładzie wszystkie elementy w przepływie dokumentu, które śledzą inne elementy, otrzymają margin-top: 1.5em
.
Aby uzyskać więcej informacji na temat selektora "lobotomized owl", przeczytaj wpis Heydon'a Pickering na A List Apart.
max-height
dla suwaków Pure CSSsZaimplementuj suwaki CSS max-height
Wysokości z ukrytym przepełnieniem:
.slider {
max-height: 200px;
overflow-y: hidden;
width: 300px;
}
.slider:hover {
max-height: 600px;
overflow-y: scroll;
}
Element rozwija się do max-height
po najechaniu kursorem, a suwak wyświetla się w wyniku przepełnienia.
Tabele mogą być uciążliwe, więc spróbuj table-layout: fixed
aby utrzymać komórki na jednakowej szerokości:
.calendar {
table-layout: fixed;
}
Bezbolesne układy stołów.
Podczas pracy z rynnami kolumnowymi możesz pozbyć się nth-
, first-
, i last-child
za pomocą właściwości spacji między fleksami space-between
:
.list {
display: flex;
justify-content: space-between;
}
.list .person {
flex-basis: 23%;
}
Teraz rynny kolumnowe zawsze są rozmieszczone równomiernie.
Wyświetl linki, gdy element <a>
nie ma wartości tekstowej, ale atrybut href
ma link:
a[href^="http"]:empty::before {
content: attr(href);
}
a To całkiem wygodne.
Dodaj styl dla "domyślnych" linków:
a[href]:not([class]) {
color: #008000;
text-decoration: underline;
}
Teraz linki wstawiane za pośrednictwem CMS, które zwykle nie mają atrybutu class, będą miały rozróżnienie bez generalnie wpływającego na kaskadę.
Użyj uniwersalnego selektora (*
) wewnątrz elementu, aby stworzyć spójny pionowy rytm:
.intro > * {
margin-bottom: 1.25rem;
}
Consistent vertical rhythm provides a visual aesthetic that makes content far more readable.
Aby utworzyć pole o wewnętrznym współczynniku, wystarczy zastosować górny lub dolny margines do elementu div:
.container {
height: 0;
padding-bottom: 20%;
position: relative;
}
.container div {
border: 2px dashed #ddd;
height: 100%;
left: 0;
position: absolute;
top: 0;
width: 100%;
}
Użycie 20% do wypełnienia sprawia, że wysokość pudełka jest równa 20% jego szerokości. Bez względu na szerokość rzutni, element div zachowa swój współczynnik proporcji (100% / 20% = 5:1).
[Powrót do spisu treści](#Powrót-do-spisu-treści
Spraw, aby uszkodzone obrazy były bardziej estetyczne z odrobiną CSS:
img {
display: block;
font-family: Helvetica, Arial, sans-serif;
font-weight: 300;
height: auto;
line-height: 2;
position: relative;
text-align: center;
width: 100%;
}
Teraz dodaj reguły pseudoelementów, aby wyświetlić komunikat użytkownika i adres URL uszkodzonego obrazu:
img::before {
content: "We're sorry, the image below is broken :(";
display: block;
margin-bottom: 10px;
}
img::after {
content: "(url: " attr(src) ")";
display: block;
font-size: 12px;
}
Dowiedz się więcej o stylizacji tego wzoru w oryginalnym poście Ire Aderinokun. Ire Aderinokun's originalny post.
[Powrót do spisu treści](#Powrót-do-spisu-treści
Po ustawieniu podstawowego rozmiaru czcionki w katalogu głównym (html { font-size: 100%; }
), ustaw rozmiar czcionki dla elementów tekstowych na em
:
h2 {
font-size: 2em;
}
p {
font-size: 1em;
}
Następnie ustaw rozmiar czcionki dla modułów na rem
:
article {
font-size: 1.25rem;
}
aside .module {
font-size: .9rem;
}
Teraz każdy moduł jest podzielony na sekcje i łatwiejszy do ułożenia, łatwiejszy w utrzymaniu i bardziej elastyczny. .
[Powrót do spisu treści](#Powrót-do-spisu-treści
To świetna sztuczka dla niestandardowego arkusza stylów użytkownika. Unikaj przeciążania użytkownika dźwiękiem z filmu, który odtwarza się automatycznie po wczytaniu strony. Jeśli dźwięk nie jest wyciszony, nie pokazuj wideo:
video[autoplay]:not([muted]) {
display: none;
}
Po raz kolejny wykorzystujemy pseudo-klasę :not()
[Powrót do spisu treści](#Powrót-do-spisu-treści
:root
Tryp ElastycznyRozmiar czcionki typowej w responsywnym układzie powinien być dostosowywany dla każdej rzutni. Możesz obliczyć rozmiar czcionki na podstawie wysokości i szerokości widoku, używając :root
:
:root {
font-size: calc(1vw + 1vh + .5vmin);
}
Now you can utilize the root em
unit based on the value calculated by :root
:
body {
font: 1rem/1.6 sans-serif;
}
font-size
on Form Elements for a Better Mobile ExperienceAby uniknąć korzystania z przeglądarek komurkowych (iOS Safari, et al.) podczas powiększania elementów formularzy HTML po dotknięciu menu rozwijanego <select>
dnależy dodać font-size
do reguły selektora:
input[type="text"],
input[type="number"],
select,
textarea {
font-size: 16px;
}
:tancerz:
Wersje aktualne Chrome, Firefox, Safari, Opera, Edge, and IE11.
This is great! Thanks!
Hello Mate,
I have noticed you have a wide variety of languages. I am going to add Polish into it and send you the results.
Thank you Justin Oliver