CSS flex line breaks
CSS flex line break
Flex layout is a new layout method in CSS3 that makes it easy to create a flexible box model and achieve the layout and alignment of various elements on the page. In Flex layout, we can use the flex-wrap
property to control how the child elements in the flex container wrap.
Understanding Flex Layout
When using Flex layout, you first need to clarify a few concepts:
- Flex container: A parent element that contains flex items. A flex container is created by setting its
display
property toflex
orinline-flex
. - Flex items: Flex items directly under a flex container are controlled by the flex container’s layout.
- Main axis and cross axis: A flex container has a main axis and a cross axis. The main axis is the direction in which flex items are arranged, while the cross axis is perpendicular to the main axis.
- Main axis direction: The main axis can be arranged horizontally (row) or vertically (column).
- Main Axis Alignment: The alignment of flex items along the main axis.
- Cross Axis Alignment: The alignment of flex items along the cross axis.
Using the flex-wrap
Property to Implement Flex Wrapping
In a flex layout, flex items do not wrap by default. This can cause overflow even if the container is not wide enough to accommodate all of them. To control this, use the flex-wrap
property.
flex-wrap
Property Values
flex-wrap
has three values:
nowrap
: The default value, indicating that flex items do not wrap and will be arranged in a single line as much as possible.wrap
: Indicates that flex items can wrap and automatically wrap when they do not fit in a single line.wrap-reverse
: Indicates that flex items can wrap and begin to wrap in the opposite direction of their original direction.
Example
First, we create a flex container and set the flex-wrap
property to wrap
to implement line wrapping for flex items.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Flex Wrap</title>
<style>
.flex-container {
display: flex;
flex-wrap: wrap;
width: 300px; /** Set container width **/
border: 1px solid #ccc;
padding: 10px;
}
.flex-item {
width: 100px; /** Set child element width **/
height: 100px; /** Set child element height **/
background: #f0f0f0;
margin: 5px;
}
</style>
</head>
<body>
<div class="flex-container">
<div class="flex-item">1</div>
<div class="flex-item">2</div>
<div class="flex-item">3</div>
<div class="flex-item">4</div>
<div class="flex-item">5</div>
<div class="flex-item">6</div>
<div class="flex-item">7</div>
<div class="flex-item">8</div>
</div>
</body>
</html>
In the above example, we create a 300px flex container and set the flex items to 100px squares. Because the container is not wide enough to fit all the items in a single row, they automatically wrap.
Summary
By using the flex-wrap
property, we can easily achieve line wrapping of items in a flex layout. By effectively using the flex-wrap
property, you can make your page layout more consistent with your design and provide a better user experience.