Jadual Kandungan
Jadi, dalam keadaan itu, kita harus menggunakan nama kontena untuk memaklumkan dengan jelas bahawa bekas yang mereka dapat tarik dari. Kami juga boleh memberikan beberapa nama yang jelas untuk menjadikannya lebih banyak syarat:
Toggling Styles
pertanyaan gaya menyelesaikan "hack toggle harta benda tersuai"
pertanyaan gaya dan kandungan CSS yang dihasilkan
pertanyaan gaya dan komponen web
Rumah hujung hadapan web tutorial css Menggali lebih mendalam ke dalam pertanyaan gaya kontena

Menggali lebih mendalam ke dalam pertanyaan gaya kontena

Mar 09, 2025 am 09:33 AM

Digging Deeper Into Container Style Queries

Saya menulis beberapa pemikiran awal mengenai pertanyaan gaya kontena sebentar lagi. Ia masih hari -hari awal. Mereka sudah ditakrifkan dalam spesifikasi Modul Tahap 3 CSS (kini dalam status draf editor) tetapi masih terdapat beberapa perbincangan yang luar biasa.

Idea asas ialah kita boleh menentukan bekas dan kemudian memohon gaya yang bersesuaian dengan keturunannya berdasarkan gaya yang dikira.

@container <name>? <conditions> {
  /* conditional styles */
}
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Contoh terbaik yang saya lihat setakat ini adalah mengeluarkan huruf miring dari sesuatu seperti & lt; em & gt;, & lt; i & gt;, dan & lt; q & gt; Apabila ia digunakan dalam konteks di mana kandungan sudah berisik:

em, i, q {
  font-style: italic; /* default UA behavior */
}

/* When the container's font-style is italic, remove italics from these elements. */
@container style(font-style: italic) {
  em, i, q {
    font-style: normal;
  }
}
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Itulah idea umum. Tetapi jika anda tidak tahu, Miriam Suzanne, yang merupakan editor spec, menyimpan satu set nota peribadi yang berterusan dan menyeluruh mengenai pertanyaan gaya kontena yang tersedia secara terbuka. Ia telah dikemas kini pada hari yang lain dan saya menghabiskan beberapa waktu di sana cuba membungkus kepala saya di sekitar aspek -aspek yang lebih bernuansa dari pertanyaan gaya. Ia tidak rasmi, tetapi saya fikir saya akan menulis beberapa perkara yang menonjol kepada saya. Siapa tahu? Mungkin ia adalah perkara yang akhirnya kita dapat menantikan!

setiap elemen adalah bekas gaya

Kami tidak perlu secara jelas menetapkan nama kontena atau kontena untuk menentukan bekas gaya kerana semuanya adalah bekas gaya secara lalai.

Jadi, anda melihat contoh di atas yang menghilangkan huruf miring? Perhatikan ia tidak mengenal pasti bekas. Ia melompat ke pertanyaan menggunakan fungsi gaya (). Jadi, apa bekas yang ditanya? Ia akan menjadi ibu bapa langsung dari unsur -unsur

menerima gaya yang digunakan. Dan jika tidak itu, maka itu bekas relatif terdekat yang terdekat yang perlu diutamakan. Saya suka itu. Ia sangat CSS-y untuk pertanyaan untuk mencari perlawanan, kemudian terus gelembung sehingga ia mendapati keadaan yang sepadan.

Sukar untuk otak kecil saya untuk memahami mengapa kita boleh lari dengan bekas tersirat berdasarkan gaya tetapi tidak begitu banyak apabila kita berurusan dengan pertanyaan dimensi, seperti saiz dan saiz inline. Miriam menerangkannya dengan baik:

Pertanyaan dimensi memerlukan CSS
pembendungan

pada saiz, susun atur, dan gaya bekas untuk mengelakkan gelung susun atur. Pembendungan adalah perkara invasif untuk memohon secara meluas, jadi penting bahawa penulis mempunyai kawalan yang teliti terhadap unsur -unsur yang (atau tidak) saiz bekas.

Pertanyaan berasaskan gaya tidak mempunyai batasan yang sama. Tidak ada cara dalam CSS untuk gaya keturunan untuk memberi impak kepada gaya yang dikira sebagai nenek moyang. (penekanan lombong)

Semuanya datang kepada akibat - yang mana tidak ada sejauh mana semua yang menjadi bekas pertanyaan gaya keluar dari kotak.

Jika bekas dijumpai: syarat diselesaikan terhadap bekas itu.

Jika beberapa bekas yang sesuai: bekas relatif terdekat yang terdahulu.
  • jika tiada perlawanan dijumpai: tidak diketahui kembali.
  • itu semangat "memaafkan" yang sama seperti CSS yang lain.
  • bekas boleh menyokong kedua -dua pertanyaan dimensi dan gaya

Katakan kita mahu menentukan pertanyaan gaya tanpa nama kontena yang jelas:

ini berfungsi kerana

semua elemen adalah bekas gaya

, tidak kira jenis kontena. Itulah yang membolehkan kita untuk membuat gaya secara tersirat dan bergantung pada perlawanan terdekat. Dan ini benar -benar baik kerana, sekali lagi, tidak ada kesan sampingan yang buruk apabila menubuhkan bekas gaya.
@container <name>? <conditions> {
  /* conditional styles */
}
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

kita perlu menggunakan jenis kontena yang jelas untuk pertanyaan dimensi, tetapi tidak banyak untuk pertanyaan gaya kerana setiap elemen adalah pertanyaan gaya. Itu juga bermakna bekas ini adalah kedua -dua gaya dan pertanyaan dimensi:

tidak termasuk bekas daripada ditanya

Mungkin kita tidak mahu bekas untuk mengambil bahagian dalam proses yang sepadan. Di sinilah ia mungkin untuk menetapkan jenis kontena: tidak ada pada elemen.
em, i, q {
  font-style: italic; /* default UA behavior */
}

/* When the container's font-style is italic, remove italics from these elements. */
@container style(font-style: italic) {
  em, i, q {
    font-style: normal;
  }
}
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

bekas pertanyaan gaya eksplisit menawarkan lebih banyak kawalan terhadap apa yang mendapat pertanyaan

Jika, katakan, kami menulis pertanyaan gaya untuk padding, tidak ada cara yang boleh dipercayai untuk menentukan bekas yang sesuai, tanpa mengira sama ada kami bekerja dengan bekas yang dinamakan secara jelas atau ibu bapa langsung terdekat. Itu kerana padding bukan harta yang diwarisi.
@container style(font-style: italic) {
  em {
    font-style: normal;
  }
}
Salin selepas log masuk
Salin selepas log masuk

Jadi, dalam keadaan itu, kita harus menggunakan nama kontena untuk memaklumkan dengan jelas bahawa bekas yang mereka dapat tarik dari. Kami juga boleh memberikan beberapa nama yang jelas untuk menjadikannya lebih banyak syarat:

oh, dan nama kontena menerima bilangan pilihan dan

nama yang boleh diguna semula untuk bekas! Itu lebih fleksibel ketika membantu penyemak imbas membuat pilihan ketika mencari pertandingan.

.card-container {
  container: card / inline-size; /* implictly a style query container as well */
}
Salin selepas log masuk
Salin selepas log masuk

Saya hairan jika itu juga dianggap sebagai "sandaran" sekiranya satu bekas diluluskan. pertanyaan gaya boleh digabungkan

.some-element {
  container-type: none;
}
Salin selepas log masuk
Salin selepas log masuk
atau dan pengendali membolehkan kami menggabungkan wueries untuk menjaga keadaan kering:

@container <name>? <conditions> {
  /* conditional styles */
}
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

Toggling Styles

Terdapat sedikit pertindihan antara pertanyaan gaya kontena dan kerja yang dilakukan untuk menentukan fungsi togol (). Sebagai contoh, kita boleh menembusi dua nilai gaya font, katakan italik dan normal:

em, i, q {
  font-style: italic; /* default UA behavior */
}

/* When the container's font-style is italic, remove italics from these elements. */
@container style(font-style: italic) {
  em, i, q {
    font-style: normal;
  }
}
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

sejuk. Tetapi cadangan untuk togol CSS menunjukkan bahawa fungsi togol () akan menjadi pendekatan yang lebih mudah:

@container style(font-style: italic) {
  em {
    font-style: normal;
  }
}
Salin selepas log masuk
Salin selepas log masuk

Tetapi apa -apa di luar kes penggunaan binari seperti ini adalah di mana togol () kurang sesuai. Pertanyaan gaya, bagaimanapun, adalah baik untuk pergi. Miriam mengenal pasti tiga contoh di mana pertanyaan gaya lebih sesuai daripada togol ():

.card-container {
  container: card / inline-size; /* implictly a style query container as well */
}
Salin selepas log masuk
Salin selepas log masuk

pertanyaan gaya menyelesaikan "hack toggle harta benda tersuai"

Perhatikan bahawa pertanyaan gaya adalah penyelesaian rasmi untuk "CSS Custom Property Toggle Trick". Di sana, kami menetapkan harta tersuai kosong (--foo:;) dan gunakan kaedah sandaran yang dipisahkan koma untuk "togol" sifat dan dimatikan apabila harta tersuai ditetapkan kepada nilai sebenar.

.some-element {
  container-type: none;
}
Salin selepas log masuk
Salin selepas log masuk

itu sangat sejuk, juga banyak kerja yang membuat pertanyaan kontena gaya menjadikan remeh.

pertanyaan gaya dan kandungan CSS yang dihasilkan

Untuk kandungan yang dihasilkan yang dihasilkan oleh harta kandungan :: sebelum dan :: Selepas elemen pseudo, bekas yang sepadan adalah elemen di mana kandungan dihasilkan.

.card {
  container-name: card layout theme;
}
Salin selepas log masuk

pertanyaan gaya dan komponen web

kita boleh menentukan komponen web sebagai bekas dan menanyakannya dengan gaya. Pertama, kita mempunyai & lt; template & gt; daripada komponen:

.theme {
  container-name: theme;
}
.grid {
  container-name: layout;
}
.card {
  container-name: card layout theme;
}
Salin selepas log masuk

Kemudian kami menggunakan: Pseudo-Element Host sebagai bekas untuk menetapkan nama kontena, jenis kontena, dan beberapa atribut peringkat tinggi di atasnya:

@container bubble style(--arrow-position: start start) or style(--arrow-position: end start) {
  .bubble::after {
    border-block-end-color: inherit;
    inset-block-end: 100%;
  }
}

/* is the same as... */
@container bubble style(--arrow-position: start start) {
  /* etc. */
}
@container bubble style(--arrow-position: end start) {
  /* etc. */
}
Salin selepas log masuk

unsur-unsur di dalam & lt; media-host & gt; boleh menanyakan parameter & lt; media-host & gt; elemen:

em, i, q {
  font-style: italic;
}

@container style(font-style: italic) {
  em, i, q {
    font-style: normal;
  }
}
Salin selepas log masuk
Apa yang akan datang?

Sekali lagi, semua perkara yang saya telah jotted di sini adalah berdasarkan nota Miriam, dan nota -nota itu bukan pengganti spec rasmi. Tetapi mereka adalah petunjuk tentang apa yang sedang dibincangkan dan di mana perkara boleh mendarat di masa depan. Saya menghargai Miriam menghubungkan beberapa perbincangan yang luar biasa yang masih berlaku yang boleh kita ikuti untuk kekal di atas perkara:

    sifat tersuai tahap yang lebih tinggi yang mengawal pelbagai deklarasi#5624
  • harus gaya () pertanyaan membenarkan! Bendera penting? #7413
  • Queries Gaya Move of Standard Properties ke Tahap 4#7185
  • tambah keupayaan untuk menguji preludes at-rule#6966

Atas ialah kandungan terperinci Menggali lebih mendalam ke dalam pertanyaan gaya kontena. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
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

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Kad yang disusun dengan kedudukan melekit dan sasaran sass Kad yang disusun dengan kedudukan melekit dan sasaran sass Apr 03, 2025 am 10:30 AM

Pada hari yang lain, saya melihat sedikit ini sangat indah dari laman web Corey Ginnivan di mana koleksi kad timbunan di atas satu sama lain semasa anda menatal.

Fon Font Google Fon Fon Font Google Fon Apr 09, 2025 am 10:42 AM

Saya melihat Font Google melancarkan reka bentuk baru (tweet). Berbanding dengan reka bentuk besar yang terakhir, ini terasa lebih berulang. Saya hampir tidak dapat memberitahu perbezaannya

Cara membuat pemasa undur animasi dengan HTML, CSS dan JavaScript Cara membuat pemasa undur animasi dengan HTML, CSS dan JavaScript Apr 11, 2025 am 11:29 AM

Pernahkah anda memerlukan pemasa undur dalam projek? Untuk sesuatu seperti itu, mungkin semula jadi untuk mencapai plugin, tetapi sebenarnya lebih banyak lagi

Kenapa kawasan -kawasan yang dikurangkan ungu di susun atur flex tersilap dianggap sebagai 'ruang limpahan'? Kenapa kawasan -kawasan yang dikurangkan ungu di susun atur flex tersilap dianggap sebagai 'ruang limpahan'? Apr 05, 2025 pm 05:51 PM

Soalan mengenai kawasan slash ungu dalam susun atur flex Apabila menggunakan susun atur flex, anda mungkin menghadapi beberapa fenomena yang mengelirukan, seperti dalam alat pemaju (D ...

Bagaimana untuk memilih elemen kanak -kanak dengan item nama kelas pertama melalui CSS? Bagaimana untuk memilih elemen kanak -kanak dengan item nama kelas pertama melalui CSS? Apr 05, 2025 pm 11:24 PM

Apabila bilangan elemen tidak ditetapkan, bagaimana untuk memilih elemen anak pertama nama kelas yang ditentukan melalui CSS. Semasa memproses struktur HTML, anda sering menghadapi unsur yang berbeza ...

Panduan Atribut Data HTML Panduan Atribut Data HTML Apr 11, 2025 am 11:50 AM

Semua yang anda ingin tahu mengenai atribut data dalam HTML, CSS, dan JavaScript.

Bukti konsep untuk menjadikan sass lebih cepat Bukti konsep untuk menjadikan sass lebih cepat Apr 16, 2025 am 10:38 AM

Pada permulaan projek baru, kompilasi SASS berlaku dalam sekejap mata. Ini terasa hebat, terutamanya apabila ia dipasangkan dengan BrowserSync, yang dimuat semula

See all articles