Rumah >hujung hadapan web >tutorial css >Bagaimana Menggayakan Baris dengan Betul dengan Pemilih anak ke-n Apabila Unsur Tersembunyi Wujud?

Bagaimana Menggayakan Baris dengan Betul dengan Pemilih anak ke-n Apabila Unsur Tersembunyi Wujud?

DDD
DDDasal
2024-11-29 02:18:08183semak imbas

How to Style Rows Correctly with nth-child Selectors When Hidden Elements Exist?

Cara Memintas Elemen Tersembunyi Apabila Menggunakan Pemilih anak ke-n

Pemilih anak ke-nth membenarkan anda menyasarkan elemen berdasarkan kedudukannya di kalangan elemen adik beradik mereka. Walau bagaimanapun, pemilih ini mengira elemen tersembunyi, yang boleh menyebabkan masalah apabila anda mahu baris tertentu dalam grid dipaparkan secara berbeza.

Dalam kes anda, anda menggunakan pemilih anak ke-n untuk menukar penampilan setiap baris ke-n dalam grid blok. Apabila anda menyembunyikan beberapa blok menggunakan paparan: tiada, pemilih anak ke-n masih mengiranya, membawa kepada penggayaan yang salah.

Penyelesaian Berasaskan CSS

Malangnya, tiada penyelesaian CSS tulen untuk masalah ini. Pemilih anak ke-n hanya melihat semua adik-beradik, tanpa mengira keterlihatan mereka.

Penyelesaian Berasaskan jQuery

Untuk mengelak daripada memasukkan elemen tersembunyi dalam pengiraan anak ke-n anda, anda perlu mengalih keluarnya daripada DOM apabila ia disembunyikan. jQuery menyediakan kaedah .detach() untuk tujuan ini:

$(".hide-others").click(function () {
  var divs;

  $(".photos-board-item").each(function (i) {
    $(this).data("initial-index", i);
  });

  if (divs) {
    $(divs)
      .appendTo(".row")
      .each(function () {
        var oldIndex = $(this).data("initial-index");
        $(".photos-board-item").eq(oldIndex).before(this);
      });
    divs = null;
  } else {
    divs = $(".css--all-photo").detach();
  }
});

Kod ini mengalih keluar elemen tersembunyi daripada DOM apabila butang "Sembunyikan orang lain" diklik. Apabila butang diklik sekali lagi, elemen dimasukkan semula ke dalam DOM, mengekalkan susunan asalnya.

Demo

Berikut ialah demo yang menunjukkan penyelesaiannya:

[DEMO FIDDLE]

Dengan menggunakan kaedah .detach(), anda boleh togol keterlihatan elemen tanpa melanggar logik pemilih anak ke-n, memastikan setiap baris dalam grid anda mengekalkan penampilan yang diingini.

Atas ialah kandungan terperinci Bagaimana Menggayakan Baris dengan Betul dengan Pemilih anak ke-n Apabila Unsur Tersembunyi Wujud?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn