Quick Refresher on Essential CSS
🖌️

Quick Refresher on Essential CSS

Tags
CSS
Published
Author
Ayman Hashim

A Quick Refresher on Essential CSS Syntax and Attributes

Cascading Style Sheets (CSS) play a crucial role in web development, allowing you to style and format your HTML documents. If you've found yourself forgetting some CSS basics, let's take a quick refresher on essential syntax and attributes.
 

1. Selectors:

Selectors are used to target HTML elements for styling. They can be simple, like element selectors (p, h1, etc.), class selectors (.classname), or ID selectors (#idname).
Example:
cssCopy code p { color: blue; } #header { font-size: 24px; } .button { background-color: #3498db; }

2. Properties and Values:

CSS properties define the aspects of an element you want to style, and values specify how those properties should be applied.
Example:
cssCopy code body { font-family: 'Arial', sans-serif; background-color: #f2f2f2; margin: 0; }

3. Box Model:

Understanding the box model is fundamental. It consists of content, padding, border, and margin.
Example:
cssCopy code .box { width: 200px; height: 150px; padding: 20px; border: 2px solid #333; margin: 10px; }

4. Flexbox:

Flexbox is a layout model that allows you to design complex layouts more efficiently.
Example:
cssCopy code .container { display: flex; justify-content: space-between; } .item { flex-grow: 1; }

5. Grid:

CSS Grid provides a two-dimensional grid system for layout design.
Example:
cssCopy code .container { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }

6. Media Queries:

Responsive design is crucial. Media queries help adapt styles based on the device characteristics.
Example:
cssCopy code @media screen and (max-width: 600px) { body { font-size: 14px; } }
 

7. Centering Elements:

Centering elements can be achieved using various techniques. Here's a simple method using flexbox:
cssCopy code .center-container { display: flex; justify-content: center; align-items: center; height: 100vh; /* Adjust as needed */ } .centered-element { text-align: center; }
Apply the center-container class to a container, and the centered-element class to the element you want to center.

8. Creating a Navigation Bar:

A navigation bar is crucial for website navigation. Here's a basic example:
cssCopy code nav { background-color: #333; color: white; padding: 10px; } nav ul { list-style-type: none; margin: 0; padding: 0; display: flex; } nav li { margin-right: 15px; } nav a { text-decoration: none; color: white; }
Apply these styles to your HTML structure with nav, ul, li, and a elements.

9. Styling Cards:

Cards are commonly used to present content. Here's a simple card styling example:
cssCopy code .card { border: 1px solid #ddd; border-radius: 8px; padding: 15px; box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); } .card img { width: 100%; border-radius: 4px; }
Apply the card class to a container div and customize it according to your card structure.

10. Responsive Design:

Ensuring your website looks good on various devices is crucial. Use media queries for responsiveness:
cssCopy code @media screen and (max-width: 768px) { /* Adjust styles for smaller screens */ nav { flex-direction: column; /* Stack items vertically */ } .card { width: 100%; /* Make cards take full width */ } }
Experiment with media queries to adapt your design for different screen sizes.
 

11. Transitions and Animations:

Add smooth transitions and animations to make your website more dynamic:
cssCopy code .button { transition: background-color 0.3s ease; } .button:hover { background-color: #ff5733; } @keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } } .fade-in { animation: fadeIn 1s ease-in-out; }
Apply the button styles to your buttons and the fade-in class to elements you want to fade in.

12. Custom Fonts:

Enhance your typography with custom fonts:
cssCopy code body { font-family: 'Open Sans', sans-serif; } h1 { font-family: 'Lobster', cursive; }
Include the desired font in your project and use it in the font-family property.

13. Pseudo-classes and Pseudo-elements:

Use pseudo-classes and pseudo-elements for more specific styling:
cssCopy code a:hover { text-decoration: underline; } li:nth-child(odd) { background-color: #f0f0f0; } p::first-line { font-weight: bold; }
Apply these styles to anchor links, list items, and the first line of paragraphs.

14. Positioning:

Control the positioning of elements with the position property:
cssCopy code .header { position: fixed; top: 0; width: 100%; background-color: #333; color: white; padding: 10px; }
Use position: fixed to create a fixed header at the top of the page.

15. Transforms:

Transforms can modify the appearance of elements:
cssCopy code .box { transform: rotate(45deg); } .image { transform: scale(1.2); }
Experiment with rotate, scale, and other transform functions.
 

16. CSS Variables:

CSS variables, also known as custom properties, enable you to define reusable values:
cssCopy code :root { --primary-color: #3498db; } .button { background-color: var(--primary-color); }
Define variables in the :root pseudo-class and use them throughout your styles.

17. Overflow and Clipping:

Control content overflow with the overflow property:
cssCopy code .container { width: 300px; height: 200px; overflow: hidden; } .text { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
Use overflow to hide or show content and text-overflow to handle long text.

18. Responsive Images:

Ensure images adapt to different screen sizes:
cssCopy code img { max-width: 100%; height: auto; }
Set max-width: 100% to make images responsive while maintaining their aspect ratio.

19. Combining Selectors:

Combine selectors for more specific targeting:
cssCopy code .button.primary { background-color: #27ae60; } .container div { border: 1px solid #ccc; }
Combine classes or target specific elements within a container.

20. CSS Grid Layout:

Explore the powerful CSS Grid for advanced layout structures:
cssCopy code .grid-container { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; } .grid-item { background-color: #ecf0f1; padding: 20px; }
Use display: grid on the container and define columns with grid-template-columns.
 

21. CSS Flexbox Ordering:

Control the order of flex items without changing the HTML structure:
cssCopy code .container { display: flex; } .item1 { order: 2; } .item2 { order: 1; }
Change the order property to rearrange flex items visually.

22. CSS Filters:

Apply visual effects like blur, grayscale, and brightness to elements:
cssCopy code .image { filter: grayscale(50%) blur(2px); }
Experiment with various filter functions to achieve different effects.

23. CSS Transitions and Transform Origin:

Refine transitions and specify the transform origin for transformations:
cssCopy code .box { transition: transform 0.5s ease-in-out; } .box:hover { transform: scale(1.2); transform-origin: top left; }
Use transform-origin to control the point of origin for transformations.

24. CSS Variables in Media Queries:

Use CSS variables within media queries for responsive design:
cssCopy code :root { --font-size: 16px; } body { font-size: var(--font-size); } @media screen and (max-width: 600px) { :root { --font-size: 14px; } }
Adjust variables within media queries for a more responsive layout.

25. CSS Custom Select Styles:

Style custom dropdowns for better user experience:
cssCopy code .select-wrapper { position: relative; } .select-wrapper select { appearance: none; padding: 10px; border: 1px solid #ccc; background-color: #fff; } .select-wrapper::after { content: '\25BC'; position: absolute; top: 50%; right: 10px; transform: translateY(-50%); }
Customize the appearance of the select dropdown for a polished look.