DEV Community

Cover image for Section Styling with CSS3
Hootan
Hootan

Posted on • Updated on

Section Styling with CSS3

This section explains how to style specific sections in your HTML using CSS3 selectors.

Targeting Every Other Section:

CSS: Section:nth-of-type(2n)
Explanation: This targets every second section element (n) based on its position among its siblings (2n).
Targeting the Last Section:

CSS: Section:last-of-type
Explanation: This targets the last section element regardless of the total number of sections.

Using Font Awesome Icons

While understanding how to section your HTML is important, this section focuses on using Font Awesome icons for styling.

Getting Font Awesome:

Website: Head over to fontawesome(cdnjs.com is another option) to download the Font Awesome library.

Basic Implementation:

Here's a breakdown of the provided code snippet for using Font Awesome icons:

Class for Icons: Define a class named .icon to target the elements where you want to display icons.
Styling Class: Use a separate class (e.g., .tang) to style the appearance of the icon (size, color, etc.).

.icon::before {
  display: inline-block;
  font-style: normal;
  font-variant: normal;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
  font-family: "Font Awesome 6 Free"; /* Use quotes for font names */
  font-weight: 900; /* Or 400 for lighter weight */
}
Enter fullscreen mode Exit fullscreen mode

Tag Class and Icon Character:
It's unclear what "Tag class" refers to here.
You likely meant using a class on the element containing the icon and specifying the icon character code within the CSS. Font Awesome provides character codes for each icon. For example, to display the "home" icon, you might use content:
"\f015"
; within the .icon::before style.
Color can be set using the color property within the .icon::before style (e.g., color: white;).

Responsive Design Techniques:

Here are various techniques for creating responsive layouts:

Flexbox:
This code snippet (With:50%; merge-left: auto;) seems like an attempt to use flexbox for a two-column layout. However, "merge-left" isn't a standard flexbox property. You might want to use justify-content: space-between; on the parent container to achieve equal spacing between two flex items (assuming 50% width each).
Calc:
The snippet Calc(500px+20%) demonstrates using the calc() function to calculate a dynamic width based on a fixed value (500px) and a percentage (20%).
Clamp:
The snippet Clamp(2vw,5rem,5vm) showcases the clamp() function, which allows you to define a minimum, preferred, and maximum value for an element's size based on viewport width (vw), rem units, or viewport height (vm) in this case.
Columns:
The snippets column:2; column-span: on; attempt to use the multi-column layout. However, "column-span: on" isn't a valid property. You might want to use column-count: 2; to define two columns and remove column-span. Alternatively, column: 100px; defines a fixed column width of 100px.
Tip: Consider using a CSS framework like Bootstrap or Tailwind CSS for a more comprehensive set of responsive layout tools.

I hope this improved version clarifies the concepts and provides more helpful information.

Top comments (1)

Collapse
 
andrewbaisden profile image
Andrew Baisden

CSS Clamp is probably the one I have not used much of yet but it seems useful.