|
| 1 | +CSS Protips |
| 2 | + |
| 3 | +Een verzameling tips om uw CSS skills pro. |
| 4 | + |
| 5 | +Inhoudsopgave |
| 6 | + |
| 7 | +• Protips |
| 8 | +• Ondersteuning |
| 9 | +• vertalingen |
| 10 | +• bijdrage richtsnoeren |
| 11 | + |
| 12 | +Protips |
| 13 | +1. Gebruik een CSS Reset |
| 14 | +2. erven box-sizing |
| 15 | +3. gebruik :niet()/Unapply grenst aan Navigation |
| 16 | +4. Add line-height to body |
| 17 | +5. Vertically-Center iets |
| 18 | +6. kommagescheiden lijst |
| 19 | +7. Items selecteren met negatieve nth-kind |
| 20 | +8. gebruik SVG voor pictogrammen |
| 21 | +9. gebruiken de "Lobotomized Owl" Selector |
| 22 | +10. Gebruik max hoogte voor pure CSS Sliders |
| 23 | +11. Equal-Width Tabelcellen |
| 24 | +12. ontdoen van marge Hacks met Flexbox |
| 25 | +13. Gebruik Attribute Selectors met lege banden |
| 26 | +14. stijl "Default" Links |
| 27 | +15. consistente verticaal ritme |
| 28 | +16. intrinsieke verhouding dozen |
| 29 | +17. stijl gebroken beelden |
| 30 | +18. Gebruik rem voor wereldwijde omvang; Gebruik em voor lokale Sizing |
| 31 | +19. Verberg Autoplay filmpjes die niet gedempt |
| 32 | +20. gebruik :wortel voor een flexibele |
| 33 | +21. set font-size op formulier elementen voor een betere mobiele ervaring |
| 34 | + |
| 35 | + |
| 36 | +Gebruik een CSS Reset |
| 37 | +CSS resets gebruiksbeleid stijl consistentie tussen verschillende browsers met een schone lei voor styling elementen. U kunt een CSS reset bibliotheek zoals normaliseert, et al., of u kunt een eenvoudigere reset aanpak: |
| 38 | + |
| 39 | +* { |
| 40 | + box-sizing: border-box; |
| 41 | + margin: 0; |
| 42 | + padding: 0; |
| 43 | +} |
| 44 | + |
| 45 | + |
| 46 | +Nu elementen worden ontdaan van marges en paddings en box-sizing helpt u bij het beheren van lay-outs met het CSS box model. |
| 47 | +Opmerking: Als u de erven box-sizing tip hieronder ziet u soms niet de box-sizing eigendom in uw CSS gereset. |
| 48 | + |
| 49 | +Erven box-sizing |
| 50 | + |
| 51 | +laat box-sizing overgeërfd worden van html: |
| 52 | + |
| 53 | +html { |
| 54 | + box-sizing: border-box; |
| 55 | +} |
| 56 | + |
| 57 | +*, *::before, *::after { |
| 58 | + box-sizing: inherit; |
| 59 | +} |
| 60 | + |
| 61 | + |
| 62 | +Dit maakt het gemakkelijker om box-sizing in plugins of andere onderdelen die hefboomwerking ander gedrag. |
| 63 | + |
| 64 | + |
| 65 | + |
| 66 | + |
| 67 | +Gebruik :niet()/Unapply grenst aan navigatie in |
| 68 | + |
| 69 | +plaats van over de grens... |
| 70 | + |
| 71 | +/* add border */ |
| 72 | +.nav li { |
| 73 | + border-right: 1px solid #666; |
| 74 | +} |
| 75 | +...and then taking it off the last element... |
| 76 | +/* remove border */ |
| 77 | +.nav li:last-child { |
| 78 | + border-right: none; |
| 79 | +} |
| 80 | + |
| 81 | +...De :niet() pseudo-klasse gelden alleen voor de elementen die u wilt: |
| 82 | + |
| 83 | +.nav li:not(:last-child) { |
| 84 | + border-right: 1px solid #666; |
| 85 | +} |
| 86 | + |
| 87 | +Zeker, kunt u .nav li li of zelfs .nav li:first-child ~ li, maar met :niet() De intentie is zeer duidelijk en de CSS selector bepaalt de grenzen aan de manier waarop een mens zou beschrijven. |
| 88 | + |
| 89 | +Voeg line-height op |
| 90 | +je niet hoeft toe te voegen line-height op elk <p>, <h*> et al. afzonderlijk. In plaats daarvan, toevoegen aan berichttekst: |
| 91 | + |
| 92 | +body { |
| 93 | + line-height: 1.5; |
| 94 | +} |
| 95 | + |
| 96 | +Deze manier tekstgedeelten kan overnemen van lichaam. |
| 97 | + |
| 98 | + |
| 99 | + |
| 100 | + |
| 101 | +Niets Vertically-Center |
| 102 | +Nee, het is niet zwart magic, kunt u echt centrum elementen verticaal: |
| 103 | +html, body { |
| 104 | + height: 100%; |
| 105 | + margin: 0; |
| 106 | +} |
| 107 | + |
| 108 | +body { |
| 109 | + -webkit-align-items: center; |
| 110 | + -ms-flex-align: center; |
| 111 | + align-items: center; |
| 112 | + display: -webkit-flex; |
| 113 | + display: flex; |
| 114 | +} |
| 115 | + |
| 116 | +Wilt centrum iets anders? Verticaal, horizontaal...alles, altijd en overal? CSS-Tricks heeft een mooie write-up op te doen. |
| 117 | +Opmerking: Let bij sommige buggy gedrag met flexbox in IE11. |
| 118 | + |
| 119 | +Kommagescheiden lijsten |
| 120 | +maken lijstitems die eruit ziet als een echte, door komma's gescheiden lijst: |
| 121 | +ul > li:not(:last-child)::after { |
| 122 | + content: ","; |
| 123 | +} |
| 124 | + |
| 125 | +Gebruik de :niet() pseudo-class dus geen komma wordt toegevoegd aan het laatste item. |
| 126 | +Opmerking: Deze tip is misschien niet ideaal voor toegankelijkheid, specifiek screenreaders. En kopiëren/plakken vanuit de browser werkt niet met CSS gegenereerde content. Ga voorzichtig te werk. |
| 127 | + |
| 128 | +Items selecteren met negatieve nth-kind |
| 129 | +Gebruik negatieve nth-kind in CSS items te selecteren 1 tot n. |
| 130 | +li { |
| 131 | + display: none; |
| 132 | +} |
| 133 | + |
| 134 | +/* select items 1 through 3 and display them */ |
| 135 | +li:nth-child(-n+3) { |
| 136 | + display: block; |
| 137 | +} |
| 138 | +Of omdat u al hebt geleerd over het gebruik :niet(), probeer dan: |
| 139 | +/* select all items except the first 3 and display them */ |
| 140 | +li:not(:nth-child(-n+3)) { |
| 141 | + display: none; |
| 142 | +} |
| 143 | + |
| 144 | +Nou dat was vrij eenvoudig. |
| 145 | + |
| 146 | +Gebruik SVG voor pictogrammen |
| 147 | +Er is geen enkele reden om geen gebruik te maken van SVG voor pictogrammen: |
| 148 | +.logo { |
| 149 | + background: url("logo.svg"); |
| 150 | +} |
| 151 | + |
| 152 | +SVG weegschaal goed voor alle soorten resolutie en wordt ondersteund door alle browsers terug naar IE9. Zo sloot het .png-, .jpg- of .gif-jif-whatev bestanden. |
| 153 | +Opmerking: Als u SVG icon-alleen knoppen voor slechtzienden gebruikers en de SVG niet wordt geladen, dit zal bijdragen tot het behoud van toegankelijkheid: |
| 154 | +.no-svg .icon-only::after { |
| 155 | + content: attr(aria-label); |
| 156 | +} |
| 157 | + |
| 158 | +Gebruik de "Lobotomized Owl" Selector |
| 159 | +misschien een vreemde naam maar met behulp van de universele selector (*) met het aangrenzende broertje selector ( ) een krachtige CSS-functionaliteit: |
| 160 | +* + * { |
| 161 | + margin-top: 1.5em; |
| 162 | +} |
| 163 | +In dit voorbeeld worden alle elementen in de flow van het document die volgen andere elementen ontvangt margin-top: 1.5em. |
| 164 | +Voor meer informatie over de "lobotomized owl" selector, lees Heydon Pickering's post op een lijst. |
| 165 | + |
| 166 | +Gebruik max hoogte voor pure CSS Sliders |
| 167 | +werktuig CSS-only sliders met max hoogte met overloop verborgen: |
| 168 | +.slider { |
| 169 | + max-height: 200px; |
| 170 | + overflow-y: hidden; |
| 171 | + width: 300px; |
| 172 | +} |
| 173 | + |
| 174 | +.slider:hover { |
| 175 | + max-height: 600px; |
| 176 | + overflow-y: scroll; |
| 177 | +} |
| 178 | +Het element vormt de max-hoogtewaarde op hangen en de schuifbalk geeft als gevolg van de overloop. |
| 179 | +Equal-Width Tabelcellen |
| 180 | +tabellen kan een pijn te werken met dus probeer met behulp van het tabel-layout: vast om cellen op gelijke breedte: |
| 181 | +.calendar { |
| 182 | + table-layout: fixed; |
| 183 | +} |
| 184 | + |
| 185 | +Pijn-vrij table layouts.: |
| 186 | +Ontdoen van marge Hacks met Flexbox |
| 187 | +bij het werken met kolom dakgoten kunt ontdoen van ne-, eerste- en laatste kind hacks via flexbox's space-tussen eigendom: |
| 188 | +.list { |
| 189 | + display: flex; |
| 190 | + justify-content: space-between; |
| 191 | +} |
| 192 | + |
| 193 | +.list .person { |
| 194 | + flex-basis: 23%; |
| 195 | +} |
| 196 | +Nu kolom dakgoten verschijnen altijd gelijkmatig verdeelde. |
| 197 | + |
| 198 | +Gebruik attribuut Selectors met lege Links |
| 199 | +links tonen wanneer de <a>-element heeft geen tekst, maar het href attribuut heeft een link: |
| 200 | +a[href^="http"]:empty::before { |
| 201 | + content: attr(href); |
| 202 | +} |
| 203 | +Dat is best handig. |
| 204 | +Stijl "Default" Links |
| 205 | +Voeg een stijl voor "default" links: |
| 206 | +a[href]:not([class]) { |
| 207 | + color: #008000; |
| 208 | + text-decoration: underline; |
| 209 | +} |
| 210 | +Nu links die ingevoegd via een CMS, dat meestal niet een klassekenmerk, zal een onderscheid zonder boodschap die de cascade. |
| 211 | +Consistente verticaal ritme |
| 212 | +Gebruik een universele selector (*) binnen een element om een consistent verticaal ritme: |
| 213 | +.intro > * { |
| 214 | + margin-bottom: 1.25rem; |
| 215 | +} |
| 216 | +Consistente verticaal ritme geeft een visuele esthetiek die content wordt veel beter leesbaar zijn. |
| 217 | + |
| 218 | +Intrinsieke verhouding dozen |
| 219 | +een vak te maken met een intrinsieke verhouding, alles wat je hoeft te doen is van toepassing Top of Bottom padding aan een div: |
| 220 | +.container { |
| 221 | + height: 0; |
| 222 | + padding-bottom: 20%; |
| 223 | + position: relative; |
| 224 | +} |
| 225 | + |
| 226 | +.container div { |
| 227 | + border: 2px dashed #ddd; |
| 228 | + height: 100%; |
| 229 | + left: 0; |
| 230 | + position: absolute; |
| 231 | + top: 0; |
| 232 | + width: 100%; |
| 233 | +} |
| 234 | +Met 20% voor vulling maakt de hoogte van het vak gelijk aan 20% van de breedte. Ongeacht de breedte van het weergavevenster kind div houdt zijn beeldverhouding (100%/20% = 5:1). |
| 235 | + |
| 236 | +Stijl gebroken beelden |
| 237 | +gebroken beelden meer esthetisch aangenaam met een beetje CSS: |
| 238 | +img { |
| 239 | + display: block; |
| 240 | + font-family: Helvetica, Arial, sans-serif; |
| 241 | + font-weight: 300; |
| 242 | + height: auto; |
| 243 | + line-height: 2; |
| 244 | + position: relative; |
| 245 | + text-align: center; |
| 246 | + width: 100%; |
| 247 | +} |
| 248 | +Voeg nu pseudo-elementen regels om een gebruiker bericht en URL referentie van het gebroken beeld: |
| 249 | +img::before { |
| 250 | + content: "We're sorry, the image below is broken :("; |
| 251 | + display: block; |
| 252 | + margin-bottom: 10px; |
| 253 | +} |
| 254 | + |
| 255 | +img::after { |
| 256 | + content: "(url: " attr(src) ")"; |
| 257 | + display: block; |
| 258 | + font-size: 12px; |
| 259 | +} |
| 260 | + |
| 261 | +Gebruik rem voor wereldwijde omvang; Gebruik em voor lokale Sizing |
| 262 | +na het instellen van de basis de lettergrootte op de hoofdpartitie (html { font-size: 100%; }); stel de lettergrootte voor tekstgedeelten em: |
| 263 | +h2 { |
| 264 | + font-size: 2em; |
| 265 | +} |
| 266 | + |
| 267 | +p { |
| 268 | + font-size: 1em; |
| 269 | +} |
| 270 | +Then set the font-size for modules to rem: |
| 271 | +article { |
| 272 | + font-size: 1.25rem; |
| 273 | +} |
| 274 | + |
| 275 | +aside .module { |
| 276 | + font-size: .9rem; |
| 277 | +} |
| 278 | +Now each module becomes compartmentalized and easier to style, more maintainable, and flexible. |
| 279 | +Verberg Autoplay filmpjes die niet gedempt |
| 280 | +is dit een geweldige truc voor een aangepaste user stylesheet. Voorkom overbelasting van een gebruiker met het geluid van een video die screenmodus afgespeeld wanneer de pagina geladen is. Als het geluid niet gedempt, don't show video: |
| 281 | +video[autoplay]:not([muted]) { |
| 282 | + display: none; |
| 283 | +} |
| 284 | +Nogmaals, we profiteren van de :niet() pseudo-class. |
| 285 | + |
| 286 | +Gebruik :wortel voor flexibele Type |
| 287 | +het type font size in een responsieve lay-out moet kunnen aanpassen met elk deelvenster. U berekent de tekengrootte op basis van het deelvenster hoogte en breedte met :wortel: |
| 288 | +:root { |
| 289 | + font-size: calc(1vw + 1vh + .5vmin); |
| 290 | +} |
| 291 | +Nu kunt u gebruik maken van de wortel em eenheid gebaseerd op de waarde berekend door :wortel: |
| 292 | +body { |
| 293 | + font: 1rem/1.6 sans-serif; |
| 294 | +} |
| 295 | + |
| 296 | +Set font-size op formulier elementen voor een betere mobiele ervaring |
| 297 | +te vermijden mobiele browsers (iOS Safari, et al.) vanaf het inzoomen op een HTML formulier elementen als een <select> vervolgkeuzelijst wordt aangetikt, font-size op de selectieschakelaar regel: |
| 298 | +input[type="text"], |
| 299 | +input[type="number"], |
| 300 | +select, |
| 301 | +textarea { |
| 302 | + font-size: 16px; |
| 303 | +} |
| 304 | + |
| 305 | + |
| 306 | + |
| 307 | + |
0 commit comments