Foruma hoş geldin 👋, Ziyaretçi

Forum içeriğine ve tüm hizmetlerimize erişim sağlamak için foruma kayıt olmalı ya da giriş yapmalısınız. Foruma üye olmak tamamen ücretsizdir.

Flexbox'ta order property'sini kullanarak mobilde DOM sırasını değiştirmeden görsel sıralamayı nasıl değiştirdiğim

websterx

Üye
Katılım
14 Mart 2026
Mesajlar
6
Merhaba arkadaşlar, bugün başımı çok ağrıtan bir sorunu ve nasıl temiz bir çözüm bulduğumu anlatacağım. Bir projede, desktop'ta solda görünen bir sidebar, mobilde ise içeriğin altına taşınacaktı. İlk düşüncem, DOM'daki sırayı değiştirip CSS ile konumlandırmaktı ama bu hem erişilebilirlik hem de SEO açısından pek hoş olmazdı. İşte benim kullandığım en temiz çözüm: Flexbox ve order property'si.

🔥 Karşılaştığım Sorun

Tasarım şuydu: Desktop'ta "Sidebar | İçerik" şeklinde yan yana, mobilde ise "İçerik | Sidebar" şeklinde üst üste. DOM'da sidebar'ın içerikten önce gelmesi gerekiyordu çünkü mobilde ilk odaklanılması gereken şey içerikti. Fakat görsel olarak desktop'ta sidebar solda olmalıydı. Media query ile DOM sırasını değiştirmeye çalışmak büyük bir karmaşaya yol açıyordu.

💡 Flexbox Order Çözümü

Çözüm, ana container'ı bir flex container yapmak ve order özelliğini akıllıca kullanmaktı. Desktop görünümünde, sidebar'a düşük bir order değeri verip solda görünmesini sağladım. Mobil görünümde ise, order değerlerini sıfırlayıp (veya varsayılan değerlere döndürüp) flex-direction'ı column yaparak istediğim sıralamayı elde ettim.

İşte basit ve temiz kod örneği:

HTML:
<div class="container">
  <aside class="sidebar">Bu sidebar, DOM'da önce geliyor.</aside>
  <main class="content">Bu asıl içerik, DOM'da sonra geliyor.</main>
</div>

CSS:
.container {
  display: flex;
  / Desktop: Yan yana /
  flex-direction: row;
}

.sidebar {
  width: 25%;
  / Desktop'ta solda görünmesi için order değeri 1 /
  order: 1;
}

.content {
  width: 75%;
  / Desktop'ta sağda görünmesi için order değeri 2 /
  order: 2;
}

/ Mobil Görünüm /
@media (max-width: 768px) {
  .container {
    flex-direction: column;
  }
  .sidebar, .content {
    width: 100%;
    / Mobilde order'ı sıfırlayarak DOM sırasına dönüyoruz /
    order: 0;
  }
}

Bu yöntemle, DOM sırası (sidebar -> content) hiç bozulmadan, sadece görsel sıralamayı (desktop: sidebar, content | mobil: content, sidebar) mükemmel bir şekilde değiştirmiş olduk. Hem erişilebilirlik hem de SEO dostu bir çözüm.

✅ Sonuç ve Tavsiyeler

Bu hatayı ilk gördüğümde kafayı yemiştim, ama flexbox'un bu gücünü keşfedince işler çok kolaylaştı. order özelliğini, sadece görsel düzen için kullanmak ve erişilebilir, mantıklı bir DOM yapısını korumak çok önemli.

Siz de responsive tasarımlarda benzer sorunlar yaşadınız mı? Flexbox veya Grid'de DOM sırasını koruyarak farklı görsel düzenler oluşturmak için kullandığınız başka püf noktaları var mı? Yorumlarda paylaşalım!
 

Tema özelleştirme sistemi

Bu menüden forum temasının bazı alanlarını kendinize özel olarak düzenleye bilirsiniz.

Zevkine göre renk kombinasyonunu belirle

Tam ekran yada dar ekran

Temanızın gövde büyüklüğünü sevkiniz, ihtiyacınıza göre dar yada geniş olarak kulana bilirsiniz.

Geri