Cascading Style Sheets (CSS) adalah bahasa style sheet yang digunakan untuk menggambarkan semantik presentasi (yaitu, tampilan dan format) dari dokumen ditulis dalam bahasa markup . aplikasi yang paling umum adalah untuk gaya halaman web yang ditulis dalam HTML dan XHTML , tetapi bahasa juga dapat diterapkan untuk setiap jenis XML dokumen, termasuk SVG dan XUL .

CSS dirancang terutama untuk memungkinkan pemisahan konten dokumen (yang ditulis dalam HTML atau sebuah bahasa markup yang sama) dari presentasi dokumen, termasuk elemen seperti tata letakwarna , dan font . Pemisahan ini dapat meningkatkan konten aksesibilitas , menyediakan lebih fleksibilitas dan kontrol dalam spesifikasi karakteristik presentasi, memungkinkan beberapa halaman untuk berbagi format, dan mengurangi kompleksitas dan pengulangan isi struktural (seperti dengan memungkinkan untuk desain web Tableless ). CSS juga dapat memungkinkan halaman markup yang sama akan disajikan dalam gaya yang berbeda untuk metode rendering yang berbeda, seperti di layar, di cetak, dengan suara (ketika dibacakan oleh browser berbasis pembicaraan atau pembaca layar ) dan Braille berbasis, taktil perangkat. Sementara penulis dokumen dokumen yang biasanya link ke style sheet CSS, pembaca dapat menggunakan style sheet yang berbeda, mungkin salah satu di komputer mereka sendiri, untuk menimpa seorang penulis telah ditentukan.

CSS menetapkan suatu skema prioritas untuk menentukan aturan gaya berlaku jika lebih dari satu aturan pertandingan melawan elemen tertentu. Dalam hal ini disebut kaskade begitu, prioritas atau bobot dihitung dan ditugaskan untuk peraturan, sehingga hasilnya bisa ditebak.  Spesifikasi CSS diselenggarakan oleh World Wide Web Consortium (W3C). Jenis media internet tipe MIME text/css terdaftar untuk digunakan dengan CSS oleh RFC 2318 (Maret 1998).

Sintaks

CSS memiliki sederhana sintaks dan menggunakan jumlah kata kunci bahasa Inggris untuk menentukan nama-nama properti berbagai gaya. Sebuah style sheet terdiri dari daftar aturan. Setiap aturan atau aturan-set terdiri dari satu atau lebih penyeleksi dan blok deklarasi. Sebuah deklarasi-blok terdiri dari daftar deklarasi oleh kurung. Setiap deklarasi itu sendiri terdiri dari properti, tanda titik dua ( : ), nilai, lalu usus-semi ( ; ).

Dalam CSS, penyeleksi digunakan untuk menyatakan yang unsur markup style berlaku untuk, semacam ekspresi cocok. Selectors mungkin berlaku untuk semua elemen dari jenis tertentu, atau hanya unsur-unsur yang cocok dengan atribut tertentu; elemen dapat disesuaikan tergantung pada bagaimana mereka ditempatkan relatif terhadap satu sama lain dalam kode markup, atau bagaimana mereka bersarang di dalam dokumen objek model .

Pseudo-class adalah bentuk lain dari spesifikasi yang digunakan dalam mengidentifikasi elemen CSS untuk markup, dan dalam beberapa kasus, khusus pengguna tindakan yang blok deklarasi tertentu berlaku. An-contoh sering digunakan adalah :hover pseudo-kelas yang menerapkan gaya hanya bila pengguna poin untuk ‘elemen terlihat, biasanya dengan menekan kursor mouse di atasnya. Hal ini ditambahkan ke pemilih seperti dalam a:hover atau#elementid:hoverLain-pseudo-pseudo kelas dan unsur, misalnya, :first-line:visited atau :before . A pseudo-kelas khusus adalah:lang(c) , “c”.

pseudo-kelas memilih seluruh elemen, seperti :link atau :visited , sedangkan pseudo-elemen membuat pilihan yang mungkin terdiri dari unsur parsial, seperti :first-line atau :first-letter .

Selectors mungkin digabungkan dengan cara lain juga, terutama di CSS 2.1, untuk mencapai spesifisitas yang lebih besar dan fleksibilitas.

Berikut adalah contoh menyimpulkan peraturan di atas:

selektor [, selector2, ... []:-kelas] pseudo (
   properti: nilai;
  [Property2: nilai2;
   ...]
 )
 / * Comment * /

Penggunaan

Sebelum CSS, hampir semua atribut penyajian dokumen HTML yang terkandung dalam HTML markup; semua warna font, gaya latar belakang, keberpihakan elemen, perbatasan dan ukuran harus secara eksplisit dijelaskan, sering berulang kali, dalam HTML. CSS memungkinkan penulis untuk bergerak lebih informasi bahwa untuk sebuah style sheet terpisah HTML menghasilkan markup yang sangat sederhana.

Judul ( h1 elemen), sub-judul ( h2 ), sub-sub-judul ( h3 ), dll, didefinisikan secara struktural menggunakan HTML. Di cetak dan di layar, pilihan font , ukuran , warna dan penekanan untuk elemen ini penyajian.

Sebelum CSS, dokumen penulis yang ingin menetapkan seperti tipografi karakteristik untuk, katakanlah, semua h2 pos harus menggunakan HTML font dan elemen presentasi lainnya untuk setiap kemunculan jenis pos. Presentational markup tambahan dalam membuat dokumen HTML lebih kompleks, dan umumnya lebih sulit untuk mempertahankan. Dalam CSS, presentasi dipisahkan dari struktur. Dalam cetak, CSS dapat menentukan warna, font, perataan teks, ukuran, batas, jarak, tata letak dan tipografi banyak karakteristik lainnya. Hal ini dapat melakukannya secara independen untuk di-layar dan dicetak dilihat. CSS juga mendefinisikan gaya non-visual seperti kecepatan dan penekanan dengan teks yang dibacakan oleh pembaca teks aural. The W3C sekarang mempertimbangkan keunggulan CSS untuk mendefinisikan semua aspek dari penyajian halaman HTML lebih superior metode lain. Hal ini karena ditinggalkan penggunaan semua HTML markup presentational asli.

Sumber

CSS informasi dapat diberikan oleh berbagai sumber. CSS informasi gaya dapat berupa dilampirkan sebagai dokumen terpisah atau tertanam dalam dokumen HTML. Beberapa style sheet dapat diimpor. gaya yang berbeda dapat diterapkan, tergantung pada perangkat output yang digunakan, misalnya, versi layar dapat sangat berbeda dari versi cetak, sehingga penulis dapat menyesuaikan penyajian media tepat untuk masing-masing.

Prioritas skema untuk sumber CSS (dari tertinggi sampai prioritas terendah):

Penulis gaya (informasi gaya yang diberikan oleh penulis halaman web), dalam bentuk gaya inline, di dalam dokumen HTML informasi, gaya pada elemen tunggal, ditentukan dengan menggunakan “gaya” atribut. tertanam gaya, blok informasi CSS dalam dokumen HTML itu sendiri style sheet eksternal, yaitu terpisah CSS-file yang diacu dari dokumen.

Gaya Pengguna

lokal CSS-file yang ditentukan oleh pengguna dengan menggunakan pilihan di web browser, dan bertindak sebagai menimpa, untuk diterapkan ke semua dokumen.

Pengguna agen gaya

gaya default sheet diterapkan oleh user agent, misalnya presentasi default browser unsur.

Style sheet dengan prioritas tertinggi akan digunakan untuk menampilkan konten. Deklarasi yang tidak diatur dalam sumber prioritas tertinggi, akan diteruskan oleh sumber prioritas yang lebih rendah seperti gaya user agent. Proses ini disebut cascading.

Salah satu tujuan dari CSS juga untuk memungkinkan pengguna tingkat yang lebih besar kontrol atas presentasi; orang-orang yang menemukan judul italic merah sulit dibaca mungkin berlaku style sheet ke dokumen lain. Tergantung pada browser mereka dan situs web, pengguna dapat memilih dari style sheet berbagai disediakan oleh desainer, dapat menghapus semua gaya ditambahkan dan melihat situs dengan menggunakan browser styling default-nya atau mungkin bisa menimpa hanya italic merah pos gaya tanpa mengubah atribut lainnya.

File highlightheaders.css berisi:

h1 (warna: putih; background-color: oranye! penting;)

h2 (warna: putih, latar belakang warna: hijau! penting;)

File tersebut disimpan secara lokal dan berlaku jika yang telah ditetapkan dalam pilihan browser. “! Penting” berarti bahwa itu berlaku selama spesifikasi penulis.

Sejarah

Gaya lembaran sudah ada dalam satu bentuk atau yang lain sejak awal SGML pada 1970-an. Cascading Style Sheets dikembangkan sebagai alat untuk menciptakan pendekatan yang konsisten untuk memberikan informasi gaya untuk dokumen web.

Sebagai HTML tumbuh, ia datang untuk mencakup berbagai kemampuan gaya yang lebih luas untuk memenuhi tuntutan pengembang web . Evolusi ini memberikan desainer lebih mengontrol situs penampilan tetapi pada biaya HTML menjadi lebih kompleks untuk menulis dan memelihara. Variasi di web browser muncul situs implementasi konsisten sulit, dan pengguna memiliki kontrol yang kurang atas bagaimana konten web itu ditampilkan.

Untuk meningkatkan kemampuan presentasi web, sembilan lembar gaya bahasa yang berbeda telah diusulkan ke W3C ‘s gaya milis-www. Dari sembilan proposal, dua dipilih sebagai landasan untuk apa menjadi CSS: Cascading Style Sheet HTML (CHSS) dan Stream berbasis Style Sheet Proposal (SSP). CHSS, bahasa yang memiliki beberapa kemiripan dengan’s CSS hari ini, diusulkan oleh Lie Wium Håkon pada bulan Oktober 1994. Bert Bos bekerja pada browser yang disebut Argo yang digunakan gaya bahasa sendiri lembar, Stream berbasis Style Sheet Proposal (SSP). Bos Lie dan bekerja sama untuk mengembangkan standar CSS (‘H’ telah dihapus dari nama itu karena style sheet ini dapat diterapkan ke bahasa markup yang lain selain HTML).

Tidak seperti gaya bahasa yang ada seperti DSSSL dan TTS , CSS diizinkan dokumen gaya yang akan dipengaruhi oleh beberapa style sheet. Salah satu style sheet dapat mewarisi atau “cascade” dari yang lain, memungkinkan campuran preferensi gaya dikendalikan sama oleh perancang situs dan user.

Usulan Håkon disajikan di “Mosaic dan Web” konferensi di Chicago, Illinois pada tahun 1994, dan lagi dengan Bert Bos pada tahun 1995. Sekitar saat ini, World Wide Web Consortium sedang didirikan; W3C menaruh minat dalam pengembangan CSS, dan menyelenggarakan lokakarya menuju yang akhir diketuai oleh Steven Pemberton . Hal ini mengakibatkan W3C menambahkan bekerja pada CSS untuk penyampaian dewan editorial review HTML (ERB). Håkon dan Bert adalah staf teknis utama pada aspek proyek, dengan anggota tambahan, termasuk Thomas Reardon dari Microsoft , berpartisipasi juga. Pada akhir tahun 1996, CSS siap menjadi resmi, dan tingkat CSS 1 Rekomendasi diterbitkan pada bulan Desember.

Pengembangan HTML, CSS, dan DOM semua telah terjadi di satu kelompok, HTML Editorial Review Board (ERB). Pada awal 1997, ERB dipecah menjadi tiga kelompok kerja : HTML Kerja kelompok, dipimpin oleh Dan Connolly dari W3C; DOM Bekerja kelompok, yang diketuai oleh Lauren Wood dari SoftQuad ; dan CSS kelompok kerja, dipimpin oleh Chris Lilley dari W3C.

CSS Kelompok Kerja mulai menangani masalah yang belum ditangani dengan tingkat CSS 1, menyebabkan pembentukan tingkat CSS 2 pada tanggal 4 November 1997. Buku ini diterbitkan sebagai Rekomendasi W3C pada tanggal 12 Mei 1998. CSS tingkat 3, yang dimulai pada tahun 1998, masih dalam pengembangan pada 2009.

Pada tahun 2005 CSS Kelompok Kerja memutuskan untuk menerapkan persyaratan untuk standar yang lebih ketat. Ini berarti bahwa sudah diterbitkan standar seperti CSS 2.1, CSS 3 Selectors dan CSS 3 Teks ditarik kembali dari Calon Rekomendasi ke tingkat Draft Kerja.

Kesulitan dengan adopsi

Meskipun spesifikasi CSS1 selesai pada tahun 1996 dan Microsoft Internet Explorer 3 dirilis pada tahun itu menampilkan beberapa dukungan terbatas untuk CSS, akan lebih dari tiga tahun sebelum web browser dicapai-penuh pelaksanaan dekat spesifikasi. Internet Explorer 5.0 untuk Macintosh , dikirim pada Maret 2000, adalah browser pertama yang penuh (lebih dari 99 persen) CSS1 support [ rujukan? ], melebihi Opera , yang telah pemimpin sejak diperkenalkan dukungan CSS 15 bulan sebelumnya. browser lain menyusul segera setelah itu, dan banyak dari mereka selain itu diterapkan bagian CSS2. Per Juli 2008 , tidak ada (selesai) telah sepenuhnya dilaksanakan browser CSS2, dengan berbagai tingkat pelaksanaan (lihat Perbandingan mesin layout (CSS) ).

Meskipun awal browser seperti Internet Explorer 3 dan 4 , dan Netscape 4.x mendapat dukungan untuk CSS, itu biasanya tidak lengkap dan menderita dengan serius bug . Ini merupakan hambatan serius bagi penerapan CSS.

versi Ketika kemudian ‘browser 5’ mulai menawarkan implementasi CSS cukup penuh, mereka masih salah di daerah tertentu dan penuh dengan inkonsistensi, bug dan keanehan lainnya. Proliferasi inkonsistensi CSS-terkait seperti dan bahkan variasi dalam mendukung fitur telah membuatnya menjadi sulit bagi desainer untuk mencapai penampilan yang konsisten di seluruh platform. Beberapa penulis umumnya resor untuk menggunakan beberapa workarounds seperti hacks CSS dan CSS filter untuk mendapatkan hasil yang konsisten di seluruh web browser dan platform .

Masalah dengan adopsi setengah-setengah browser ‘CSS bersama dengan ralat dalam spesifikasi asli memimpin W3C untuk merevisi standar CSS2 ke CSS2.1, yang dapat dianggap sebagai sesuatu yang lebih dekat ke snapshot kerja saat ini dukungan CSS pada browser HTML. Beberapa properti CSS2 yang tidak browser berhasil melakukan dijatuhkan, dan dalam beberapa kasus, perilaku yang didefinisikan diubah menjadi membawa standar agar sejalan dengan implementasi yang ada dominan. Rekomendasi CSS2.1 menjadi Calon pada tanggal 25 Pebruari 2004, tapi CSS2.1 ditarik kembali ke status Konsep Bekerja pada tanggal 13 Juni 2005,, [3] dan hanya kembali ke status Rekomendasi Calon pada tanggal 19 Juli 2007.

Di masa lalu, beberapa server web yang dikonfigurasi untuk melayani semua dokumen dengan ekstensi nama file .css sebagai jenis mime application/x-pointplus daripada text/css . Pada saat itu, perusahaan-Scene bersih menjual PointPlus Maker untuk mengkonversi PowerPoint file ke dalam file Compact Slide Show (menggunakan .css ekstensi).

Variasi

CSS memiliki berbagai tingkat dan profil. Setiap tingkat CSS dibangun berdasarkan fitur baru terakhir, biasanya menambahkan dan biasanya dilambangkan sebagai CSS1, CSS2, dan CSS3. Profil biasanya merupakan subset dari satu atau lebih tingkat CSS dibangun untuk suatu perangkat tertentu atau user interface. Saat ini ada profil untuk perangkat selular, printer, dan televisi. Profil seharusnya tidak bingung dengan tipe media yang ditambahkan di CSS2.

CSS 1

Spesifikasi CSS pertama yang menjadi seorang pejabat adalah Rekomendasi W3C CSS tingkat 1, diterbitkan pada bulan Desember 1996.  Di antara kemampuan perusahaan adalah dukungan untuk:  Font properti seperti tipografi dan penekanan, Warna teks, latar belakang, dan elemen lainnya, Teks atribut seperti spasi antara kata, huruf, dan baris teks, Alignment teks, gambar, tabel dan elemen lainnya, Margin, perbatasan, padding, dan positioning untuk elemen yang paling, Unik identifikasi dan klasifikasi generik kelompok atribut, W3C tidak lagi mempertahankan Rekomendasi CSS1.

CSS 2

CSS level 2 dikembangkan oleh W3C dan diterbitkan sebagai Rekomendasi di bulan Mei 1998. Sebuah superset dari CSS1, CSS2 mencakup sejumlah kemampuan baru seperti absolut, relatif, dan positioning tetap unsur-unsur dan z-indeks , konsep jenis media, dukungan untuk style sheet aural dan teks dua arah, dan properti font baru seperti bayang-bayang. W3C mempertahankan Rekomendasi CSS2.

CSS tingkat 2 revisi 1 atau CSS 2.1 perbaikan kesalahan dalam CSS2, menghapus fitur yang didukung buruk dan menambahkan yang sudah dilaksanakan ekstensi browser untuk spesifikasi. Sementara itu Rekomendasi Calon selama beberapa bulan, pada tanggal 15 Juni 2005, telah kembali ke konsep bekerja untuk penelaahan lebih lanjut.  Ia kembali ke status Rekomendasi Calon pada tanggal 19 Juli 2007.

CSS 3

CSS tingkat 3 sedang dalam pengembangan. [9] The W3C mempertahankan laporan kemajuan CSS3 . CSS3 adalah modularized dan akan terdiri dari beberapa rekomendasi yang terpisah. W3C Roadmap ini CSS3 menyediakan ringkasan dan pengenalan. [10]

Dukungan Browser

Informasi lebih lanjut: Perbandingan tata letak mesin (Cascading Style Sheets)

Karena tidak semua browser memenuhi identik dengan kode CSS, teknik coding yang dikenal sebagai filter CSS dapat digunakan untuk menampilkan atau menyembunyikan bagian CSS untuk browser yang berbeda, baik dengan memanfaatkan CSS- penanganan quirks atau bug di browser, atau dengan memanfaatkan kurangnya dukungan untuk bagian dari spesifikasi CSS. [11] Menggunakan filter CSS, beberapa desainer telah sejauh memberikan berbeda CSS sepenuhnya untuk browser tertentu untuk memastikan bahwa desain tersebut diberikan seperti yang diharapkan. Karena browser web adalah awal yang sangat baik sekali tidak mampu menangani CSS, atau CSS membuat sangat buruk, desainer hari ini sering secara rutin menggunakan filter CSS yang benar-benar mencegah browser dari mengakses salah satu CSS. Internet Explorer dukungan untuk CSS dimulai dengan IE 3,0 dan semakin meningkat dengan versi masing-masing. Pada tahun 2008, Beta pertama Internet Explorer 8 menawarkan dukungan untuk CSS 2.1 dalam standar webnya mode terbaik.

Sebuah contoh yang dikenal CSS browser bug-baik adalah Internet Explorer kotak model bug , di mana lebar kotak diinterpretasikan salah dalam beberapa versi browser, sehingga blok yang terlalu sempit bila dilihat di Internet Explorer, tapi benar dalam memenuhi standar- browser. Bug dapat dihindari di Internet Explorer 6 dengan menggunakan benar DOCTYPE dalam () X dokumen HTML. hacks CSS dan CSS filter digunakan untuk mengkompensasi bug seperti ini, hanya satu dari ratusan bug CSS yang telah didokumentasikan dalam berbagai versi Netscape , Mozilla Firefox , Opera , dan Internet Explorer (termasuk Internet Explorer 7 ).

Bahkan ketika ketersediaan browser CSS-mampu membuat CSS giat teknologi, penerapan CSS masih ditahan oleh ‘desainer perjuangan dengan implementasi browser CSS salah’ dan patchy mendukung CSS. Bahkan saat ini, masalah ini terus membuat desain CSS bisnis lebih kompleks dan mahal daripada ini dimaksudkan untuk menjadi, dan pengujian cross-browser tetap suatu keharusan. alasan lain untuk terus non-adopsi dari CSS adalah: kompleksitas yang dirasakan, kurangnya penulis keakraban dengan sintaks CSS dan teknik yang dibutuhkan, dukungan miskin dari authoring tool, resiko yang ditimbulkan oleh inkonsistensi antara browser dan kenaikan biaya pengujian.

Saat ini ada persaingan kuat antara Mozilla ‘s Gecko layout engine yang digunakan dalam Firefox , yang WebKit tata letak mesin yang digunakan di Apple Safari dan Google Chrome , serupa KHTML mesin yang digunakan di KDE ‘s Konqueror browser, dan Opera Presto tata letak mesin -masing-masing adalah terdepan dalam aspek yang berbeda dari CSS. Pada Agustus 2009, Internet Explorer 8, Firefox 2 dan 3 sudah cukup lengkap tingkat implementasi CSS 2.1.

Keterbatasan

Artikel’s Kritik ini atau bagian Kontroversi (s) bisa berarti artikel tidak menyajikan sudut pandang netral subjek. Ini mungkin lebih baik untuk mengintegrasikan materi dalam bagian tersebut ke dalam artikel secara keseluruhan. (Oktober 2009). Artikel ini mungkin mengandung riset asli . Silakan memperbaikinya dengan verifikasi klaim yang dibuat dan menambahkan referensi . Laporan hanya terdiri dari riset asli bisa dihapus. Rincian lebih lanjut dapat tersedia di halaman pembicaraan . (Maret 2009)

Mencatat beberapa kelemahan menggunakan “murni” CSS meliputi:  Miskin tata letak kontrol untuk tata letak fleksibel

Sementara tambahan baru untuk CSS3 memberikan lebih kuat, lebih kuat tata letak fitur-set, CSS masih sangat banyak berakar sebagai bahasa styling, bukan bahasa tata letak. Masalah ini juga berarti bahwa fluida menciptakan layout masih sangat banyak dilakukan oleh tangan-kode CSS, dan membuat pengembangan editor WYSIWYG berbasis standar lebih sulit dari yang diharapkan.

Selectors tidak dapat naik

CSS tidak menawarkan cara untuk memilih orang tua atau nenek moyang dari elemen yang memenuhi kriteria tertentu. Sebuah pemilih skema yang lebih maju (seperti XPath ) akan mengaktifkan style sheet yang lebih canggih. Namun, alasan utama bagi Kelompok Kerja CSS menolak usulan untuk pemilih orangtua terkait dengan kinerja dan incremental browser masalah rendering.

Keterbatasan kontrol Vertikal

Sementara penempatan horisontal unsur-unsur umumnya mudah untuk mengontrol, penempatan vertikal sering unintuitive, berbelit-belit, atau tidak mungkin. Wikipedia tugas, seperti berpusat elemen vertikal atau mendapatkan footer yang akan ditempatkan tidak lebih tinggi dari bawah viewport, baik memerlukan gaya unintuitive aturan dan rumit, atau sederhana tapi tidak didukung aturan secara luas.

Tidak adanya ekspresi

Saat ini tidak ada kemampuan untuk menentukan nilai properti sebagai ekspresi sederhana (seperti margin-left: 10% – 3em + 4px; ). Ini akan berguna dalam berbagai kasus, seperti menghitung ukuran kolom dikenakan kendala pada jumlah semua kolom. Namun, konsep bekerja dengan nilai () kalk ke alamat ini pembatasan telah diterbitkan oleh WG CSS. [15] Internet Explorer versi 5-7 mendukung ekspresi eksklusif () pernyataan, [16] dengan fungsi serupa. Ini ekspresi berpemilik () pernyataan tidak lagi didukung dari Internet Explorer 8 dan seterusnya, kecuali dalam modus kompatibilitas. Keputusan ini diambil untuk “memenuhi standar, kinerja browser, dan alasan keamanan”. [16]

Kurangnya ortogonal

Beberapa sifat sering berakhir melakukan pekerjaan yang sama. Misalnya, position , display dan float menentukan model penempatan, dan sebagian besar waktu mereka tidak dapat dikombinasikan bermakna. Sebuah display: table-cell elemen tidak dapat melayang atau diberikan position: relative , dan elemen dengan float: left seharusnya tidak bereaksi terhadap perubahan display . Selain itu, beberapa properti tidak didefinisikan dalam cara yang fleksibel yang menghindari penciptaan properti baru. Misalnya, Anda harus menggunakan “perbatasan-spasi” properti pada elemen tabel bukan “margin-*” properti pada unsur-unsur sel tabel. Hal ini karena sesuai dengan spesifikasi CSS, elemen tabel internal tidak memiliki margin.

Kontrol elemen bentuk

CSS saat ini hanya menawarkan bentuk empat persegi panjang. Sudut lengkung atau bentuk lain mungkin mengharuskan asing dan kadang-kadang berbelit-belit markup. Sementara sudut dibulatkan dibahas dalam draft kerja dari latar belakang CSS3 modul, [17] bentuk yang lebih kompleks saat ini tidak mungkin.

Kurangnya kolom deklarasi

Sementara mungkin di CSS saat ini, layout dengan beberapa kolom dapat kompleks untuk diimplementasikan. Dengan CSS saat ini, proses ini sering dilakukan dengan menggunakan unsur-unsur terapung yang sering diberikan berbeda oleh browser yang berbeda, bentuk layar komputer yang berbeda, dan rasio layar yang berbeda set pada monitor standar.

Tidak bisa secara eksplisit menyatakan lingkup baru secara independen posisi

Pelingkupan aturan untuk properti seperti z-indeks mencari elemen induk terdekat dengan posisi: atribut absolut atau posisi: relatif. Ini kopling aneh memiliki dua efek yang tidak diinginkan: 1) adalah mustahil untuk menghindari menyatakan lingkup baru ketika seseorang dipaksa untuk menyesuaikan posisi elemen itu, mencegah satu dari menggunakan cakupan yang diinginkan dari elemen induk dan 2) pengguna sering tidak menyadari bahwa mereka harus menyatakan posisi: relatif atau posisi: absolut pada setiap elemen yang ingin mereka bertindak sebagai “ruang lingkup baru”. Selain itu, sebuah bug dalam browser Firefox mencegah salah satu dari elemen menyatakan tabel sebagai lingkup css baru menggunakan posisi: relatif (satu teknis dapat melakukannya, tapi hasilnya banyak Glitches grafis).

Pseudo-class tidak dapat dikontrol perilaku dinamis

CSS menerapkan pseudo-kelas yang memungkinkan tingkat umpan balik pengguna dengan aplikasi bersyarat dari gaya alternatif. Satu CSS pseudo-kelas, “:” hover, adalah dinamis (setara dengan javascript “onMouseOver”) dan memiliki potensi untuk penyalahgunaan (misalnya, untuk melaksanakan-dekat popup kursor) [18] , tetapi CSS tidak memiliki kemampuan untuk klien untuk menonaktifkan (tanpa “menonaktifkan”-seperti properti) atau membatasi efek (tidak nochange “”-seperti nilai untuk properti masing-masing).

Tidak konsisten mendukung browser

browser yang berbeda akan membuat layout CSS berbeda sebagai akibat dari bug browser atau kurangnya dukungan untuk fitur CSS. Sebagai contoh Microsoft Internet Explorer , yang versi lama, seperti IE 6.0, CSS banyak diimplementasikan 2,0 properti di, yang tidak kompatibel dengan caranya sendiri, disalahtafsirkan sejumlah besar sifat penting, seperti width , height , dan float . Berbagai begitu- CSS disebut “hacks” telah dibuat untuk mencapai tata letak yang konsisten antara tanggal dari browser.

Keuntungan

Fleksibilitas

Dengan menggabungkan CSS dengan fungsionalitas sebuah Content Management System , cukup banyak fleksibilitas dapat diprogram ke dalam bentuk pengiriman konten. Hal ini memungkinkan kontributor, yang mungkin tidak dikenal atau mampu memahami atau mengedit CSS atau kode HTML untuk memilih layout artikel atau halaman lain mereka mengirimkan on-the-fly, dalam bentuk yang sama. Sebagai contoh, seorang kontributor, editor atau penulis artikel atau halaman mungkin bisa memilih jumlah kolom dan apakah atau tidak halaman atau artikel akan membawa citra. Informasi ini kemudian diteruskan ke Content Management System, dan logika program akan mengevaluasi informasi dan menentukan, berdasarkan sejumlah kombinasi, bagaimana menerapkan kelas dan ID ke elemen HTML, sehingga gaya dan posisi mereka sesuai dengan pra -didefinisikan CSS untuk jenis tata letak tertentu. Ketika bekerja dengan skala besar, situs yang kompleks, dengan banyak kontributor seperti berita dan situs informasi, keuntungan ini sangat berat pada kelayakan dan pemeliharaan proyek.

Pemisahan Isi dari Presentasi

CSS memfasilitasi publikasi konten dalam format beberapa presentasi berdasarkan parameter nominal. Nominal parameter termasuk preferensi pengguna eksplisit, web browser yang berbeda, jenis perangkat yang digunakan untuk melihat konten (komputer desktop atau perangkat mobile Internet), lokasi geografis dari pengguna dan variabel lainnya.

Situs-lebar konsistensi

Artikel utama: Pemisahan presentasi dan konten dan lembar Style (pengembangan web)

Ketika CSS digunakan secara efektif, dalam hal warisan dan “Cascading,” sebuah style sheet global yang dapat digunakan untuk mempengaruhi dan gaya elemen situs-lebar. Jika situasi muncul bahwa unsur styling harus perlu diubah atau disesuaikan, perubahan ini dapat dilakukan dengan mudah, hanya dengan mengedit beberapa peraturan dalam style sheet global. Sebelum CSS, perawatan semacam ini lebih sulit, mahal dan memakan waktu.

Bandwidth

Sebuah style sheet biasanya akan disimpan dalam browser cache , dan karena itu dapat digunakan pada beberapa halaman tanpa mengisi, mengurangi transfer data melalui jaringan.

Sumber ; http://en.wikipedia.org