Dalam kode di bawah ini saya menempatkan style sheet internal dengan in body tag, bukannya di kepala. Untuk Aplikasi Satu Halaman, saya mempertimbangkan untuk melakukan ini untuk gaya yang hanya berlaku untuk halaman itu saja, daripada memiliki file halamanpecific.css terpisah.
Apakah ada skenario di mana ini memiliki kelemahan karena saya tidak meletakkan yang sama di bagian kepala?
<!-- myPartial.html starts here -->
<!-- Like to keep styles unique to this html right here in this file -->
<div>
<style>
body { background-color: red; }
#myText { color: white; }
</style>
<span id='myText'>Hello</span>
</div>
<!-- myPartial.html ends here -->
head
elemen. Halaman HTML selalu memiliki satu.(Karena kita di sini di SE.SX, pendekatan yang lebih strategis mungkin merupakan tambahan yang berharga untuk pertimbangan teknis yang biasa.)
[mukadimah] Spesifikasi HTML5 adalah target yang terus bergerak, dan mereka memiliki kebijakan untuk menindaklanjuti praktik umum yang telah ditetapkan. Mereka kuno dan membangkitkan fitur di masa lalu, mengubah makna orang lain, menggeser fokus rekomendasi metodis dll. Ini tidak ditulis untuk selamanya dengan semua kebijaksanaan umat manusia yang tersedia sekaligus. Spek ini bukanlah sumber kebenaran yang sakral. Wajar jika terkadang browser itu benar. [/pembukaan]
Situasi OP sangat umum dan valid.
Anda memiliki CMS, dengan tema yang dirancang dan diinstal, semua CSS dimuat dengan benar dari HEAD, lalu di sana Anda, editor halaman, dibiarkan dengan kotak WYSIWYG yang modis yang Anda dapat (terima kasih Tuhan!) Beralih ke "mode sumber" dan ketik (tempel) di markup HTML (sebelumnya dibuat di tempat lain, dengan alat yang lebih cocok). Untungnya Anda bahkan dapat memasukkan
STYLE
tag (mungkin karena kelalaian kebetulan dalam filter tag) ... Hari ini disimpan, dari banyak pekerjaan kasar yang menghancurkan jiwa yang berulang-ulang. Tetapi Anda masih tidak memiliki sarana, apa pun, untuk mengganggu elemen HEAD sistem dari skenario edit halaman.Haruskah itu merobek Anda dari menggunakan CSS Anda secara langsung dengan fragmen HTML Anda, hanya karena spec mengatakan demikian?
Atau, Anda memiliki aplikasi AJAX satu halaman.
Ini berjalan tanpa memuat ulang untuk sesi yang panjang, dan ada konten sindikasi yang berasal dari berbagai sumber acak, semua gaya sewenang-wenang dan mandiri. Membutuhkannya dikonversi terlebih dahulu untuk hanya menggunakan
STYLE
atribut inline alih-alih hanya datang denganSTYLE
elemen tertanam akan menjadi tidak masuk akal.Selain itu: Anda dapat a) sudah menyematkan CSS apa pun di mana saja di
BODY
, melaluiSTYLE
atribut, jadi CSS "secara teoritis" sah di sana; dan b) Anda sudah dapat melakukan apa pun yang Anda inginkan dengan gaya apa pun, kapan pun Anda mau (dan lebih banyak lagi) dari Javascript, jadi CSS juga sudah mungkin untuk disalahgunakan dengan cara patologis non-performan. Dan tidak ada dari kita yang akan menolak fitur-fitur itu. W3C juga tidak.Jadi, apa sebenarnya yang jahat dari
STYLE
unsur - unsur di dalamnyaBODY
? Apa implikasi tambahan yang merugikan yang akan menambah gudang penyalahgunaan kami yang luas terhadap konstruksi HTML? Kinerja lebih buruk? Mungkin. Terkadang.Apakah itu alasan yang sah untuk menghapus praktik yang sangat berguna ini, didukung oleh setiap browser karena suatu alasan? Tidak dalam sejuta mil!
Kami bukan idiot. Yah, tidak semua, atau tidak selalu ...;) Teknik dengan risiko kinerja yang buruk bisa didokumentasikan , bukan hanya dilarang. Kami dulu memiliki applet Java di awal-awal web, dan bertahan. Mobil dapat disalahgunakan, menyebabkan kesengsaraan, bahkan makanan dapat digunakan dengan cara yang mengganggu, tidak efisien, dan pengemudi yang dapat makan mungkin, rata-rata, bahkan lebih bodoh daripada perancang web rata-rata. Selain itu, W3C yang terhormat, tidak perlu khawatir: kawanan tinkerer HTML yang kesal karena kaki mereka ditembak mati dengan
STYLE
elemen - elemenBODY
masih belum bisa mengejar W3C dan membalas dendam. Mereka tidak tahu alamatnya. Dan mereka tidak memiliki kaki.Jadi, tolong: jangan membuat suara Anda didengar karena
STYLE
menjadi legalBODY
! Dengan patuh mengutip teks, tetapi gagal memberikan alternatif yang lebih baik daripada situasi saat ini tidak membantu. Ini sebenarnya ancaman bagi teknik solusi terakhir ini.Ingat: spesifikasi HTML5 disebut rekomendasi .
sumber
STYLE
ini sekarang berlaku diBODY
! ;)The spesifikasi html menyatakan bahwa
Atribut scoped adalah nilai boolean yang menunjukkan bahwa itu harus diterapkan hanya sub pohon yang di-root pada elemen induk elemen style.
Saat ini hanya Firefox yang mendukung atribut yang tercakup. http://www.w3schools.com/tags/att_style_scoped.asp
sumber
Ada beberapa alasan teknis untuk membuat css Anda dalam file vs tag gaya:
Beberapa alasan berdasarkan pendapat untuk menggunakan file:
Preferensi pribadi saya adalah menggunakan Kompas untuk menyimpan file terpisah untuk setiap halaman dan kemudian menggunakannya untuk mengkompilasi semuanya menjadi satu file. File tunggal itu akan dimasukkan oleh setiap halaman. Jika di ujung jalan file harus dipisahkan untuk alasan apa pun mereka selalu bisa tetapi tidak sebanding dengan kerumitan sementara itu.
sumber