Unlimited Wordpress themes, plugins, graphics & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Web Design
  2. CSS

Beberapa Metode CSS yang Berbeda untuk Mengubah Urutan Tampilan

by
Read Time:7 minsLanguages:

Indonesian (Bahasa Indonesia) translation by Sap (you can also view the original English article)

Dalam tutorial ini kita akan membahas beberapa metode CSS yang berbeda untuk penataan kembali elemen HTML.

Tujuan

Tata letak yang ingin kami bangun sangat sederhana. Secara khusus, pada layar kecil (yaitu <600px), seharusnya terlihat seperti ini:

Pada layar sedang dan di atasnya (yaitu lebih besar dari, atau sama dengan 600 px), kami ingin itu muncul sebagai berikut:

Tantangan terbesar kita adalah menemukan cara untuk membalikkan urutan tombol.

Markup

Kita akan menggunakan markup sederhana; hanya sebuah div elemen yang mengandung empat tombol:

Basic Styles

Pada layar kecil, semua tombol berbagi gaya yang sama:

Pada layar yang lebih besar, kami hanya menetapkan width: 25% untuk tombol. Gaya yang tersisa akan ditentukan dengan metode CSS apapun yang kita gunakan untuk membalikkan urutan tombol.

Akhirnya, kami akan menambahkan beberapa gaya untuk negara focus tombol kami:

Jadi, jika kita menggunakan keyboard ("Tab" key) untuk menavigasi melalui tombol, masing-masing tombol fokus akan mendapatkan gelap merah sebagai warna latar belakang.

Kolom memesan metode

Pada titik ini kita sudah siap untuk menguji pendekatan CSS yang berbeda untuk membalikkan tombol-tombol perintah ketika viewport melebihi 599px.

Metode #1: Floats

Satu solusi cepat adalah untuk mengapung tombol di sebelah kanan. Inilah CSS tambahan:

Berikut adalah demo Codepen tertanam:

Metode #2: Positioning

Solusi alternatif adalah untuk posisi unsur-unsur, benar-benar atau relatif.

Setelah pilihan pertama, kami float tombol di sebelah kiri, memberikan mereka position: relative, dan kemudian menggunakan properti left untuk menetapkan posisi mereka.

CSS diperlukan terlihat sebagai berikut:

Demo Codepen tertanam:

Setelah opsi kedua, kita juga bisa memberikan posisi tombol position: absolute dan kemudian menggunakan properti left untuk menetapkan posisi mereka lebih tepatnya.

Aturan-aturan CSS yang sesuai:

Codepen demo

Metode #3: direction Properti

Pendekatan yang kurang jelas adalah dengan menggunakan properti direction; sesuatu yang biasanya disediakan untuk mengubah arah membaca teks. Dalam kasus kami, kita menetapkan direction: rtl (kanan ke kiri) untuk pembungkus elemen, langsung membalikkan tata letak.

Catatan: untuk contoh ini, kami membuat kami elemen yang berperilaku seperti tabel-elemen untuk mencapai tata letak horisontal.

Anda dapat melihat gaya CSS yang diperlukan di bawah ini:

It's worth menyebutkan bahwa jika (untuk beberapa alasan) kita ingin mengubah arah tekstual tombol, kita dapat menyertakan "Timpa bi-directional" aturan berikut dalam stylesheet kami:

Codepen demo

Metode #4: Transforms

Rapi solusi adalah untuk mengapung tombol di sebelah kiri dan kemudian menerapkan transform: scaleX(-1) kepada mereka dan parent mereka. Dengan menetapkan nilai negatif, elemen yang diubah tidak diskalakan. Faktanya, mereka membalik sepanjang sumbu horizontal.

Di bawah ini adalah CSS yang dibutuhkan:

Demo Codepen tertanam:

Kita bahkan dapat menggunakan fungsi rotate mengubah untuk mencapai urutan yang diinginkan. Semua harus kita lakukan adalah menambahkan transform: rotateY(180deg) untuk tombol dan parent mereka.

Inilah CSS diperlukan untuk solusi ini:

Dan Codepen demo:

Metode #5: Flexbox

Flexbox adalah cara lain untuk mengubah kolom pemesanan. Dalam contoh kita, kita dapat mengambil keuntungan dari dua sifat flexbox yang berbeda untuk membuat tata letak yang diinginkan.

Pendekatan pertama adalah untuk menetapkan orangtua tombol sebagai wadah flex dan kemudian tambahkan flex-direction: row-reverse nilai properti untuk itu.

Berikut adalah gaya yang sesuai:

Demo Codepen tertanam ditampilkan di bawah ini:

Flexbox pilihan kedua adalah untuk membuat orang tua dari tombol sebagai wadah flex dan kemudian menggunakan properti pesanan untuk menentukan di mana urutan tombol akan muncul.

CSS yang sesuai:

Codepen demo:

Metode #6: CSS Grid Layout

Solusi yang menjanjikan untuk mengatur unsur-unsur adalah CSS Grid Layout. Bahkan jika ada sangat terbatas dukungan browser pada saat tulisan ini, mari kita mencobanya. Perhatikan bahwa contoh kami hanya akan berfungsi di Chrome, yang secara default tidak mendukung fitur CSS ini, tetapi kami dapat mengikuti beberapa langkah sederhana untuk mengaktifkannya.

Tanpa terlalu banyak detail, mari kita gambarkan dua cara untuk mencapai pesanan yang diinginkan.

Opsi pertama adalah mengatur induk tombol sebagai penampung grid dan kemudian menggunakan properti grid-column untuk menentukan urutan tombol mana yang akan muncul. Selain itu, kami memastikan bahwa semua tombol milik baris (pertama) sama dengan menambahkan grid-row: 1 kepada mereka.

Lihat style terkait di bawah ini:

Demo Codepen tertanam:

Pilihan grid kedua ini mirip dengan flexbox's solusi kedua. Kami menetapkan parent tombol sebagai wadah grid dan kemudian menggunakan properti order untuk menentukan di mana urutan tombol akan muncul.

CSS yang dibutuhkan:

Codepen demo:

Sekali lagi, Anda akan perlu untuk mengaktifkan "Fitur eksperimental Platform Web" di Chrome untuk melihat hasil.

Source Order vs Urutan Visual

Seperti yang kita telah ditunjukkan, kita dapat mengikuti pendekatan CSS yang berbeda untuk mengubah urutan tombol kami. Jadi, saat ini Mari kita meninjau kembali setiap dari demo dan menggunakan keyboard (klik pena dan tekan tombol "Tab") untuk menavigasi melalui tombol. Apa yang akan Anda perhatikan adalah bahwa bahkan jika "Tombol 4" visual muncul pertama, tombol pertama yang mendapat terfokus "Tombol 1" karena itulah yang muncul pertama kali di DOM. Yang sama akan terjadi jika kita uji demo dengan pembaca layar (saya melakukan tes di NVDA).

Mengingat ini pemisahan antara urutan DOM dan urutan CSS, kita harus sangat berhati-hati dengan bagian-bagian halaman kami yang kita susun dengan CSS. Sebagai contoh, sementara flexbox di order properti adalah salah satu cara yang paling fleksibel untuk penataan kembali unsur-unsur, spec mengatakan:

"Penulis harus menggunakan order hanya untuk visual, tidak logis, penataan kembali konten. Style sheet yang menggunakan perintah untuk melakukan penataan ulang secara logis tidak sesuai.”

Dengan cara yang sama, di sini adalah spec mengatakan untuk grid order properti:

"Seperti dengan penataan kembali flex item, properti order hanya dapat digunakan ketika urutan visual perlu out-of-sync dengan urutan pidato dan navigasi; Sebaliknya sumber dokumen yang mendasari harus dapat mengatur kembali sebaliknya."

Catatan: Jika Anda menguji solusi kedua flexbox's (dengan order properti) di Firefox, Anda akan melihat bahwa karya navigasi keyboard yang halus dan tombol pertama yang mendapat terfokus pada layar menengah dan di atas adalah "Tombol 4". Perilaku ini telah dilaporkan sebagai bug.

Kesimpulan

Dalam tutorial ini, kita meneliti metode CSS yang berbeda untuk penataan kembali elemen HTML. Tentu saja, tidak semua metode ini tepat dalam semua kasus. Sebelum memutuskan metode mana yang digunakan, Anda harus mempertimbangkan beberapa hal:

  • Browser Anda ingin mendukung. Misalnya, beberapa pendekatan tersebut tidak bekerja di versi sebelumnya dari Internet Explorer (misalnya < 10).
  • Kompleksitas penataan ulang Anda. Apakah itu sesuatu yang sederhana seperti yang kita lihat dalam contoh kita atau sesuatu yang lebih rumit?

Jika Anda dapat memikirkan metode lain untuk membatalkan pesanan tombol, pastikan untuk membaginya dengan kami di komentar di bawah.

Bacaan lebih lanjut

Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.