--- title: CSS 3 date: 2020-12-25 20:22:47 background: bg-[#3473b5] tags: - web - css - style categories: - Programming intro: | This is a quick reference cheat sheet for CSS goodness, listing selector syntax, properties, units and other useful bits of information. plugins: - copyCode - runCode --- ## Getting Started ### Introduction {.row-span-3} CSS is rich in capabilities and is more than simply laying out pages. #### External stylesheet ```html {.wrap} ``` #### Internal stylesheet ```html ``` #### Inline styles ```html {.wrap}

Centered text

Blue, 18-point text

``` ### Add class ```html
``` Support multiple classes on one element. ### !important ```css .post-title { color: blue !important; } ``` Overrides all previous styling rules. ### Selector ```css h1 { } #job-title { } div.hero { } div > p { } ``` See: [Selectors](#css-selectors) ### Text color ```css color: #2a2aff; color: green; color: rgb(34, 12, 64, 0.6); color: hsla(30 100% 50% / 0.6); ``` See: [Colors](#css-colors) ### Background ```css background-color: blue; background-image: url('nyan-cat.gif'); background-image: url('../image.png'); ``` See: [Backgrounds](#css-backgrounds) ### Font ```css .page-title { font-weight: bold; font-size: 30px; font-family: 'Courier New'; } ``` See: [Fonts](#css-fonts) ### Position ```css .box { position: relative; top: 20px; left: 20px; } ``` See also: [Position](https://learn-the-web.algonquindesign.ca/topics/css-layout-cheat-sheet/) ### Animation ```css animation: 300ms linear 0s infinite; animation: bounce 300ms linear infinite; ``` See: [Animation](#css-animation) ### Comment ```css /* This is a single line comment */ /* This is a multi-line comment */ ``` ### Flex layout ```css div { display: flex; justify-content: center; } div { display: flex; justify-content: flex-start; } ``` See: [Flexbox](#css-flexbox) | [Flex Tricks](#css-flexbox-tricks) ### Grid layout ```css #container { display: grid; grid: repeat(2, 60px) / auto-flow 80px; } #container > div { background-color: #8ca0ff; width: 50px; height: 50px; } ``` See: [Grid Layout](#css-grid-layout) ### Variable & Counter ```css counter-set: subsection; counter-increment: subsection; counter-reset: subsection 0; :root { --bg-color: brown; } element { background-color: var(--bg-color); } ``` See: [Dynamic content](#css-dynamic-content) ## CSS Selectors ### Examples {.row-span-2} #### Groups Selector ```css h1, h2 { color: red; } ``` #### Chaining Selector ```css h3.section-heading { color: blue; } ``` #### Attribute Selector ```css div[attribute='SomeValue'] { background-color: red; } ``` #### First Child Selector ```css p:first-child { font-weight: bold; } ``` #### No Children Selector ```css .box:empty { background: lime; height: 80px; width: 80px; } ``` ### Basic | | | | ------------ | --------------------------- | | `*` | All elements | | `div` | All div tags | | `.classname` | All elements with class | | `#idname` | Element with ID | | `div,p` | All divs and paragraphs | | `#idname *` | All elements inside #idname | See also: [Type](https://developer.mozilla.org/en-US/docs/Web/CSS/Type_selectors) / [Class](https://developer.mozilla.org/en-US/docs/Web/CSS/Class_selectors) / [ID](https://developer.mozilla.org/en-US/docs/Web/CSS/ID_selectors) / [Universal](https://developer.mozilla.org/en-US/docs/Web/CSS/Universal_selectors) selectors ### Combinators | Selector | Description | | --------------- | ------------------------------------- | | `div.classname` | Div with certain classname | | `div#idname` | Div with certain ID | | `div p` | Paragraphs inside divs | | `div > p` | All p tags
_one level deep in div_ | | `div + p` | P tags immediately after div | | `div ~ p` | P tags preceded by div | See also: [Adjacent](https://developer.mozilla.org/en-US/docs/Web/CSS/Adjacent_sibling_combinator) / [Sibling](https://developer.mozilla.org/en-US/docs/Web/CSS/General_sibling_combinator) / [Child](https://developer.mozilla.org/en-US/docs/Web/CSS/Child_combinator) selectors ### Attribute selectors | | | | -------------------- | ---------------------------------- | ---------------------------- | | `a[target]` | With a target attribute | | `a[target="_blank"]` | Open in new tab | | `a[href^="/index"]` | Starts with /index | | `[class | ="chair"]` | Starts with chair | | `[class*="chair"]` | containing chair | | `[title~="chair"]` | Contains the word chair | | `a[href$=".doc"]` | Ends with .doc | | `[type="button"]` | Specified type | See also: [Attribute selectors](https://developer.mozilla.org/en-US/docs/Web/CSS/Attribute_selectors) ### User action pseudo classes | | | | ------------ | ----------------------- | | `a:link ` | Link in normal state | | `a:active ` | Link in clicked state | | `a:hover ` | Link with mouse over it | | `a:visited ` | Visited link | ### Pseudo classes | | | | ----------------- | --------------------------------------------------------------------------------------- | | `p::after` | Add content after p | | `p::before` | Add content before p | | `p::first-letter` | First letter in p | | `p::first-line` | First line in p | | `::selection` | Selected by user | | `::placeholder` | [Placeholder](https://developer.mozilla.org/en-US/docs/Web/CSS/::placeholder) attribute | | `:root` | Documents root element | | `:target` | Highlight active anchor | | `div:empty` | Element with no children | | `p:lang(en)` | P with en language attribute | | `:not(span)` | Element that's not a span | ### Input pseudo classes | | | | --------------------- | ------------------------------------------------------------------------------------------- | | `input:checked` | Checked inputs | | `input:disabled` | Disabled inputs | | `input:enabled` | Enabled inputs | | `input:focus` | Input has focus | | `input:in-range` | Value in range | | `input:out-of-range` | Input value out of range | | `input:valid` | Input with valid value | | `input:invalid` | Input with invalid value | | `input:optional` | No required attribute | | `input:required` | Input with required attribute | | `input:read-only` | With readonly attribute | | `input:read-write` | No readonly attribute | | `input:indeterminate` | With [indeterminate](https://developer.mozilla.org/en-US/docs/Web/CSS/:indeterminate) state | ### Structural pseudo classes | | | | ----------------------- | -------------------------- | | `p:first-child` | First child | | `p:last-child` | Last child | | `p:first-of-type` | First of some type | | `p:last-of-type` | Last of some type | | `p:nth-child(2)` | Second child of its parent | | `p:nth-child(3n42)` | Nth-child (an + b) formula | | `p:nth-last-child(2)` | Second child from behind | | `p:nth-of-type(2)` | Second p of its parent | | `p:nth-last-of-type(2)` | ...from behind | | `p:only-of-type` | Unique of its parent | | `p:only-child` | Only child of its parent | ## CSS Fonts ### Properties {.row-span-3} | Property | Description | | ----------------- | --------------- | | `font-family:` | \ | | `font-size:` | \ | | `letter-spacing:` | \ | | `line-height:` | \ | | `font-weight:` | \ / bold / normal | | `font-style:` | italic / normal | | `text-decoration:` | underline / none | | `text-align:` | left / right
center / justify | | `text-transform:` | capitalize / uppercase / lowercase | {.left-text} See also: [Font](https://developer.mozilla.org/en-US/docs/Web/CSS/font) ### Shorthand {.secondary .col-span-2} | | style | weight | size (required) | | line-height | family | | ------- | -------- | ------ | --------------- | --- | ----------- | ----------------- | | `font:` | `italic` | `400` | `14px` | `/` | `1.5` | `sans-serif` | | | style | weight | size (required) | | line-height | family (required) | ### Example ```css font-family: Arial, sans-serif; font-size: 12pt; letter-spacing: 0.02em; ``` ### Case {.row-span-2} ```css /* Hello */ text-transform: capitalize; /* HELLO */ text-transform: uppercase; /* hello */ text-transform: lowercase; ``` ### @font-face ```css @font-face { font-family: 'Glegoo'; src: url('../Glegoo.woff'); } ``` ## CSS Colors ### Named color ```css color: red; color: orange; color: tan; color: rebeccapurple; ``` ### Hexadecimal color ```css color: #090; color: #009900; color: #090a; color: #009900aa; ``` ### rgb() Colors ```css color: rgb(34, 12, 64, 0.6); color: rgba(34, 12, 64, 0.6); color: rgb(34 12 64 / 0.6); color: rgba(34 12 64 / 0.3); color: rgb(34 12 64 / 60%); color: rgba(34.6 12 64 / 30%); ``` ### HSL Colors ```css color: hsl(30, 100%, 50%, 0.6); color: hsla(30, 100%, 50%, 0.6); color: hsl(30 100% 50% / 0.6); color: hsla(30 100% 50% / 0.6); color: hsl(30 100% 50% / 60%); color: hsla(30.2 100% 50% / 60%); ``` ### Other ```css color: inherit; color: initial; color: unset; color: transparent; color: currentcolor; /* keyword */ ``` ## CSS Backgrounds ### Properties {.row-span-2} | Property | Description | | ------------- | ------------- | | `background:` | _(Shorthand)_ | | `background-color:` | See: [Colors](#css-colors) | | `background-image:` | url(...) | | `background-position:` | left/center/right
top/center/bottom | | `background-size:` | cover X Y | | `background-clip:` | border-box
padding-box
content-box | | `background-repeat:` | no-repeat
repeat-x
repeat-y | | `background-attachment:` | scroll/fixed/local | {.left-text} ### Shorthand {.secondary .col-span-2} | | color | image | positionX | positionY | | size | repeat | attachment | | ------------- | ------ | ------------ | --------- | --------- | --- | -------------- | ----------- | ---------- | | `background:` | `#ff0` | `url(a.jpg)` | `left` | `top` | `/` | `100px` `auto` | `no-repeat` | `fixed;` | | `background:` | `#abc` | `url(b.png)` | `center` | `center` | `/` | `cover` | `repeat-x` | `local;` | | | color | image | posX | posY | | size | repeat | attach.. | ### Examples {.col-span-2} ```css {.wrap} background: url(img_man.jpg) no-repeat center; background: url(img_flwr.gif) right bottom no-repeat, url(paper.gif) left top repeat; background: rgb(2, 0, 36); background: linear-gradient( 90deg, rgba(2, 0, 36, 1) 0%, rgba(13, 232, 230, 1) 35%, rgba(0, 212, 255, 1) 100% ); ``` ## CSS The Box Model ### Maximums/Minimums ```css .column { max-width: 200px; width: 500px; } ``` See also: [max-width](https://developer.mozilla.org/en-US/docs/Web/CSS/max-width) / [min-width](https://developer.mozilla.org/en-US/docs/Web/CSS/min-width) / [max-height](https://developer.mozilla.org/en-US/docs/Web/CSS/max-height) / [min-height](https://developer.mozilla.org/en-US/docs/Web/CSS/min-height) ### Margin / Padding ```css .block-one { margin: 20px; padding: 10px; } ``` See also: [Margin](https://developer.mozilla.org/en-US/docs/Web/CSS/margin) / [Padding](https://developer.mozilla.org/en-US/docs/Web/CSS/padding) ### Box-sizing ```css .container { box-sizing: border-box; } ``` See also: [Box-sizing](https://developer.mozilla.org/en-US/docs/Web/CSS/Box-sizing) ### Visibility ```css .invisible-elements { visibility: hidden; } ``` See also: [Visibility](https://developer.mozilla.org/en-US/docs/Web/CSS/visibility) ### Auto keyword ```css div { margin: auto; } ``` See also: [Margin](https://developer.mozilla.org/en-US/docs/Web/CSS/margin) ### Overflow ```css .small-block { overflow: scroll; } ``` See also: [Overflow](https://developer.mozilla.org/en-US/docs/Web/CSS/overflow) ## CSS Animation {.cols-5} ### Shorthand {.col-span-5 .secondary} | | name | duration | timing-function | delay | count | direction | fill-mode | play-state | | ------------ | -------- | -------- | --------------- | ------- | ---------- | ------------------- | --------- | ---------- | | `animation:` | `bounce` | `300ms` | `linear` | `100ms` | `infinite` | `alternate-reverse` | `both` | `reverse` | | | name | duration | timing-function | delay | count | direction | fill-mode | play-state | ### Properties {.row-span-2 .col-span-2} | Property | Value | | ---------------------------- | ------------------------------------------------------ | | `animation:` | _(shorthand)_ | | `animation-name:` | \ | | `animation-duration:` | \