Dokumen ini menetapkan metode untuk melampirkan gaya ke dokumen HTML menggunakan JavaScript bahasa berbasis properti yang ada. Dokumen ini tidak berusaha menjelaskan sintaks JavaScript. Dokumentasi JavaScript dapat ditemukan di http. //rumah. netscape. com/comprod/products/navigator/version_2. 0/script/script_info/index. html Show
1 Konsep DasarMerancang style sheet sederhana itu mudah. Seseorang hanya perlu mengetahui sedikit HTML dan beberapa pernyataan penugasan JavaScript sederhana. Misalnya, untuk mengatur warna teks elemen 'H1' menjadi biru, bisa dikatakan document.tags.H1.color = "blue" Contoh di atas adalah contoh sederhana penggunaan JavaScript untuk mengatur properti warna semua tag 'H1' menjadi "biru". Sementara contoh hanya memengaruhi satu dari banyak properti yang digunakan dalam merender dokumen HTML, contoh tersebut memenuhi syarat sebagai lembar gaya independen. Dikombinasikan dengan style sheet lain akan menentukan presentasi akhir dari dokumen Contoh lebih lanjut dalam spesifikasi ini menganggap "dokumen" tercakup secara implisit. Oleh karena itu contoh di atas akan terbaca tags.h1.color = "blue"_ 1. 1 Penahanan dalam HTMLAgar style sheet mempengaruhi presentasi, agen pengguna (UA) harus mengetahui keberadaan mereka. Draf kerja W3C lainnya, HTML3 dan Style Sheets [4], menjelaskan bagaimana menghubungkan HTML dengan style sheet title Headline is blue Contoh menunjukkan tiga cara untuk menggabungkan arahan gaya dan HTML Elemen 'LINK' mereferensikan style sheet alternatif yang dapat dipilih pembaca, sementara style sheet yang diimpor secara otomatis digabungkan dengan style sheet lainnya Secara tradisional, UA diam-diam mengabaikan tag yang tidak dikenal. Akibatnya, UA lama akan mengabaikan elemen 'STYLE', tetapi kontennya akan diperlakukan sebagai bagian dari badan dokumen, dan dirender seperti itu. Selama fase transisi, konten elemen 'STYLE' mungkin disembunyikan menggunakan komentar SGML Karena elemen 'STYLE' dideklarasikan sebagai "CDATA" di DTD (sebagaimana didefinisikan dalam [4]), parser SGML yang sesuai tidak akan menganggap style sheet di atas sebagai komentar yang harus dihapus 1. 2 WarisanPada contoh pertama, warna elemen 'H1' disetel menjadi biru. Misalkan kita memiliki elemen 'H1' dengan elemen yang ditekankan di dalamnya The headline is important!_ Jika tidak ada warna yang ditetapkan untuk 'EM', "is" yang ditekankan akan mewarisi warna elemen induk, sehingga juga akan muncul dengan warna biru. Properti gaya lainnya juga diwariskan Warisan dimulai dari leluhur tertua, di elemen tingkat atas. Dalam HTML, ini adalah elemen 'HTML' yang diikuti oleh elemen 'BODY'. Untuk menyetel properti gaya "default", seseorang dapat menggunakan 'BODY' sebagai pemilih with(tags.BODY) { color = "black"; bgColor = "white"; } Ini akan efektif bahkan ketika penulis telah menghilangkan tag 'BODY' (yang legal) karena pengurai akan menyimpulkan tag yang hilang. Contoh di atas mengatur warna teks menjadi hitam dan warna background menjadi putih Beberapa properti gaya tidak diwariskan dari elemen induk ke elemen anak. Paling sering secara intuitif mengapa tidak demikian. Misalnya, properti tidak mewarisi, tetapi latar belakang elemen induk akan bersinar secara default 1. 3 Kelaskan sebagai PemilihUntuk meningkatkan perincian kontrol atas elemen, HTML3 mengusulkan atribut baru. 'KELAS'. Semua elemen di dalam elemen 'BODY' dapat diklasifikasi dan kelas tersebut dapat dialamatkan dalam style sheet. Kata kunci 'semua' digunakan untuk menentukan bahwa semua tag di dalam kelas dipengaruhi oleh properti gaya Title Way too green_ Aturan pewarisan normal berlaku untuk elemen yang dikelaskan; Hanya satu kelas yang dapat ditentukan per pemilih. 'kelas. punk. rap' oleh karena itu merupakan pemilih yang tidak valid. (Pemilih kontekstual, dijelaskan di bawah, dapat memiliki satu kelas per pemilih sederhana. ) 1. 4 ID sebagai PemilihHTML3 juga memperkenalkan atribut 'ID' yang dijamin memiliki nilai unik di atas dokumen. Oleh karena itu dapat menjadi sangat penting sebagai pemilih style sheet. Atribut 'ID' memungkinkan pengecualian gaya tertentu untuk diungkapkan ids.z098y.letterSpacing = "0.3em" 1. 5 Menggabungkan Class dan ID sebagai SelectorKadang-kadang diinginkan untuk mereferensikan hanya tag-tag yang ada di dalam set tertentu yang ditentukan oleh sebuah kelas. Dengan menentukan nama tag alih-alih menggunakan kata kunci 'semua', hanya tag yang cocok dengan nama dan di dalam kelas yang akan terpengaruh This should be red This should be in the normal document color_
1. 6 Pemilih KontekstualWarisan menghemat pengetikan desainer. Alih-alih menyetel semua properti gaya, seseorang dapat membuat default dan kemudian membuat daftar pengecualian. Untuk memberi elemen 'EM' warna yang berbeda, seseorang dapat menentukan with(tags) { H1.color = "blue"; EM.color = "red"; }_ Saat style sheet ini aktif, semua bagian yang ditekankan di dalam atau di luar 'H1' akan berubah menjadi merah. Mungkin seseorang hanya menginginkan elemen 'EM' dalam 'H1' menjadi merah; tags.h1.color = "blue"_0 Pemilih sekarang menjadi pola pencarian di tumpukan elemen terbuka. Jenis pemilih ini disebut sebagai "pemilih kontekstual". Selektor kontekstual terdiri dari beberapa penyeleksi sederhana sebagai argumen untuk fungsi "kontekstual". Hanya elemen yang cocok dengan pemilih sederhana terakhir (dalam hal ini elemen 'EM') yang dialamatkan, dan hanya jika pola pencarian cocok. Selektor kontekstual mencari hubungan leluhur, tetapi hubungan lain (mis. g. orangtua-anak) dapat diperkenalkan dalam revisi selanjutnya. Pada contoh di atas, pola pencarian cocok jika 'EM' adalah turunan dari 'H1'; tags.h1.color = "blue"_1 Di sini, pemilih pertama mencocokkan elemen 'LI' dengan setidaknya satu leluhur 'UL'. Selektor kedua cocok dengan subset dari yang pertama. Elemen 'LI' dengan setidaknya dua nenek moyang 'UL'. Konflik diselesaikan dengan pemilih kedua yang lebih spesifik karena pola pencarian yang lebih panjang Pemilih kontekstual dapat mencari tag, kelas, ID, atau kombinasinya tags.h1.color = "blue"_2 Pemilih pertama mencocokkan semua tag P dalam tag DIV. Pemilih kedua mencocokkan semua elemen H1 dengan kelas leluhur 'kemerahan'. Pemilih ketiga cocok dengan semua elemen 'CODE' yang merupakan turunan dari elemen dengan 'ID=x78y' 1. 7 KomentarKomentar tekstual ditentukan oleh JavaScript dan mirip dengan yang ada di bahasa pemrograman C dan C++ tags.h1.color = "blue"_3 Komentar tidak dapat disarangkan 2. 0 Elemen TipografiBeberapa efek tipografi umum tidak dikaitkan dengan elemen struktural melainkan item tipografi sebagaimana diformat di kanvas. Di sini kami mencoba menunjukkan beberapa efek umum 2. 1 Gaya 'Baris pertama'Berikut ini digunakan untuk menerapkan gaya khusus pada baris pertama seperti yang diformat pada kanvas tags.h1.color = "blue"_4 Pada UA berbasis teks, ini dapat diformat sebagai tags.h1.color = "blue"_5 (Dalam contoh di atas, UA memilih untuk mengganti teks huruf kecil dengan huruf besar karena huruf kecil tidak tersedia. Spesifikasi ini tidak menjelaskan bagaimana UA harus merender dokumen ketika sumber daya yang diperlukan, seperti warna dan font, tidak tersedia. ) Array garis dapat diindeks untuk menerapkan gaya ke baris tertentu dalam elemen blok 2. 2 Gaya 'Huruf pertama'Gaya 'firstLetter' digunakan untuk "initial caps" dan "drop caps" yang merupakan efek tipografi umum. Ini adalah bagaimana Anda bisa membuat huruf awal dropcap menjadi dua baris tags.h1.color = "blue"_6 (Elemen 'SPAN' diusulkan sebagai elemen level karakter baru untuk HTML3. ) Jika UA berbasis teks mendukung gaya 'hurufpertama', gaya di atas dapat diformat sebagai tags.h1.color = "blue"_7 Gaya 'hurufpertama' hanya dapat dilampirkan ke elemen tingkat blok 3. 0 Menggunakan Konstruksi Bahasa Pemrograman di Style SheetsJavaScript adalah bahasa pemrograman yang kuat. Oleh karena itu dapat digunakan untuk melakukan hal-hal yang tidak bisa dilakukan oleh bahasa style sheet biasa. Misalnya, fungsi dan nilai yang ditetapkan dapat digunakan untuk membuat ekspresi informasi gaya lebih mudah bagi pembuat style sheet. Selain itu, penghitungan yang rumit dan kueri properti eksternal yang direfleksikan ke dalam cakupan JavaScript dapat digunakan untuk menghitung nilai properti dengan cara baru dan unik 3. 1 Menetapkan Fungsi Evaluasi GayaUntuk menetapkan fungsi gaya ke tag, seseorang dapat menggunakan properti "apply". Fungsi yang ditetapkan ke properti "apply" akan dijalankan setiap kali tag ditemukan tags.h1.color = "blue"_8 Gaya ini bila diterapkan ke daftar bersarang dapat memiliki efek berikut Fungsi dapat ditetapkan ke tag beralamat apa pun sebagai berikut tags.h1.color = "blue"_9 Contoh yang jauh lebih rumit dan/atau berguna dapat dibayangkan 3. 2 Mengevaluasi Ekspresi untuk Nilai PropertiProperti apa pun dapat diberikan hasil ekspresi JavaScript. Ekspresi JavaScript dapat digunakan untuk menghitung nilai yang rumit dan untuk menanyakan properti lain yang mungkin tercermin Ini sebuah contoh title Headline is blue0 Semakin banyak properti yang direfleksikan ke dalam JavaScript, kekuatan ekspresif meningkat secara dramatis. Lembar gaya akan dapat menyesuaikan dokumen dengan lingkungan khusus pengguna 3. 3 Menyederhanakan Tugas Menggunakan MetodeMetode dapat digunakan untuk menyederhanakan penugasan beberapa nilai. Misalnya penugasan margin dapat dibuat lebih mudah sebagai berikut title Headline is blue1 4 Aturan PrioritasLebih dari satu style sheet dapat memengaruhi presentasi secara bersamaan. Ada dua alasan utama untuk fitur ini. modularitas dan keseimbangan penulis/pembaca Seorang desainer style sheet dapat menggabungkan beberapa (sebagian) style sheet untuk mengurangi redundansi.title Headline is blue2Baik pembaca dan penulis dapat mempengaruhi presentasi melalui style sheet. Untuk melakukannya, mereka menggunakan bahasa style sheet yang sama sehingga mencerminkan fitur dasar web. semua orang bisa menjadi penerbit. UA bebas memilih mekanisme untuk mereferensikan style sheet pribadi Kadang-kadang akan timbul konflik antara style sheet yang mempengaruhi presentasi. Urutan pembacaan gaya menentukan urutan prioritas dengan gaya terakhir yang diutamakan. Pengecualian untuk aturan itu adalah bahwa style sheet pembaca selalu lebih diutamakan daripada style sheet penulis. Aturan pembaca dan penulis mengesampingkan nilai default UA 4. 1 Urutan Diutamakan untuk Tag, ID, dan KelasUntuk menemukan nilai kombinasi elemen/properti, algoritma berikut harus diikuti
title Headline is blue_3 Pencarian nilai properti dapat dihentikan setiap kali satu aturan memiliki bobot lebih tinggi daripada aturan lain yang berlaku untuk kombinasi elemen/properti yang sama Atribut 'STYLE' pada elemen harus dianggap seolah-olah atribut ID telah ditentukan di akhir style sheet. Misalnya title Headline is blue_4 UA dapat memilih untuk menghormati atribut gaya lainnya (mis. g. 'ALIGN') seolah atribut 'STYLE' telah digunakan. Saat bertentangan dengan atribut gaya lainnya, atribut 'GAYA' harus menang 5 Model pemformatanDokumen ini menyarankan model pemformatan berorientasi kotak sederhana. Setiap elemen tingkat blok (mis. g. 'H1' dan 'P', tetapi bukan 'EM') dikelilingi oleh sebuah kotak. Ukuran kotak adalah jumlah dari lebar elemen (mis. e. teks atau gambar yang diformat), padding, border dan margin title Headline is blue5 Ukuran margin, border dan padding masing-masing diatur dengan , dan properti. Area pengisi menggunakan latar belakang yang sama dengan elemen itu sendiri (diatur dengan properti). Warna dan gaya untuk perbatasan diatur dengan properti 'perbatasan'. Margin selalu transparan, sehingga elemen induk akan bersinar Contoh berikut menunjukkan bagaimana margin dan padding memformat elemen 'UL' dengan dua turunan. Untuk menyederhanakan diagram tidak ada batas title Headline is blue6 title Headline is blue7 Secara teknis, properti padding dan margin tidak diwariskan. Namun, seperti yang ditunjukkan contoh, penempatan suatu elemen bersifat relatif terhadap leluhur dan saudara kandung sehingga properti padding dan margin elemen ini berpengaruh pada turunannya. Jika lebar batas telah disetel (nilai defaultnya adalah '0'), batas akan muncul di antara padding dan margin 5. 1 Pemformatan vertikalLebar margin menentukan jarak minimum ke tepi kotak di sekitarnya. Dua atau lebih margin yang berdampingan (mis. e. , tanpa batas, padding, atau konten di antaranya) diciutkan untuk menggunakan nilai margin maksimum. Pada contoh di atas, margin antara dua elemen 'LI' diciutkan dengan menggunakan maksimum 'margin-bottom' elemen LI pertama dan 'margin-top' elemen LI kedua. Demikian pula, jika padding antara 'UL' dan elemen 'LI' pertama (konstanta "E") adalah nol, margin elemen UL dan LI pertama harus diciutkan Dalam hal margin negatif, maksimum absolut dari margin negatif yang berdampingan harus dikurangi dari maksimum margin positif yang berdampingan. 5. 2 Pemformatan horizontalTujuh satuan panjang mempengaruhi dimensi horizontal sebuah kotak. margin kiri, batas kiri, padding kiri, lebar, padding kanan, batas kanan, margin kanan. Ditambahkan, ini harus sama dengan lebar elemen induk. Oleh karena itu, seseorang tidak dapat menentukan nilai untuk semua properti dan mengharapkannya dihormati. Kekuatan relatif di antara mereka adalah sebagai berikut
Secara default, nilai properti 'width' adalah 'auto' yang artinya akan dihitung secara otomatis berdasarkan nilai properti lainnya. Namun, jika 'lebar' diberi nilai lain, atau dimensi tidak bertambah karena alasan lain, properti dengan peringkat terendah akan diberi 'otomatis', i. e. dihitung secara otomatis 5. 3 DaftarElemen dengan nilai properti 'display' dari 'list-item' diawali dengan label. Jenis label ditentukan oleh properti 'list-style'. Label tidak dianggap sebagai bagian dari konten, dan akan ditempatkan di luar konten. Rendering label harus didasarkan pada properti font dan warna elemen yang dimilikinya 5. 4 KanvasKanvas adalah bagian dari permukaan gambar UA tempat dokumen dirender. Tidak ada elemen struktural dokumen yang sesuai dengan kanvas. Ini menimbulkan masalah saat dokumen tidak memenuhi seluruh kanvas. bagaimana seharusnya area yang tidak terisi ditampilkan? . Untuk mendukung ekspektasi desainer, kami memperkenalkan aturan khusus untuk menemukan latar belakang kanvas
Aturan ini memungkinkan title Headline is blue_8 Pada contoh di atas, kanvas akan ditutup dengan "marmer". Warna latar belakang elemen 'BODY' (yang mungkin atau mungkin tidak sepenuhnya menutupi kanvas) akan berwarna merah Sampai cara lain untuk menangani kanvas tersedia, kami merekomendasikan pengaturan properti kanvas pada elemen 'BODY' 5. 5 Elemen mengambangMenggunakan properti, elemen dapat dideklarasikan berada di luar aliran normal elemen. Misalnya, dengan menyetel properti 'float' dari suatu gambar ke 'kiri', aliran normal akan berputar di sisi kanan. Posisi gambar akan diambil dari properti margin title Headline is blue_9 Contoh di atas dapat diformat sebagai 0 Bilah vertikal dan karakter garis bawah digunakan untuk menunjukkan kotak pembatas gambar Biasanya, hanya elemen gambar yang diatur menjadi mengambang. Namun, tidak ada yang menghalangi properti 'float' untuk digunakan pada elemen lain 1 5. 6 Elemen yang DigantiElemen yang diganti adalah elemen yang diganti dengan konten yang ditunjuk dari elemen tersebut. Misalnya, dalam HTML, elemen IMG diganti dengan gambar yang ditunjuk oleh atribut SRC. Orang dapat berasumsi bahwa elemen yang diganti datang dengan lebar dan tinggi intrinsiknya sendiri. Jika nilai untuk 'width' adalah 'auto', lebar intrinsik harus digunakan sebagai lebar elemen. Jika nilai selain 'otomatis' ditentukan dalam lembar gaya, nilai ini harus digunakan dan elemen yang diganti harus diubah ukurannya (metode pengubahan ukuran akan bergantung pada jenis media). Properti 'tinggi' digunakan dengan cara yang sama 6 PropertiLembar gaya memengaruhi penyajian dokumen dengan menetapkan nilai ke properti gaya. Bagian ini mencantumkan properti gaya yang ditentukan dan daftar kemungkinan nilainya yang sesuai 6. 1 Notasi untuk Nilai PropertiDalam teks di bawah ini, nilai yang diizinkan untuk setiap properti dicantumkan dengan sintaks seperti berikut
The words between "<" and ">" give a type of value. The most common types are,,,and; these are described in the section on units. The more specialized types (e.g.and) are described under the property where they appear. Kata lainnya adalah kata kunci yang harus muncul secara harfiah. Garis miring (/) juga dianggap sebagai kata kunci Beberapa hal yang disejajarkan berarti bahwa semuanya harus terjadi, dalam urutan tertentu. Sebuah bar (. ) memisahkan alternatif. salah satunya harus terjadi. Bilah ganda (A. B) berarti bahwa A atau B atau keduanya harus terjadi, dalam urutan apa pun. Tanda kurung ([]) untuk pengelompokan. Penjajaran lebih kuat dari palang ganda, dan palang ganda lebih kuat dari palang. Jadi "a b. C. d e" sama dengan "[ a b ]. [ c. [d e]]" Setiap jenis, kata kunci, atau grup dalam tanda kurung dapat diikuti oleh salah satu pengubah berikut
6. 2 Properti FontMengatur properti font akan menjadi salah satu penggunaan style sheet yang paling umum. Sayangnya, tidak ada taksonomi yang terdefinisi dengan baik dan diterima secara universal untuk mengklasifikasikan font, dan istilah yang berlaku untuk satu jenis font mungkin tidak sesuai untuk yang lain. e. g. 'Italic' umumnya digunakan untuk melabeli teks miring, tetapi istilah ini tidak sesuai untuk font sans-serif (yang font miringnya disebut 'miring'). Spesifikasi ini menunjukkan terminologi liberal untuk mendeskripsikan font, dan tingkat detail yang mirip dengan aplikasi desktop publishing umum Karakteristik font tambahan sedang dikerjakan di kelompok kerja Font W3C 6. 2. 1 'Ukuran font'Nilai Jika nilainya adalah angka, itu ditafsirkan sebagai kata kunci relatif di mana nilai '1' setara dengan 'lebih besar'. Misalnya, jika elemen induk memiliki ukuran font 'sedang', nilai '-2' akan membuat ukuran font elemen saat ini menjadi 'x-small' Nilai panjang dan persentase tidak boleh memperhitungkan tabel ukuran font saat menghitung ukuran font elemen Untuk sebagian besar properti, nilai panjang mengacu pada ukuran font elemen saat ini. Pada unit panjang properti 'ukuran font' (mis. g. 'em' dan 'ex'), mengacu pada ukuran font elemen induk Perhatikan bahwa aplikasi dapat menafsirkan ulang ukuran eksplisit, bergantung pada konteksnya. Misalnya, di dalam adegan VR, ukuran font mungkin berbeda karena distorsi perspektif Contoh 2 Jika disarankan faktor penskalaan 1. 5 digunakan, tiga aturan terakhir identik 6. 2. 2 'gayafont'Nilai. normal. miring. topi kecil. miring. topi kecil. topi kecil Kombinasi hukum dari nilai-nilai tersebut adalah
Jika gaya font yang disukai tidak dapat dicapai, UA harus melakukan upaya terbaik untuk menemukan penggantian yang dapat diterima. Seringkali, font 'miring' dapat diganti dengan font 'miring'. Jika 'huruf kecil' tidak tersedia, huruf kapital dengan ukuran font yang lebih kecil dapat digunakan untuk merender karakter kecil jika resolusi media keluaran sesuai untuk ini _3 Dalam contoh di atas, teks yang ditekankan di dalam 'H1' akan muncul dalam huruf miring biasa 6. 2. 3 'Tinggi garis'Nilai Properti mengatur jarak antara garis dasar dua garis yang berdekatan. Ini hanya berlaku untuk elemen level blok Ketika nilai numerik ditentukan, tinggi garis diberikan oleh ukuran font elemen saat ini dikalikan dengan nilai numerik. Ini berbeda dari nilai persentase dalam cara mewarisi. ketika nilai numerik ditentukan, elemen anak akan mewarisi faktor itu sendiri, bukan nilai yang dihasilkan (seperti halnya dengan dan unit lainnya) Nilai negatif tidak diperbolehkan Tiga aturan dalam contoh di bawah ini memiliki tinggi garis resultan yang sama 4 5 Disarankan agar UA menetapkan nilai awal menjadi angka dalam kisaran 1. 0 sampai 1. 2 6. 3 Properti Warna dan Latar Belakang6. 3. 1 'warna'Nilai Properti ini menjelaskan warna teks dari suatu elemen, mis. e. warna "depan". Ada berbagai cara untuk menentukan warna merah 6 7 6. 3. 2 'latar belakang'Nilai Contoh yang sesuai 8
|