Kedudukan (penjajaran) elemen blok dalam CSS. Kedudukan
Seperti yang anda mungkin sedia maklum, anda boleh susun atur tapak web menggunakan jadual, dalam hal ini halaman dibahagikan kepada sel. Anda juga boleh menggunakan blok untuk tujuan ini apabila halaman tapak web terdiri daripada elemen individu.
Saya mungkin tidak akan tersilap jika saya mengatakan bahawa masalah serius bagi ramai juruweb pemula ialah tugas meletakkan blok di tempat tertentu pada halaman web.
Salah satu kesukaran utama apabila susun atur menggunakan blok adalah kedudukan (penjajaran) blok yang sama ini.
Sedikit tentang lapisan
Saya rasa ramai di antara anda pernah mendengar tentang perkara seperti lapisan. Dan, sebagai peraturan, lapisan difahami sebagai blok yang ditentukan oleh tag
. Malah, semuanya berbeza sedikit.
Tiada lapisan dalam HTML. Ia hanya satu metafora. Apabila kita bercakap tentang lapisan, ia bermaksud bekas html tertentu (elemen) yang boleh diletakkan di tempat tertentu pada halaman web.
Salah tanggapan kedua ialah hanya blok yang ditentukan oleh teg diklasifikasikan sebagai lapisan
. Ini juga tidak benar. Ini juga mungkin termasuk perenggan (
), senarai (
) dan unsur-unsur lain.
Dan sekarang kira-kira
Oh.
Seperti yang dinyatakan di atas, anda boleh menetapkan lokasi mana-mana elemen HTML. Tidak perlu sentiasa menggunakan tag untuk ini
. Selain itu, penggunaan teg ini tidak mewajibkan anda untuk memberikannya sebarang kedudukan pada halaman web.
Maksud menggunakan blok yang ditentukan oleh tag
turun kepada penyatuan. Lagipun, anda boleh meletakkan elemen lain di dalamnya (perenggan, gambar, dll.). Ini mencipta blok besar dengan kandungan yang berbeza-beza, yang lebih mudah untuk diletakkan pada halaman web daripada setiap elemen secara berasingan.
Kedudukan elemen.
Terdapat empat jenis penentududukan utama:
1. Statik 2. Mutlak 3. Tetap 4. Kerabat)
Statik
Digunakan sebagai lokasi lalai. Dalam kes ini, penyemak imbas melihat kod HTML, membahagikannya kepada elemen dan mengarang halaman daripadanya. Hasilnya ialah urutan beberapa elemen. Ia dipaparkan dalam susunan di mana ia ditunjukkan dalam kod html.
Menggunakan parameter kiri, atas, kanan dan bawah tidak membawa apa-apa hasil.
Kedudukan statik mesti diingat apabila kedudukan relatif digunakan.
mutlak
Menggunakan kedudukan mutlak, koordinat sudut kiri atas blok ditentukan. Dalam kes ini, koordinat dikira relatif kepada lokasi elemen induk. Jika elemen induk ialah tetingkap penyemak imbas, maka blok itu sejajar dengannya. Jika terdapat elemen lain di mana blok itu terletak, maka penjajaran berlaku secara relatif kepada elemen ini.
tetap
Sudah dari namanya menjadi jelas bahawa dalam kes ini elemen itu tetap. Ia terletak di tempat tertentu pada halaman web dan tidak bergerak ke mana-mana. Penjajaran ini selalunya digunakan untuk tetingkap timbul, di mana ia dipusatkan dan tidak bergerak semasa anda menatal halaman.
relatif
Kedudukan jenis ini boleh menjadi sukar. Namanya tidak sesuai sepenuhnya. Ramai orang mengelirukan kedudukan relatif dan mutlak elemen. Nampaknya penjajaran adalah relatif kepada elemen induk. Dan dalam kes kedudukan mutlak - relatif kepada tetingkap penyemak imbas. Tetapi itu tidak benar.
Adalah perlu untuk memahami bahawa lokasi elemen dalam kes ini berlaku berbanding dengan tempatnya dalam kedudukan statik. Inilah yang disebutkan di atas.
Ringkasnya, anda memberitahu penyemak imbas untuk memindahkan elemen begitu banyak piksel berbanding tempat ia terletak secara lalai.
Terdapat satu lagi perkara yang sukar. Apakah yang berlaku jika elemen induk mempunyai kedudukan relatif, tetapi elemen bersarang mempunyai kedudukan mutlak? Dalam kes ini, koordinat elemen anak akan dikira relatif kepada elemen induk, dengan mengambil kira offsetnya, jika ada.
rumuskan.
Jadi, ada harta kedudukan. Harta ini boleh mengambil 4 nilai Statik, Mutlak, Tetap dan Relatif. Lalainya ialah Statik.
Apabila anda menentukan koordinat untuk elemen, anda juga mesti memberitahu penyemak imbas cara ia harus mengira koordinat tersebut. Kita perlu memberinya titik permulaan.
Jangan lupa kalau tiada harta kedudukan koordinat tidak akan diambil kira, blok akan kekal di tempat yang sama, dalam kedudukan statiknya.
Sekarang mari kita lihat bagaimana koordinat ditetapkan.
Untuk tujuan ini, empat jenis sifat digunakan:
1. Atas 2. Kiri 3. Betul 4. Bawah
Atas- nilai positif (contohnya, 20px) menggerakkan blok 20 piksel ke bawah. Nilai negatif (-20px) menggerakkan elemen 20 piksel ke atas. Semua ini berlaku berbanding sudut kiri atas.
Dibiarkan- beralih ke kiri atau kanan, bergantung pada tanda. Berbanding dengan sudut kiri atas.
Betul- beralih ke kanan dan kiri, bergantung pada tanda. Berbanding dengan penjuru kanan sebelah atas.
Bawah- beralih ke atas atau ke bawah, bergantung pada tanda. Berlaku relatif kepada sudut kiri bawah.
Berikut ialah kod HTML:
Dan ini adalah CSS:
#1 { jawatan:saudara; atas:100px; kiri:100px; lebar: 500px; ketinggian:500px; warna latar belakang:#CCCCCC; }
#11 { warna latar belakang:#003399; kedudukan:mutlak; bawah: -30px; kanan: -50px; lebar: 100px; ketinggian:100px; }
#2 { warna latar belakang:#990066; lebar: 200px; ketinggian:300px }
berlatih.
Semasa saya menulis, saya memikirkannya sendiri.
Dua alat utama sering digunakan untuk susun atur halaman - kedudukan Dan pergerakan bebas (terapung). Kedudukan CSS membolehkan anda menentukan tempat kotak elemen muncul, dan apungan bebas mengalihkan elemen ke tepi kiri atau kanan kotak bekas, membenarkan kandungan yang lain "mengalir" di sekelilingnya.
Kedudukan dan pergerakan bebas unsur
1. Jenis kedudukan
Sifat kedudukan membolehkan anda menentukan lokasi baharu blok dengan tepat berbanding tempat ia berada dalam aliran biasa dokumen. Secara lalai, semua elemen disusun secara berurutan satu demi satu dalam susunan di mana ia ditakrifkan dalam struktur dokumen HTML. Harta tersebut tidak diwarisi.
kedudukan
Maksud:
statik
Nilai lalai bermakna tiada kedudukan. Elemen dipaparkan secara berurutan satu demi satu dalam susunan di mana ia ditakrifkan dalam dokumen HTML. Digunakan untuk mengosongkan sebarang nilai kedudukan lain.
relatif
Elemen yang agak berkedudukan dialihkan dari kedudukan normalnya ke arah yang berbeza berbanding dengan sempadan bekas induknya, tetapi ruang yang didudukinya tidak hilang. Walau bagaimanapun, elemen sedemikian mungkin bertindih dengan kandungan lain pada halaman.
Jika untuk elemen yang agak kedudukan anda menetapkan sifat atas dan bawah atau kiri dan kanan pada masa yang sama, maka dalam kes pertama hanya bahagian atas akan berfungsi, dalam kedua - kiri.
Kedudukan relatif membolehkan anda menetapkan indeks-z untuk elemen, serta meletakkan elemen anak secara mutlak dalam blok.
mutlak
Elemen yang diposisikan secara mutlak dialih keluar sepenuhnya daripada aliran dokumen dan diletakkan relatif kepada sempadan blok kontenanya (elemen lain atau tetingkap penyemak imbas). Blok bekas untuk elemen berkedudukan mutlak ialah elemen nenek moyang terdekat yang nilai sifat kedudukannya tidak statik .
Lokasi tepi elemen ditentukan menggunakan sifat offset. Ruang yang diduduki elemen sedemikian runtuh seolah-olah elemen itu tidak wujud pada halaman. Elemen yang diposisikan secara mutlak boleh bertindih atau ditindih oleh elemen lain (disebabkan oleh sifat indeks-z). Mana-mana elemen yang diposisikan secara mutlak menjana blok, iaitu, ia mengambil paparan nilai: blok; .
tetap
Membetulkan elemen di lokasi tertentu pada halaman. Blok kontena bagi elemen tetap ialah viewport, iaitu, elemen sentiasa tetap relatif kepada tetingkap penyemak imbas dan tidak mengubah kedudukannya semasa menatal halaman. Elemen itu sendiri dialih keluar sepenuhnya daripada aliran dokumen utama dan dicipta dalam aliran dokumen baharu.
permulaan
Menetapkan nilai harta kepada nilai lalai.
mewarisi
Mewarisi nilai harta daripada elemen induk.
nasi. 1. Perbezaan antara kedudukan statik, relatif dan mutlak
2. Mengimbangi sifat
Sifat menghuraikan offset relatif kepada sisi terdekat blok kontena. Tetapkan untuk elemen yang nilai sifat kedudukannya tidak statik. Mereka boleh mengambil nilai positif dan negatif. Tidak diwarisi.
Untuk sifat teratas, nilai positif menggerakkan tepi atas elemen yang diletakkan di bawah, dan nilai negatif menggerakkan tepi atas blok bekasnya. Untuk harta kiri, nilai positif menggerakkan tepi elemen kedudukan ke kanan, dan nilai negatif menggerakkan tepi elemen kedudukan ke kiri. Iaitu, nilai positif memindahkan elemen di dalam blok bekas, dan nilai negatif memindahkannya ke luarnya.
3. Kedudukan dalam elemen
Untuk blok kontena elemen yang diposisikan secara mutlak, kedudukan: sifat relatif ditetapkan tanpa ofset. Ini membolehkan elemen diletakkan dalam elemen bekas.
1. Jika lebar atau tinggi elemen yang diletakkan secara mutlak ditetapkan kepada auto , maka nilainya akan ditentukan oleh lebar atau ketinggian kandungan elemen. Jika lebar atau tinggi diisytiharkan secara eksplisit, maka ini ialah nilai yang akan diberikan. 2. Jika di dalam blok dengan kedudukan: mutlak terdapat unsur yang ditetapkan apungan, maka ketinggian elemen ini akan sama dengan ketinggian unsur yang paling tinggi ini. 3. Untuk elemen dengan kedudukan: mutlak atau kedudukan: tetap, anda tidak boleh menetapkan sifat apungan secara serentak, tetapi untuk elemen dengan kedudukan: relatif, anda boleh. 4. Jika nenek moyang unsur kedudukan adalah unsur blok, maka bekas blok dibentuk oleh kawasan kandungan yang dibatasi sempadan. Jika moyang ialah unsur sebaris, blok bekas dibentuk oleh sempadan luar kandungannya. Jika tiada moyang, bongkah bekas ialah unsur badan.
5. Pergerakan bebas unsur
Dalam susunan biasa, elemen blok dipaparkan bermula dari tepi atas tetingkap penyemak imbas dan berfungsi ke arah tepi bawah. Sifat apungan membolehkan anda mengalihkan sebarang elemen, menjajarkannya ke tepi kiri atau kanan halaman web atau elemen bekas yang mengandunginya. Dalam kes ini, elemen blok lain akan mengabaikannya, dan elemen sebaris akan bergerak ke kanan atau kiri, membebaskan ruang untuknya dan mengalir di sekelilingnya.
nasi. 3. Pergerakan bebas unsur
Blok terapung mengambil dimensi kandungannya, dengan mengambil kira padding dan sempadan. Jidar atas dan bawah unsur terapung tidak runtuh. Sifat apungan digunakan pada kedua-dua elemen blok dan elemen sebaris.
Pinggir luar kiri atau kanan elemen yang dialihkan, tidak seperti elemen yang diposisikan, tidak boleh terletak di sebelah kiri (atau kanan) pinggir dalam blok bekasnya, i.e. melampaui batasnya. Selain itu, jika padding dalaman ditentukan untuk blok kontena, maka blok terapung akan dijarakkan dari tepi blok kontena pada jarak yang ditentukan.
Harta ini secara automatik menukar nilai yang dikira (dipaparkan pelayar) bagi sifat paparan untuk dipaparkan: blok untuk nilai berikut: sebaris , blok sebaris , baris jadual , kumpulan baris jadual , lajur jadual , kumpulan lajur jadual , sel jadual . kapsyen jadual, kumpulan pengepala jadual, kumpulan pengaki jadual. Nilai jadual sebaris berubah kepada jadual .
Sifat ini tidak mempunyai kesan pada elemen dengan paparan: flex dan paparan: inline-flex .
Apabila menggunakan sifat apungan pada elemen blok, pastikan anda menentukan lebar. Ini akan mewujudkan ruang untuk kandungan lain dalam penyemak imbas. Tetapi jika lebar gabungan semua lajur lebih besar daripada ruang yang tersedia, maka elemen terakhir akan turun.
Pada masa yang sama, jidar menegak unsur terapung tidak runtuh dengan jidar unsur jiran, tidak seperti unsur blok biasa.
6. Batalkan aliran di sekeliling elemen
6.1. harta yang jelas
Sifat jelas menentukan bagaimana elemen yang mengikuti elemen terapung akan diletakkan. Harta tersebut membatalkan apungan pada satu atau kedua-dua belah elemen yang ditetapkan oleh harta apungan. Untuk mengelakkan latar belakang atau sempadan daripada dipaparkan di bawah unsur terapung, gunakan peraturan (limpahan: tersembunyi;).
6.2. Membersihkan strim dengan gaya menggunakan kelas clearfix dan kelas pseudo :selepas
Katakan anda mempunyai bekas blok yang lebar dan tingginya tidak dinyatakan. Blok terapung dengan dimensi tertentu diletakkan di dalamnya.
Clearfix:after ( kandungan: ""; paparan: jadual; jelas: kedua-duanya; ) nasi. 5. Menggunakan kaedah “pembersihan” pada blok bekas yang mengandungi unsur terapung
6.3. Cara mudah untuk membersihkan aliran
Terdapat satu lagi helah untuk mengosongkan aliran untuk elemen yang mengandungi unsur terapung, seperti senarai bertitik tumpu mendatar:
Ul ( margin: 0; gaya senarai: tiada; padding: 20px; latar belakang: #e7e6d4; limpahan: auto; ) li ( float: kiri; lebar: calc(100% / 3 - 20px); tinggi: 50px; margin- kanan: 20px; latar belakang: #ffffff; sempadan: 3px putus-putus #666666; ) li:anak-terakhir (margin-kanan: 0;) Rajah. 6. Membersihkan aliran senarai mendatar
Salah satu perkara terbaik tentang CSS ialah gaya memberi kita keupayaan untuk meletakkan kandungan dan elemen pada halaman dalam hampir semua cara yang boleh dibayangkan. Ini menambah struktur pada reka bentuk kami dan membantu menjadikan kandungan lebih visual.
Terdapat beberapa jenis kedudukan yang berbeza dalam CSS, setiap jenis ini mempunyai skop tersendiri. Dalam bab ini, kita akan melihat beberapa kes penggunaan yang berbeza—membuat reka letak boleh guna semula dan meletakkan elemen pakai buang secara unik—dan menerangkan beberapa kaedah untuk berbuat demikian.
Kedudukan melalui apungan
Satu cara untuk meletakkan elemen pada halaman adalah melalui sifat apungan. Harta ini agak serba boleh dan boleh digunakan dalam pelbagai cara.
Pada asasnya, sifat apungan mengambil elemen, mengeluarkannya daripada aliran biasa halaman dan meletakkannya di sebelah kiri atau kanan elemen induknya. Semua elemen lain pada halaman akan membungkus elemen sedemikian. Sebagai contoh, perenggan akan membungkus imej jika elemen harta apungan ditetapkan.
Apabila sifat apungan digunakan pada berbilang elemen serentak, ia memungkinkan untuk membuat reka letak dengan elemen terapung bersebelahan atau bertentangan antara satu sama lain, seperti yang ditunjukkan dalam reka letak berbilang lajur.
Sifat apungan mengambil beberapa nilai, dua nilai yang paling popular ialah kiri dan kanan, yang membenarkan elemen terapung ke kiri atau kanan induknya.
Img ( terapung: kiri; )
terapung dalam amalan
Mari buat reka letak halaman umum dengan pengepala di bahagian atas, dua lajur di tengah dan pengaki di bahagian bawah. Sebaik-baiknya, halaman ini harus ditandakan dengan elemen
,
,
......
Demonstrasi susun atur tanpa apungan
Berikut adalah unsur-unsurnya Dan
Bahagian ( float: left; ) ketepi ( float: right; )
Untuk rujukan, elemen terapung diletakkan di sepanjang tepi elemen induk. Jika tiada induk, elemen terapung akan diletakkan di sepanjang tepi halaman.
Apabila kami menetapkan elemen terapung, kami mengeluarkannya daripada aliran biasa dokumen HTML. Ini menyebabkan lebar lalai elemen itu menjadi lebar kandungannya. Kadangkala, seperti apabila kami membuat lajur untuk reka letak boleh guna semula, tingkah laku ini tidak diingini. Ini boleh diperbaiki dengan menambahkan sifat lebar dengan nilai tetap untuk setiap lajur. Selain itu, untuk mengelakkan unsur terapung daripada bersentuhan antara satu sama lain, menyebabkan kandungan satu elemen berada di sebelah yang lain, kita boleh menggunakan sifat margin untuk menetapkan ruang antara elemen.
Di bawah ini kami melanjutkan blok kod sebelumnya dengan menambahkan margin dan lebar untuk setiap lajur untuk membentuk hasil yang kami inginkan dengan lebih baik.
Untuk elemen terapung, adalah penting juga untuk memahami bahawa elemen dialih keluar daripada aliran biasa halaman dan nilai paparan lalai elemen mungkin berubah. Sifat apungan bergantung pada nilai paparan elemen yang ditetapkan untuk menyekat dan boleh menukar nilai paparan lalai elemen jika ia belum dipaparkan sebagai elemen blok.
Contohnya, elemen yang paparannya ditentukan sebagai sebaris , seperti sebaris , mengabaikan sebarang sifat ketinggian atau lebar. Walau bagaimanapun, jika anda menentukan apungan untuk elemen sebaris, nilai paparan akan berubah kepada menyekat dan kemudian elemen itu sudah boleh mengambil sifat ketinggian atau lebar.
Apabila kita mengapungkan elemen, kita perlu berhati-hati tentang cara ia mempengaruhi nilai sifat paparan.
Untuk dua lajur anda boleh menetapkan apungan, satu lajur sebagai kiri dan satu lagi sebagai kanan, tetapi untuk berbilang lajur kami perlu menukar pendekatan kami. Katakan, sebagai contoh, kami ingin mempunyai satu baris tiga lajur antara elemen kami Dan
......
...
...
Untuk menyusun tiga elemen ini dalam baris tiga lajur, kita mesti menetapkan apungan untuk semua elemen seperti kiri. Kita juga perlu melaraskan lebarnya mengambil kira lajur tambahan dan meletakkannya satu di sebelah yang lain.
Bahagian ( apungan: kiri; jidar: 0 1.5%; lebar: 30%; )
Di sini kita mempunyai tiga lajur, semuanya dengan lebar dan nilai margin yang sama, dan apungan ditetapkan ke kiri .
Demonstrasi susun atur tiga lajur dengan apungan
Membersihkan dan mengapungkan kandungan
Sifat terapung pada asalnya direka bentuk untuk membenarkan kandungan mengalir di sekitar imej. Imej boleh diberi apungan dan semua kandungan di sekeliling imej itu secara semula jadi mengalir di sekelilingnya. Walaupun ini berfungsi dengan baik untuk imej, sifat apungan tidak benar-benar bertujuan untuk digunakan untuk tujuan susun atur dan kedudukan dan dengan itu disertakan dengan beberapa perangkap.
Salah satu perangkap ini ialah kadangkala gaya yang betul tidak muncul pada elemen yang bersebelahan atau merupakan induk kepada elemen terapung. Apabila elemen ditetapkan untuk terapung, ia dialih keluar daripada aliran biasa halaman dan, akibatnya, gaya elemen di sekeliling elemen terapung itu boleh terjejas secara negatif.
Selalunya nilai jidar dan sifat pelapik ditafsirkan secara salah, menyebabkan ia bercantum ke dalam elemen terapung. Hartanah lain juga mungkin terjejas.
Pepijat lain ialah kadangkala kandungan yang tidak diingini mula membungkus elemen apungan. Mengalih keluar elemen daripada aliran dokumen membolehkan semua elemen di sekeliling elemen terapung memintasnya dan mengambil sebarang ruang yang tersedia di sekeliling elemen terapung, yang selalunya tidak diingini.
Dalam contoh dua lajur kami yang terdahulu, selepas kami menambah apungan pada elemen Dan
Demonstrasi susun atur tanpa pembersihan apungan
Untuk mengelakkan kandungan daripada membungkus elemen terapung, kita perlu mengosongkan terapung dan mengembalikan halaman kepada aliran biasa. Kami akan melihat cara mengosongkan terapung dan kemudian melihat kandungannya.
Membersihkan terapung
Mengosongkan apungan berlaku menggunakan sifat jelas, yang mengambil beberapa nilai berbeza: nilai yang paling biasa digunakan ialah kiri , kanan dan kedua-duanya .
Div ( jelas: kiri; )
Nilai kiri mengosongkan terapung kiri, manakala nilai kanan mengosongkan terapung kanan. Nilai kedua-duanya, bagaimanapun, akan mengosongkan terapung kiri dan kanan dan selalunya merupakan pilihan yang paling ideal.
Kembali kepada contoh kami yang terdahulu, jika kami menggunakan sifat jelas dengan nilai kedua-duanya pada elemen
Pengaki ( jelas: kedua-duanya; )
Demonstrasi susun atur dengan pembersihan terapung
Kandungan terapung
Daripada mengosongkan terapung , pilihan lain ialah menetapkan kandungan terapung . Hasilnya akan hampir sama, tetapi kandungan apungan benar-benar memastikan bahawa semua gaya kami akan dipaparkan dengan betul.
Untuk menetapkan kandungan terapung, elemen terapung mesti berada di dalam elemen induk, ia akan bertindak sebagai bekas, menjadikan aliran dokumen benar-benar normal di luarnya. Penggayaan untuk elemen induk ini diwakili oleh kelas kumpulan, seperti yang ditunjukkan di sini:
Tidak banyak perkara yang berlaku di sini, tetapi pada asasnya semua yang dilakukan oleh CSS ialah mengosongkan semua elemen terapung di dalam elemen kumpulan dan mengembalikan dokumen kepada aliran biasa.
Lebih khusus lagi, elemen pseudo ::before dan ::after, seperti yang dibincangkan dalam Pelajaran 4, menjana elemen di atas dan di bawah elemen secara dinamik dengan kumpulan kelas . Elemen ini tidak termasuk sebarang kandungan dan dipaparkan sebagai elemen jadual, serupa dengan elemen blok. Elemen yang dijana secara dinamik selepas elemen kumpulan mengosongkan apungan di dalam elemen kumpulan, sama seperti clear sebelum ini. Akhir sekali, elemen kumpulan juga mengosongkan sebarang apungan yang mungkin muncul di hadapannya sekiranya terdapat apungan dengan nilai kiri atau kanan . Turut disertakan ialah helah kecil yang membuatkan pelayar lama bermain dengan baik.
Terdapat lebih banyak kod di sini daripada hanya jelas: kedua-dua arahan, tetapi ia boleh menjadi agak berguna.
Memandangkan dua susun atur halaman lajur kami boleh bungkus Dan
Teknik yang ditunjukkan di sini dikenali sebagai "clearfix" dan sering dilihat di tapak lain dengan nama kelas clearfix atau cf. Kami memilih untuk menggunakan kumpulan nama kelas kerana ia mewakili kumpulan elemen dan lebih baik menyatakan kandungan.
Apabila elemen ditetapkan untuk terapung, adalah penting untuk memantau cara ia mempengaruhi aliran halaman dan memastikan aliran halaman ditetapkan semula melalui pembersihan atau melalui kandungan terapung seperti yang dimaksudkan. Jika tidak, menjejak terapung boleh menyebabkan banyak sakit kepala, terutamanya pada halaman yang mengandungi berbilang baris, setiap satu dengan berbilang lajur.
Pada latihan
Mari kembali ke tapak Persidangan Gaya dan cuba menambah terapung pada beberapa kandungan.
Perkara pertama dahulu, sebelum menggunakan apungan pada mana-mana elemen, mari sediakan kandungan kepada elemen terapung tersebut dengan menambahkan clearfix pada CSS kami. Dalam fail main.css, betul-betul di bawah gaya grid kami, kami akan menambah clearfix di bawah nama kelas kumpulan, sama seperti sebelumnya. /* ================================================== ==================== Clearfix ======= ====================== * / .kumpulan::sebelum, .kumpulan::selepas ( kandungan: " "; paparan: jadual; ) .kumpulan::selepas ( jelas: kedua-duanya; ) .kumpulan ( jelas: kedua-duanya; *zum: 1; )
Sekarang kita boleh menggunakan apungan, mari kita tentukan ia untuk yang utama
elemen dalam sebagai kiri dan biarkan kandungan yang lain dalam pengepala mengalir ke kanan.
Untuk melakukan ini, tambahkan kelas logo pada elemen
. Seterusnya, di dalam CSS kami, kami akan menambah bahagian penggayaan baharu untuk pengepala utama. Dalam bahagian ini kita akan memilih elemen
Sementara kami di sini, mari tambahkan sedikit lagi butiran pada logo kami. Mari kita mulakan dengan meletakkan elemen atau pemisah baris antara perkataan "Gaya" dan "Persidangan" untuk memaksa teks logo kami muncul pada dua baris.
Dalam CSS, kami akan menambah sempadan di sepanjang bahagian atas logo kami dan beberapa pelapik menegak supaya logo boleh "bernafas" dengan bebas.
Logo ( atas sempadan: 4px pepejal #648880; pelapik: 40px 0 22px 0; terapung: kiri; )
Sejak kami membuat elemen itu
diperkemas, kami mahu menetapkan kandungan untuk terapung . Ibu bapa segera untuk
adalah unsur jadi kami akan menambah kelas kumpulan padanya. Ini akan menggunakan gaya clearfix yang kami tetapkan sebelum ini.
...
unsur mengambil bentuk, jadi mari kita lihat pada elemen
Berbeza dengan unsur walau bagaimanapun, kami tidak akan menggunakan kelas secara terus kepada elemen terapung. Kali ini kita akan menambah kelas kepada induk elemen terapung dan menggunakan pemilih CSS yang unik untuk memilih elemen dan kemudian memberikannya apungan .
Mari kita mulakan dengan menambahkan kelas pengaki primer pada elemen
Sekarang kelas pengaki primer ditetapkan pada elemen
/* ========================================= Ruang bawah tanah utama ===================== ================================================== */ .primary-footer small ( float: left; )
Untuk menyemak - di sini kami memilih elemen , yang sepatutnya berada di dalam elemen dengan nilai atribut kelas pengaki primer, seperti elemen kami
Akhir sekali, kami akan menambah sedikit padding pada bahagian atas dan bawah elemen.
Pengaki utama ( padding-bottom: 44px; padding-top: 44px; )
Dengan mengambil kira semua perubahan dalam elemen ini Dan
nasi. 5.01. Menggunakan pelbagai elemen apungan Dan
Kedudukan melalui blok sebaris
Selain menggunakan apungan, cara lain kita boleh meletakkan kandungan adalah dengan menggunakan sifat paparan dalam kombinasi dengan nilai blok sebaris. Kaedah blok sebaris, seperti yang akan kita bincangkan kemudian, amat berguna untuk meletakkan halaman atau untuk meletakkan elemen dalam satu baris bersebelahan antara satu sama lain.
Ingat bahawa nilai blok sebaris untuk sifat paparan memaparkan elemen dalam satu baris dan membolehkan mereka mengambil semua sifat model kotak, termasuk ketinggian , lebar , pelapik , jidar dan jidar . Menggunakan blok sebaris membolehkan kami memanfaatkan sepenuhnya model blok tanpa perlu risau tentang mengosongkan sebarang terapung.
blok sebaris dalam amalan
Mari kita lihat contoh tiga lajur kami dari awal. Kami akan mulakan dengan menyimpan HTML kami seperti ini:
......
...
...
Sekarang bukannya terapung untuk tiga elemen kami kami akan menukar nilai paparannya kepada inline-block , meninggalkan sifat margin dan lebar seperti sebelum ini. Akibatnya, CSS kami akan kelihatan seperti ini:
Malangnya, kod ini sahaja tidak mencukupi untuk melakukan helah dan elemen terakhir ditolak ke baris baharu. Ingat, kerana elemen blok sebaris muncul pada baris bersebelahan antara satu sama lain, elemen tersebut menyertakan satu ruang di antaranya. Apabila saiz setiap ruang individu ditambahkan pada lebar dan nilai margin mendatar semua elemen dalam satu baris, lebar keseluruhan menjadi terlalu besar, menolak keluar elemen terakhir ke baris baru. Untuk memaparkan semua item pada satu baris, anda harus mengalih keluar ruang putih di antara setiap baris
.
Demonstrasi elemen blok sebaris dengan ruang
Mengalih keluar ruang antara elemen blok sebaris
Terdapat beberapa kaedah untuk mengalih keluar ruang antara elemen blok sebaris, dan ada yang lebih kompleks daripada yang lain. Kami akan memberi tumpuan kepada dua kaedah paling mudah, kedua-duanya berlaku dalam HTML.
Penyelesaian pertama ialah meletakkan setiap tag elemen pembukaan baharu pada baris yang sama dengan tag penutup elemen sebelumnya . Daripada menggunakan baris baharu untuk setiap elemen, kami akhirnya memulakan elemen pada baris yang sama. HTML kami mungkin kelihatan seperti ini:
...
...
...
...
Menulis elemen blok sebaris dengan cara ini memastikan tiada ruang antara elemen tersebut dalam HTML. Oleh itu, ruang tidak akan muncul apabila halaman dipaparkan.
Demonstrasi elemen blok sebaris tanpa ruang
Kaedah lain untuk mengalih keluar ruang antara elemen blok sebaris ialah membuka ulasan HTML sejurus selepas teg penutup elemen. Kemudian tutup ulasan sejurus sebelum teg pembukaan elemen seterusnya. Ini membolehkan elemen blok sebaris bermula dan berakhir pada baris berasingan dalam HTML dan akan "mengulas" sebarang ruang yang berpotensi antara elemen. Kod yang terhasil akan kelihatan seperti ini:
...
...
...
...
Tiada satu pun daripada pilihan ini yang sempurna, tetapi ia berguna. Saya cenderung untuk menggunakan ulasan untuk organisasi yang lebih baik, tetapi pilihan yang anda pilih terpulang kepada anda sepenuhnya.
Buat susun atur boleh guna semula
Apabila membina tapak, selalu terbaik untuk menulis gaya modular yang boleh digunakan semula di tempat lain dan reka letak boleh guna semula berada di bahagian atas senarai kod boleh guna semula. Reka letak boleh dibuat menggunakan apungan atau elemen blok sebaris, tetapi yang paling berkesan dan mengapa?
Persoalan sama ada elemen terapung atau blok sebaris adalah lebih baik untuk struktur halaman terbuka untuk dibahaskan. Pendekatan saya ialah menggunakan elemen blok sebaris untuk membuat susun atur grid atau halaman, dan kemudian gunakan apungan apabila saya mahu kandungan mengalir di sekeliling elemen (iaitu apungan direka bentuk apabila bekerja dengan imej). Secara umum, saya juga mendapati elemen blok sebaris lebih mudah untuk digunakan.
Walau bagaimanapun, gunakan apa yang paling sesuai untuk anda. Jika anda lebih biasa dengan satu pendekatan daripada yang lain, gunakannya.
Terdapat spesifikasi CSS baharu dalam kerja - khususnya sifat flex dan grid - yang akan membantu anda memutuskan cara terbaik untuk menyusun halaman anda. Perhatikan kaedah ini apabila ia mula muncul.
Pada latihan
Dengan pemahaman yang kukuh tentang susun atur boleh guna semula, tiba masanya untuk melaksanakannya di tapak Persidangan Gaya kami.
Untuk laman web Styles Conference kami akan membuat susun atur tiga lajur menggunakan elemen blok sebaris. Kami akan melakukan ini supaya kami mendapat tiga lajur dengan lebar yang sama, atau dua lajur dengan jumlah lebar dibahagikan antara mereka sebagai 2/3 untuk satu dan 1/3 untuk yang lain.
Mula-mula, kami akan mencipta kelas yang mentakrifkan lebar lajur ini. Kami akan memanggil dua kelas ini kol-1-3 untuk satu pertiga dan kol-2-3 untuk dua pertiga. Dalam bahagian Grid fail main.css kami, mari kita bergerak ke hadapan dan tentukan kelas ini dan lebarnya yang sepadan.
Kami mahu kedua-dua lajur muncul sebagai elemen blok sebaris. Kita juga perlu memastikan bahawa penjajaran menegaknya ditetapkan pada bahagian atas setiap lajur.
Mari buat dua pemilih baharu yang berkongsi paparan dan penjajaran menegak .
Lihat CSS sekali lagi. Kami mencipta dua pemilih kelas col-1-3 dan col-2-3 yang dipisahkan dengan koma. Tanda koma di hujung pemilih pertama bermakna ia diikuti oleh pemilih lain. Selepas pemilih kedua terdapat pendakap kerinting pembukaan, yang menunjukkan bahawa penerangan gaya bermula. Dengan menggunakan koma untuk memisahkan pemilih, kita boleh mengikat satu gaya kepada beberapa pemilih pada masa yang sama.
Kami mahu meletakkan sedikit ruang antara lajur untuk membantu memecahkan kandungan. Ini boleh dilakukan dengan menambahkan padding mendatar pada setiap lajur.
Ini berfungsi dengan baik, bagaimanapun, apabila dua lajur diletakkan bersebelahan antara satu sama lain, lebar ruang di antaranya akan menjadi dua kali lebih lebar daripada ruang dari tepi luar. Untuk mengimbangi perkara ini, kami akan meletakkan semua lajur kami dalam grid dan menambah padding yang sama padanya.
Mari gunakan kelas grid untuk mentakrifkan grid kami, dan kemudian berikan pelapik mendatar yang sama kepada kelas grid, kol-1-3 dan kol-2-3. Dengan koma sekali lagi memisahkan pemilih kami, CSS kami kelihatan seperti ini:
Apabila kita menetapkan padding mendatar, kita perlu berhati-hati. Ingat, dalam pelajaran lepas kami mencipta bekas dengan kelas kontena untuk memusatkan semua kandungan kami pada halaman dengan lebar 960 piksel. Pada masa ini, jika kami meletakkan elemen grid di dalam elemen bekas, pelapik mendatarnya akan runtuh bersama-sama dan lajur kami tidak akan kelihatan berkadar dengan lebar halaman yang lain.
Kami akan melakukan ini dengan memecahkan set peraturan kontena lama kepada yang berikut:
Kini mana-mana elemen dengan bekas atau kelas grid akan mempunyai lebar 960 piksel dan terletak di tengah halaman. Selain itu, kami telah mengekalkan pelapik mendatar sedia ada untuk mana-mana elemen dengan kelas kontena dengan mengalihkannya ke set peraturan baharu yang berasingan.
Okey, semua bahagian yang sukar untuk menyediakan jaringan telah selesai. Kini tiba masanya untuk bekerja dengan HTML kami dan melihat cara kelas ini berfungsi.
Kami akan mulakan dengan penggoda di halaman utama, dalam fail index.html, dijajarkan dalam tiga lajur. Pada masa ini penggoda dibungkus dengan elemen dengan kelas kontena. Kami mahu menukar kelas kontena kepada grid supaya kami boleh mula meletakkan lajur di dalam.
...
...
...
...
Dan akhirnya, memandangkan setiap lajur kami ialah elemen blok sebaris, kami perlu memastikan bahawa kami mengalih keluar sebarang ruang putih di antaranya. Untuk melakukan ini, kami akan menggunakan ulasan dan menambah beberapa dokumentasi pada setiap bahagian untuk mengatur kod kami dengan lebih baik.
...
...
...
Untuk menyemak, kami meninggalkan ulasan pada baris 3 yang mengenal pasti bahagian "Speaker" yang mengikutinya. Pada penghujung baris 7, kami membuka ulasan sejurus selepas teg penutup. Di dalam ulasan ini, pada baris 9 kami mentakrifkan bahagian "Jadual" berikut. Kemudian tutup ulasan pada permulaan baris 11, sejurus sebelum teg pembukaan . Struktur ulasan yang serupa muncul pada baris 13 hingga 17 antara dua elemen , betul-betul sebelum bahagian Tempat. Secara umum, kami mengulas sebarang ruang kosong yang berpotensi antara lajur, sambil menggunakan ulasan yang sama untuk mengenal pasti bahagian kami secara serentak.
Kami kini mempunyai grid tiga lajur boleh guna semula yang menyokong reka letak yang berbeza, menggunakan lebar lajur 1/3 dan 2/3. Halaman utama kami kini mengandungi tiga lajur, memisahkan semua penggoda.
nasi. 5.02. Halaman utama Persidangan Gaya kini termasuk reka letak tiga lajur
Demo dan kod sumber
Di bawah anda boleh melihat tapak web Styles Conference dalam keadaan semasanya, serta memuat turun kod sumber semasa tapak tersebut.
Kedudukan elemen unik
Lambat laun semua orang akan mahu meletakkan elemen dengan tepat, tetapi elemen terapung atau blok sebaris tidak membenarkan helah sedemikian. Unsur terapung yang mengalih keluar elemen daripada aliran halaman selalunya menghasilkan hasil yang tidak diingini kerana elemen sekeliling membungkus elemen terapung. Elemen blok sebaris, melainkan kami membuat lajur, boleh menjadi agak rumit apabila ia berkaitan dengan kedudukan dengan betul. Untuk situasi seperti ini, kita boleh menggunakan sifat kedudukan dalam kombinasi dengan sifat mengimbangi blok.
Sifat kedudukan menentukan cara elemen diletakkan pada halaman dan sama ada ia akan dipaparkan dalam aliran dokumen biasa. Ia digunakan bersama dengan sifat offset blok atas , kanan , bawah dan kiri , yang menentukan dengan tepat di mana elemen akan diletakkan dengan menggerakkan elemen ke arah yang berbeza.
Secara lalai, nilai kedudukan setiap elemen ditetapkan kepada statik , bermakna elemen itu wujud dalam aliran biasa dokumen dan tidak mengambil sebarang sifat untuk meletakkannya. Nilai statik selalunya ditimpa oleh nilai relatif atau mutlak , yang akan kita lihat seterusnya.
Kedudukan relatif
Menetapkan sifat kedudukan kepada relatif membolehkan elemen muncul dalam aliran biasa halaman, menempah ruang untuk elemen seperti yang dimaksudkan dan menghalang elemen lain daripada mengalir di sekelilingnya. Walau bagaimanapun, ia juga membolehkan anda mengubah suai kedudukan elemen menggunakan sifat mengimbangi. Sebagai contoh, pertimbangkan HTML dan CSS berikut:
dengan kelas offset nilai kedudukan ditetapkan kepada relatif , serta dua sifat offset - kiri dan atas . Ini mengekalkan kedudukan asal elemen dan elemen lain tidak dibenarkan bergerak ke kawasan itu. Selain itu, sifat offset menggerakkan elemen dengan menolaknya 20 piksel dari kiri dan 20 piksel dari atas lokasi asal.
Untuk elemen yang agak berkedudukan, adalah penting untuk mengetahui bahawa sifat offset blok menentukan di mana elemen itu akan dialihkan, memandangkan kedudukan asalnya. Jadi sifat kiri dengan nilai 20 piksel sebenarnya menolak elemen ke kanan 20 piksel. Sifat teratas dengan nilai 20px kemudiannya akan menolak elemen ke bawah 20px.
Apabila kita meletakkan elemen menggunakan sifat mengimbangi, elemen itu bertindih dengan elemen di bawahnya, dan bukannya menolaknya ke bawah seperti ciri margin atau pelapik.
Kedudukan mutlak
Nilai mutlak untuk sifat kedudukan berbeza daripada nilai relatif kerana unsur kedudukan mutlak tidak muncul dalam aliran biasa dokumen, dan ruang dan kedudukan asal unsur kedudukan mutlak tidak dikhaskan.
Selain itu, elemen kedudukan mutlak bergerak relatif kepada elemen induk kedudukan relatif terdekatnya. Jika induk yang agak berkedudukan tidak wujud, maka elemen yang diposisikan secara mutlak akan diposisikan secara relatif kepada elemen tersebut
. Ini adalah secebis maklumat kecil; mari kita lihat bagaimana ia berfungsi dalam beberapa kod:
...
Bahagian ( kedudukan: relatif; ) div ( kedudukan: mutlak; kanan: 20px; atas: 20px; )
Demonstrasi Kedudukan Mutlak
Dalam contoh ini elemen diposisikan secara relatif kepada, tetapi tidak termasuk sebarang sifat offset. Oleh itu, kedudukannya tidak berubah. unsur
dengan kelas offset termasuk nilai kedudukan sebagai mutlak . Sejak unsur ialah elemen induk yang paling dekat dengan kedudukan relatif
, kemudian unsur
akan diletakkan secara relatif kepada elemen
.
Untuk elemen yang agak kedudukannya, sifat mengimbangi menentukan arah mana elemen itu akan dialihkan berbanding dengan dirinya sendiri. Untuk elemen berkedudukan mutlak, sifat mengimbangi menentukan ke arah mana elemen itu akan dialihkan secara relatif kepada induk kedudukan relatif terdekatnya.
Hasil daripada sifat kanan dan atas, elemen
akan muncul 20 piksel dari kanan dan 20 piksel dari bahagian atas dalam
.
Sejak unsur
diletakkan secara mutlak, ia tidak diletakkan dalam aliran biasa halaman dan akan bertindih mana-mana elemen di sekelilingnya. Lebih-lebih lagi, kedudukan permulaan
tidak disimpan dan unsur lain mungkin mengambil tempat ini. Secara umum, kebanyakan penentududukan boleh berlaku tanpa menggunakan sifat kedudukan dan sifat mengimbangi, tetapi dalam beberapa kes ia boleh menjadi sangat berguna.
Ringkasan
Mempelajari cara meletakkan kandungan dalam HTML dan CSS merupakan langkah besar ke arah menguasai bahasa ini. Tambahkan pada model blok ini dan kami sedang dalam perjalanan untuk menjadi pembangun bahagian hadapan.
Di atas kita bercakap tentang cara anda boleh meletakkan elemen halaman dengan menggunakan jadual. Tetapi ini juga boleh dilakukan menggunakan gaya. Antara parameter gaya terdapat sifat khas untuk kedudukan:
dibiarkan- untuk menetapkan jarak dalam piksel dari tepi kiri tetingkap (x-koordinat);
atas- untuk menetapkan jarak dalam piksel dari tepi atas tetingkap (y-koordinat);
indeks-z- untuk menunjukkan susunan elemen akan bertindih antara satu sama lain; ini adalah dimensi baharu, elemen dengan indeks-z yang lebih besar akan muncul di atas elemen dengan indeks-z yang lebih kecil.
Sudah tentu, menggunakan ketiga-tiga sifat ini tidak mewujudkan kesan ruang tiga dimensi, tetapi ini adalah sesuatu yang lebih daripada permukaan rata. Dalam kes ini kita bercakap tentang ruang 2.5 dimensi. Sebagai tambahan kepada sifat koordinat, kita memerlukan harta itu kedudukan, yang digabungkan dengan sifat dibiarkan Dan atas membolehkan anda memasang elemen dalam kedudukan tetingkap tertentu. Harta kedudukan boleh mengambil tiga nilai:
mutlak- sifat yang ditentukan dibiarkan Dan atas akan meletakkan elemen pada titik dengan koordinat X Dan di relatif kepada sudut kiri atas bekas (objek yang mengandungi elemen). Jika ia ditakrifkan untuk elemen di luar bekas, maka asal koordinat akan menjadi sudut kiri atas halaman. Ambil perhatian bahawa kedudukan elemen tidak bergantung pada kedudukan tegnya dalam dokumen HTML;
relatif- elemen akan dipasang mengikut tempat dalam teks sumber ia terletak; nilai ini ditetapkan secara lalai. Sebagai contoh, jika elemen terletak tiga baris dari permulaan pemilihannya dalam teks dokumen, maka secara lalai sifat kedudukan dianggap ditetapkan kepada relatif, dan sifat koordinat dibiarkan Dan atas- nilai sifar. Nilai bukan sifar bagi sifat kiri dan atas menentukan peralihan elemen berbanding kedudukan asalnya;
statik- elemen akan diletakkan pada kedudukan tertentu berbanding latar belakang dan tidak akan bergerak apabila menatal halaman.
Contoh berikut menunjukkan penggunaan harta tersebut indeks-z. Walaupun dalam teks program gambar diterangkan di atas elemen lain, dengan memberikannya indeks dengan nombor yang besar, ia dipindahkan ke atas teks pertama. Jadi menggunakan harta itu indeks-z membebaskan anda daripada belenggu susunan semula jadi untuk menyebut elemen dalam teks program HTML.
<НЕАD>Kedudukan НЕАD>
teks kedudukan nepBbiuН1>
Н1>
nasi. 666. Menggunakan sifat i-index membolehkan anda menukar susunan semula jadi unsur dalam teks dokumen HTML
Apabila meletakkan elemen, mungkin ternyata dimensi elemen melebihi dimensi serpihan (kawasan yang diperuntukkan yang dinyatakan dalam contoh kami oleh teg
). Sebagai contoh, teks atau gambar tidak sesuai sepenuhnya dengan segi empat tepat yang diperuntukkan untuknya. Dalam kes ini terdapat harta melimpah(limpahan). Harta benda melimpah boleh mempunyai tiga makna:
tiada(tiada apa-apa) - walaupun elemen melangkaui serpihan (ruang yang diperuntukkan untuknya), ia masih akan ditunjukkan;
klip- bahagian elemen yang menonjol di luar sempadan serpihan akan dipotong;
tatal- menatal akan digunakan.
Contoh berikut menggunakan harta melimpah untuk mencipta mekanisme menatal untuk teks pertama.
<НЕАD><ТIТLЕ>KedudukanТIТLЕ>НЕАD>
teks kedudukan riepBbiMН1>
Teks kedudukan keduaН1>
nasi. 667. Mekanisme menatal teks dilaksanakan menggunakan sifat limpahan
Sudah tentu, halaman yang tidak sedap dipandang dari lukisan sebelumnya dicipta hanya untuk menunjukkan keupayaan bahasa untuk meletakkan elemen. Anda tentukan sendiri alat yang akan anda gunakan dan untuk tujuan apa di halaman Web anda.
Menggunakan sifat kedudukan, mudah untuk mencipta kesan tiga dimensi untuk label anda. Ideanya adalah untuk memaparkan teks kandungan yang sama sedikit beralih berbanding satu sama lain dan berwarna dalam warna yang berbeza. Cuba tulis program yang sepadan sebagai latihan. Gambar menunjukkan lebih kurang apa yang sepatutnya berlaku. Di bawah angka itu ialah salah satu versi program yang mungkin yang mencipta inskripsi "tiga dimensi".
nasi. 668. Contoh mencipta teks 3D menggunakan CSS
Sila ambil perhatian bahawa kaedah mencipta tajuk yang berkesan ini jauh lebih menjimatkan daripada menggunakan fail grafik dengan kandungan yang serupa.
Apabila meletakkan kedudukan saudara blok, anda perlu menetapkan harta itu jawatan: saudara dan sifat anjakan. Anjakan dalam kes ini tidak akan berlaku secara relatif kepada elemen "induk" (seperti dengan kedudukan mutlak), tetapi relatif kepada blok itu sendiri dalam aliran biasa. Ini akan menjadi lebih jelas dengan contoh. Katakan kita mempunyai halaman HTML dengan tiga div:
Kedudukan relatif
Mari kita tetapkan saiz dan sempadan blok ini dalam helaian gaya:
#blok1, #blok2, #blok3 ( sempadan:1px merah pepejal; lebar:150px; tinggi:50px; )
Sekarang halaman kami dalam penyemak imbas kelihatan seperti ini:
Sekarang mari kita ubah kedudukan blok kedua dengan menambahkan peraturan pada halaman gaya:
Blok kedua kami telah bergerak ke bawah dan ke kanan berbanding dengan tempat ia berada dalam aliran biasa. Blok yang tinggal kekal di tempat mereka. Dalam amalan, kedudukan relatif digunakan agak jarang, jadi kami tidak akan memberi perhatian lagi kepadanya dan akan mempertimbangkan blok terapung.
Bongkah terapung
Blok ini tidak boleh diletakkan dengan ketepatan piksel, seperti dalam skema sebelumnya, tetapi skema kedudukan ini sangat biasa. Jarang sekali tapak web bertahan tanpa bongkah terapung, dan adalah mustahil untuk membuat susun atur tapak web "cecair" tanpanya.
Sekatan sedemikian boleh bergerak bebas di sekeliling halaman; imej dalam HTML berkelakuan dengan cara yang sama, diselaraskan menggunakan parameter selaraskan.
Blok terapung ditakrifkan oleh harta terapung, yang menentukan sama ada blok akan terapung dan ke arah mana ia akan bergerak. Terdapat tiga pilihan:
dibiarkan- blok ditekan ke tepi kiri, unsur-unsur yang tinggal mengalir di sekelilingnya di sebelah kanan.
betul- blok ditekan ke tepi kanan, elemen yang tinggal mengalir di sekelilingnya di sebelah kiri.
tiada- blok tidak bergerak dan diletakkan mengikut harta kedudukan.
Mari kita lihat contoh. Katakan kita mempunyai halaman HTML dengan kod berikut:
Kedudukan blok
Teks blok 1
Dan halaman style.css dengan kod berikut:
#blok1( sempadan:1px merah pepejal; lebar:150px; tinggi:50px; )
Sekarang halaman kami dalam penyemak imbas kelihatan seperti ini:
Mari buat blok kita terapung dan tolaknya ke tepi kiri:
#blok1( sempadan:1px merah pepejal; lebar:150px; tinggi:50px; terapung: kiri; )
Sekarang mari kita tolak blok ke tepi kanan:
#blok1( sempadan:1px merah pepejal; lebar:150px; tinggi:50px; terapung:kanan; )
Sekarang halaman kami dalam penyemak imbas kelihatan seperti ini:
Apakah yang berlaku jika terdapat beberapa blok terapung pada halaman? Mari tambah blok lain ke halaman html kami:
Kedudukan blok
Teks blok 1
Sekat teks 2
Hanya beberapa elemen pada halaman. Ia boleh hanya teks, pautan, senarai, gambar, dsb.
Dan berikan mereka nilai harta yang berbeza terapung:
#blok1( sempadan:1px merah pepejal; lebar:150px; tinggi:50px; terapung:kiri; ) #blok2( sempadan:1px merah pepejal; lebar:150px; tinggi:50px; apungan:kanan; )
Sekarang halaman kami dalam penyemak imbas kelihatan seperti ini:
Bagaimana jika mereka mempunyai nilai yang sama? Sebagai contoh:
#blok1( sempadan:1px merah pepejal; lebar:150px; tinggi:50px; terapung:kiri; ) #blok2( sempadan:1px merah pepejal; lebar:150px; tinggi:50px; terapung: kiri; )
Kemudian blok kedua akan ditekan pada tepi kanan blok pertama:
Keadaan akan serupa untuk nilai yang sama betul:
#blok1( sempadan:1px merah pepejal; lebar:150px; tinggi:50px; terapung:kanan; ) #blok2( sempadan:1px merah pepejal; lebar:150px; tinggi:50px; apungan:kanan; )
Sila ambil perhatian: blok pertama 1 akan ditekan ke tepi kanan, dan kemudian blok 2 akan ditekan kepadanya.
Tetapi bagaimana jika kita mahu blok ditekan ke tepi kanan, tetapi terletak satu di bawah yang lain. Terdapat harta untuk ini jelas, yang menentukan sisi blok terapung yang tidak boleh bersebelahan dengan blok terapung lain. Sifat ini boleh mempunyai satu daripada empat nilai:
dibiarkan- blok harus terletak di bawah semua blok sebelah kiri.
betul- blok mesti terletak di bawah semua blok sebelah kanan.
kedua-duanya- blok mesti terletak di bawah semua blok terapung.
tiada- tiada sekatan, ini adalah nilai lalai.
Mari tetapkan sifat ini untuk blok kedua dalam contoh terakhir kami:
#blok1( sempadan:1px merah pepejal; lebar:150px; tinggi:50px; float:kanan; ) #blok2( sempadan:1px merah pepejal; lebar:150px; tinggi:50px; float:kanan; jelas:kanan; )
Kini ternyata seperti yang saya mahu: satu blok di bawah yang lain:
Dalam pelajaran sebelumnya, kami mencipta halaman seperti ini menggunakan kedudukan mutlak:
Mari lihat bagaimana ia boleh dilakukan menggunakan bongkah terapung. Jadi, kod untuk halaman itu sendiri adalah seperti berikut:
Kedudukan blok
pengepala tapak
Kandungan
blok berita
bahagian bawah tapak
Pada halaman style.css, mari kita tetapkan dimensi dan latar belakang untuk blok kita dahulu:
Sekarang blok kami terletak dalam aliran biasa, i.e. satu di bawah yang lain. Kita perlu membuat blok menu Dan kandungan terapung dan kidal. Satu blok berita harus menekan pada tepi kanan, i.e. Kami akan menjadikannya blok terapung tangan kanan:
Halaman kami dalam penyemak imbas kelihatan seperti ini:
Mari lihat blok berita kami, anda boleh melihat bahawa ia terletak di bawah teks dalam blok kandungan. Tetapi kami mahu blok berita berada di sebelah kanan, dan teks akan mengalir di sekelilingnya di sebelah kiri.
Mengapa ia tidak berjaya untuk kita? Kerana blok kami berita dalam kod html terletak di bawah teks dan hanya teks yang terletak di bawahnya akan mengalir di sekelilingnya. Untuk membetulkannya, kita perlu meletakkan kita div="berita" di atas teks (iaitu sebelum perkataan "kandungan"):
Kedudukan blok
pengepala tapak
blok berita
Kandungan
bahagian bawah tapak
Kini blok berita kami berada di tempatnya:
Dan supaya ia tidak menekan dekat dengan tepi atas dan kanan, kami akan menambah nilai margin untuk blok ini:
Kini kami telah mencapai keputusan yang sama seperti dengan kedudukan mutlak.
Setuju bahawa menggunakan blok terapung adalah lebih mudah untuk menyusun halaman: anda tidak perlu mengira piksel dan kodnya lebih pendek. Di samping itu, dengan susun atur "cecair", kami tidak dapat menentukan lokasi tepat blok pada skrin, dan dengan bantuan blok terapung kami tidak memerlukan ini, sudah cukup untuk menunjukkan hanya tanda tempat (di sebelah kiri, di sebelah kanan, di bawah atau dalam baris yang sama).
Blok tetap
Seperti yang anda ingat, dengan kedudukan tetap, blok ditetapkan relatif kepada kawasan tontonan. Dalam beberapa cara, blok tetap adalah serupa dengan bingkai. Penatalan tersedia hanya di dalam bingkai, tetapi tidak di dalam blok.
Blok tetap mempunyai satu kelemahan yang ketara: ia tidak disokong oleh pelayar Internet Explorer. Oleh itu, mereka tidak sepatutnya digunakan buat masa ini. Oleh itu, di sini kami hanya akan menunjukkan sintaks peraturan sedemikian, jika anda ingin mencuba sendiri (contohnya, dalam penyemak imbas Opera).
#blok( position:fixed; left:0px; top:0px; )
Blok dengan pengecam "blok" akan kekal pada tempatnya apabila menatal halaman.
Itu sahaja untuk hari ini. Dalam pelajaran seterusnya kita akan berkenalan dengan beberapa lagi sifat blok dan jenisnya.