Yeni Alımlara Özel Türkiye Lokasyon (VDS/VPS) Ürünlerinde %50 İndirim Fırsatı! Kaçırmayın... (Stoklarla Sınırlıdır)

Arama Yap Mesaj Gönder

Biz Sizi Arayalım

+90
X
X
X
X

Knowledge Base

Homepage Knowledge Base General Flexible Page Layout Creation Techn...

Bize Ulaşın

Konum Halkalı merkez mahallesi fatih cd ozgur apt no 46 , Küçükçekmece , İstanbul , 34303 , TR

Flexible Page Layout Creation Techniques with Grid and Flexbox

Techniques for Creating Flexible Page Layouts with Grid and Flex Structures

Nowadays, it is crucial for websites and applications to adapt to different screen sizes and devices. Flexible page layouts improve user experience by ensuring that content is displayed correctly and legibly on different screens. In this article, we will examine in detail how CSS Grid and Flexbox can be used to create flexible page layouts.

CSS Grid Layout: Two-Dimensional Layout Power

CSS Grid Layout is designed to arrange web pages based on a two-dimensional (row and column) grid system. This is an extremely powerful and flexible tool for creating complex layouts. A Grid consists of a container and the items within that container. By defining rows and columns on the container, the placement of the items in these grid cells is controlled.

Defining a Grid Container and Creating a Grid

To define an HTML element as a Grid container, we use the `display: grid;` property. Then, we can define the columns and rows of the grid with the `grid-template-columns` and `grid-template-rows` properties. For example:


<div class="container">
  <div class="item">1</div>
  <div class="item">2</div>
  <div class="item">3</div>
  <div class="item">4</div>
</div>

.container {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr; /* Three equal columns */
  grid-template-rows: auto auto; /* Two rows, height according to content */
}

.item {
  padding: 20px;
  border: 1px solid #ccc;
  text-align: center;
}

In this example, the div element with the `.container` class is defined as a Grid container. The `grid-template-columns: 1fr 1fr 1fr;` line creates three columns of equal width in the grid. The `fr` unit is a flexible length unit that proportionally shares the remaining space. The `grid-template-rows: auto auto;` line creates two rows, and the height of the rows is automatically adjusted according to the content.

Placing Grid Items

To place Grid items in the grid, we can use the `grid-column-start`, `grid-column-end`, `grid-row-start`, and `grid-row-end` properties. These properties specify which column an item starts and ends in, and which row an item starts and ends in. We can also use the `grid-column` and `grid-row` shorthand properties.


.item1 {
  grid-column: 1 / 3; /* Start from the 1st column, up to the 3rd column (3rd column not included) */
}

In this example, the element with the `.item1` class is placed starting from the 1st column up to the 3rd column (2 columns wide).

Grid Areas

For more complex layouts, we can define Grid areas and place items in these areas. We can assign names to the cells in the grid with the `grid-template-areas` property. Then, we can place items in these named areas with the `grid-area` property.


.container {
  display: grid;
  grid-template-columns: 1fr 3fr 1fr;
  grid-template-rows: auto auto auto;
  grid-template-areas:
    "header header header"
    "sidebar content ads"
    "footer footer footer";
}

.header {
  grid-area: header;
}

.sidebar {
  grid-area: sidebar;
}

.content {
  grid-area: content;
}

.ads {
  grid-area: ads;
}

.footer {
  grid-area: footer;
}

In this example, a layout is created that includes a header, sidebar, content, ads area, and footer. Each area is placed according to the name defined in `grid-template-areas`.

Flexbox: One-Dimensional Layout Flexibility

CSS Flexbox (Flexible Box Layout) is designed to arrange items on a single dimension (row or column). Flexbox offers a flexible way to control the sizes, order, and alignment of items. It is generally ideal for arranging menus, navigation bars, and small components.

Defining a Flex Container

To define an HTML element as a Flex container, we use the `display: flex;` or `display: inline-flex;` properties. The `display: flex;` element creates a block-level Flex container, while the `display: inline-flex;` element creates an inline Flex container.


<div class="container">
  <div class="item">1</div>
  <div class="item">2</div>
  <div class="item">3</div>
</div>

.container {
  display: flex;
}

.item {
  padding: 20px;
  border: 1px solid #ccc;
  text-align: center;
}

In this example, the div element with the `.container` class is defined as a Flex container. By default, Flex items are arranged horizontally side by side.

Flexbox Direction (flex-direction)

The `flex-direction` property determines the direction in which Flex items will be arranged. Its values are: `row` (default, horizontal), `column` (vertical), `row-reverse` (horizontal reverse), `column-reverse` (vertical reverse).


.container {
  display: flex;
  flex-direction: column; /* Arrange items vertically */
}

Flexbox Wrapping (flex-wrap)

The `flex-wrap` property determines how Flex items will behave when they do not fit in the container. Its values are: `nowrap` (default, items remain on a single line), `wrap` (items wrap to multiple lines), `wrap-reverse` (items wrap to multiple lines in reverse order).


.container {
  display: flex;
  flex-wrap: wrap; /* Move items to the next line when they don't fit */
}

Flexbox Alignment (justify-content and align-items)

The `justify-content` property determines how Flex items will be aligned along the main axis. Its values are: `flex-start` (default, items are aligned to the start), `flex-end` (items are aligned to the end), `center` (items are aligned to the center), `space-between` (items are distributed with equal spacing, the first and last items are aligned to the edges), `space-around` (items are distributed with equal spacing, each item has equal space around it), `space-evenly` (items are distributed with equal spacing, equal space is left on the edges as well).

The `align-items` property determines how Flex items will be aligned along the cross axis. Its values are: `flex-start` (items are aligned to the start), `flex-end` (items are aligned to the end), `center` (items are aligned to the center), `baseline` (items are aligned to the baseline), `stretch` (default, items stretch to the height of the container).


.container {
  display: flex;
  justify-content: center; /* Center horizontally */
  align-items: center; /* Center vertically */
}

Flex Items Sizing (flex-grow, flex-shrink, flex-basis)

The `flex-grow` property determines how much of the remaining empty space in the container a Flex item will fill. The `flex-shrink` property determines how much a Flex item will shrink when it does not fit in the container. The `flex-basis` property determines the initial size of a Flex item.


.item {
  flex-grow: 1; /* Share the remaining space equally */
}

Using Grid and Flexbox Together

Grid and Flexbox become even more powerful when used together. Grid is ideal for creating the overall page layout, while Flexbox can be used to arrange small components and content. For example, you can create the main structure of a website with Grid and arrange the items inside each Grid cell with Flexbox.

Conclusion

CSS Grid and Flexbox are the cornerstones of modern web development. They offer powerful and flexible tools for creating flexible and responsive page layouts. In this article, we examined the basic concepts and usage examples of Grid and Flexbox. By using this information, you can develop user-friendly websites and applications that adapt to different screen sizes and devices. By practicing and experimenting with different layouts, you can fully explore the possibilities offered by these technologies.  

Can't find the information you are looking for?

Create a Support Ticket
Did you find it useful?
(38259 times viewed / 14819 people found it helpful)

Call now to get more detailed information about our products and services.

Diğer Hizmetlerimiz

Web siteniz için uygun fiyatlı Ucuz Hosting Paketleri ile yüksek performanslı barındırma hizmeti sunuyoruz.

Dijital varlığınızı güçlendirmek için profesyonel Sosyal Medya Hesap Yönetimi hizmeti sağlıyoruz.

Görsellerinizi sıkıştırmak için kullanışlı PNG to WebP dönüştürücümüzü deneyin.

Resim boyutlarını küçültmek isteyenler için JPG to WebP aracı idealdir.

SEO uyumu için Robots.txt Oluşturucu aracımızı kullanabilirsiniz.

Htaccess Oluşturucu ile yönlendirme ve erişim ayarlarınızı kolayca yapın.

Kullanıcı deneyimini artırmak için özgün UI/UX Tasarım çözümleri sunuyoruz.

Hızlı ve güvenli kurulum için WordPress hizmetimizden faydalanın.

Sitenizi arama motorlarında yükseltmek için Google Optimizasyon hizmeti sunuyoruz.

Markanızı tanıtmak için Tanıtım Yazısı içerikleri üretiyoruz.

UGC ile içerik gücünüzü artırın: UGC İçerik.

Profesyonel Yazılım Kurulum hizmetleri sunuyoruz.

Kaliteli içerik arayanlara özel Hazır Makale & İçerik Satışları.

Sıra Bulucu ile arama motoru sıralamanızı takip edin.

Google Haritalara Kayıt ile konumunuzu haritada gösterin.

Alan adı otoritenizi öğrenin: DA PA Sorgula.

Dış bağlantılarınızı analiz edin: Dış Link Aracı.

Dahili link yapınızı inceleyin: İç Link Aracı.

Arama motoru başarınızı artırmak için SEO Danışmanlığı alın.

Organik trafiğinizi artırmak için SEO çözümleri geliştirin.

Özel çözümler için Mobil Uygulama geliştirme hizmeti sunuyoruz.

Markanız için Logo tasarlıyoruz.

İşinize özel Web Yazılım çözümleri sunuyoruz.

Kurumsal imajınızı yansıtan Kurumsal Web Tasarım hizmeti.

Süreçlerinizi hızlandırmak için Bot Program geliştiriyoruz.

Online satışlarınız için Sanal POS sistemleri sunuyoruz.

Entegrasyonlar için Pazaryeri ve Kargo Entegrasyonu.

Kullanıcı deneyimi testleri için Son Kullanıcı Testleri.

İçerik indirimi için TikTok Video İndir aracı.

Görsellerinizi kolayca küçültün: Resim Boyutlandırma.

Yararlı kod örnekleri için Site Kodları rehberine göz atın.

Kodları online inceleyin: HTML Viewer.

IP adresinizi öğrenmek için IP Adresim Nedir aracını kullanın.

Bağlantı hızınızı test etmek için Hız Testi.

DNS önbellek sorunları için DNS Cache Problemi sayfasını inceleyin.

DNS değişikliklerini görmek için DNS Önizleme aracı.

IDN dönüştürme için IDN Çevirme kullanın.

Sunuculara ping atmak için Ping Gönder özelliğini deneyin.

Web sitenizin yanıt süresini test etmek için Web Site Ping aracımızı kullanın.

Top