* {
    box-sizing: border-box;
}

/* element selector */
h1 {
    text-align: center;
}

/* id selector */
#mainHeading {
    color: purple;
}

/* class selector */
.underline {
    text-decoration: underline wavy;
}

/* attribute selector */
input[type="text"] {
    background-color: yellow;
}

/* psuedo-element selector (::after or ::before) */
footer::before {
    content: '©'; /* hold alt-0169 on the numpad */
}

/* adjacent element selector
   All paragraphs immediately following an h2 */
h2 + p {
    color: greenyellow;
}

/* child selector
   selects all h2s that are children of main */
main > h2 {
    text-decoration: line-through;
}

/* descendant selector
   selects all inputs that are descendants of main */
main input {
    border: black dashed 5px;
}

/* generic sibling
   selects all paragraphs that are siblings to
   other paragraphs */
p ~ p {
    color: purple;
}